asktech-ui 0.0.0-stage → 0.0.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 +63 -2
- package/fesm2022/asktech-ui.mjs +372 -0
- package/fesm2022/asktech-ui.mjs.map +1 -0
- package/package.json +21 -3
- package/types/asktech-ui.d.ts +149 -0
package/README.md
CHANGED
|
@@ -1,3 +1,64 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AsktechUi
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ng generate component component-name
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
ng generate --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Building
|
|
20
|
+
|
|
21
|
+
To build the library, run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
ng build asktech-ui
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
|
|
28
|
+
|
|
29
|
+
### Publishing the Library
|
|
30
|
+
|
|
31
|
+
Once the project is built, you can publish your library by following these steps:
|
|
32
|
+
|
|
33
|
+
1. Navigate to the `dist` directory:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cd dist/asktech-ui
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
2. Run the `npm publish` command to publish your library to the npm registry:
|
|
40
|
+
```bash
|
|
41
|
+
npm publish
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Running unit tests
|
|
45
|
+
|
|
46
|
+
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
ng test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Running end-to-end tests
|
|
53
|
+
|
|
54
|
+
For end-to-end (e2e) testing, run:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ng e2e
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
|
61
|
+
|
|
62
|
+
## Additional Resources
|
|
63
|
+
|
|
64
|
+
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Output, Input, Component, forwardRef } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@angular/forms';
|
|
6
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
|
+
|
|
8
|
+
class ButtonComponent {
|
|
9
|
+
variant = 'primary';
|
|
10
|
+
size = 'md';
|
|
11
|
+
disabled = false;
|
|
12
|
+
type = 'button';
|
|
13
|
+
onClick = new EventEmitter();
|
|
14
|
+
handleClick(event) {
|
|
15
|
+
if (!this.disabled) {
|
|
16
|
+
this.onClick.emit(event);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ButtonComponent, isStandalone: true, selector: "ask-button", inputs: { variant: "variant", size: "size", disabled: "disabled", type: "type" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".ask-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-md);border:1px solid transparent;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}.ask-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #00aeef40;border-color:var(--ask-brand-primary)}.ask-btn:disabled{opacity:.6;cursor:not-allowed}.ask-btn--sm{padding:var(--ask-space-1) var(--ask-space-3);font-size:var(--ask-font-size-sm)}.ask-btn--md{padding:var(--ask-space-2) var(--ask-space-4);font-size:var(--ask-font-size-md)}.ask-btn--lg{padding:var(--ask-space-3) var(--ask-space-6);font-size:var(--ask-font-size-lg)}.ask-btn--primary{background-color:var(--ask-brand-primary);color:var(--ask-neutral-0)}.ask-btn--primary:hover:not(:disabled){background-color:var(--ask-brand-primary-hover)}.ask-btn--secondary{background-color:var(--ask-neutral-100);color:var(--ask-neutral-800)}.ask-btn--secondary:hover:not(:disabled){background-color:var(--ask-neutral-200)}.ask-btn--outline{background-color:transparent;border-color:var(--ask-neutral-300);color:var(--ask-neutral-800)}.ask-btn--outline:hover:not(:disabled){background-color:var(--ask-neutral-50);border-color:var(--ask-neutral-600)}.ask-btn--danger{background-color:var(--ask-error);color:var(--ask-neutral-0)}.ask-btn--danger:hover:not(:disabled){filter:brightness(.9)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'ask-button', standalone: true, imports: [CommonModule], template: "<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: [".ask-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-md);border:1px solid transparent;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,filter .2s ease}.ask-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #00aeef40;border-color:var(--ask-brand-primary)}.ask-btn:disabled{opacity:.6;cursor:not-allowed}.ask-btn--sm{padding:var(--ask-space-1) var(--ask-space-3);font-size:var(--ask-font-size-sm)}.ask-btn--md{padding:var(--ask-space-2) var(--ask-space-4);font-size:var(--ask-font-size-md)}.ask-btn--lg{padding:var(--ask-space-3) var(--ask-space-6);font-size:var(--ask-font-size-lg)}.ask-btn--primary{background-color:var(--ask-brand-primary);color:var(--ask-neutral-0)}.ask-btn--primary:hover:not(:disabled){background-color:var(--ask-brand-primary-hover)}.ask-btn--secondary{background-color:var(--ask-neutral-100);color:var(--ask-neutral-800)}.ask-btn--secondary:hover:not(:disabled){background-color:var(--ask-neutral-200)}.ask-btn--outline{background-color:transparent;border-color:var(--ask-neutral-300);color:var(--ask-neutral-800)}.ask-btn--outline:hover:not(:disabled){background-color:var(--ask-neutral-50);border-color:var(--ask-neutral-600)}.ask-btn--danger{background-color:var(--ask-error);color:var(--ask-neutral-0)}.ask-btn--danger:hover:not(:disabled){filter:brightness(.9)}\n"] }]
|
|
25
|
+
}], propDecorators: { variant: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], size: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], disabled: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], type: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], onClick: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
|
|
37
|
+
class InputComponent {
|
|
38
|
+
label = '';
|
|
39
|
+
placeholder = '';
|
|
40
|
+
type = 'text';
|
|
41
|
+
disabled = false;
|
|
42
|
+
error = '';
|
|
43
|
+
helperText = '';
|
|
44
|
+
inputId = 'ask-input-' + Math.random().toString(36).substring(2, 9);
|
|
45
|
+
value = '';
|
|
46
|
+
onChange = () => { };
|
|
47
|
+
onTouched = () => { };
|
|
48
|
+
writeValue(value) {
|
|
49
|
+
this.value = value !== undefined ? value : '';
|
|
50
|
+
}
|
|
51
|
+
registerOnChange(fn) {
|
|
52
|
+
this.onChange = fn;
|
|
53
|
+
}
|
|
54
|
+
registerOnTouched(fn) {
|
|
55
|
+
this.onTouched = fn;
|
|
56
|
+
}
|
|
57
|
+
setDisabledState(isDisabled) {
|
|
58
|
+
this.disabled = isDisabled;
|
|
59
|
+
}
|
|
60
|
+
onInput(event) {
|
|
61
|
+
const val = event.target.value;
|
|
62
|
+
this.value = val;
|
|
63
|
+
this.onChange(val);
|
|
64
|
+
this.onTouched();
|
|
65
|
+
}
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: InputComponent, isStandalone: true, selector: "ask-input", inputs: { label: "label", placeholder: "placeholder", type: "type", disabled: "disabled", error: "error", helperText: "helperText", inputId: "inputId" }, providers: [
|
|
68
|
+
{
|
|
69
|
+
provide: NG_VALUE_ACCESSOR,
|
|
70
|
+
useExisting: forwardRef(() => InputComponent),
|
|
71
|
+
multi: true
|
|
72
|
+
}
|
|
73
|
+
], ngImport: i0, template: "<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-input-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-input-wrapper .ask-input-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-input-wrapper .ask-input-container{position:relative;display:flex;align-items:center}.ask-input-wrapper .ask-input-container .ask-input-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ask-input-wrapper .ask-input-container .ask-input-field::placeholder{color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-input-wrapper .ask-input-container .ask-input-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-input-wrapper.has-error .ask-input-field{border-color:var(--ask-error)}.ask-input-wrapper.has-error .ask-input-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-input-wrapper.has-error .ask-input-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-input-wrapper .ask-input-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: InputComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'ask-input', standalone: true, imports: [CommonModule, FormsModule], providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: NG_VALUE_ACCESSOR,
|
|
80
|
+
useExisting: forwardRef(() => InputComponent),
|
|
81
|
+
multi: true
|
|
82
|
+
}
|
|
83
|
+
], template: "<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-input-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-input-wrapper .ask-input-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-input-wrapper .ask-input-container{position:relative;display:flex;align-items:center}.ask-input-wrapper .ask-input-container .ask-input-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ask-input-wrapper .ask-input-container .ask-input-field::placeholder{color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-input-wrapper .ask-input-container .ask-input-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-input-wrapper .ask-input-container .ask-input-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-input-wrapper.has-error .ask-input-field{border-color:var(--ask-error)}.ask-input-wrapper.has-error .ask-input-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-input-wrapper.has-error .ask-input-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-input-wrapper .ask-input-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"] }]
|
|
84
|
+
}], propDecorators: { label: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], placeholder: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], type: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], disabled: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], error: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], helperText: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], inputId: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
99
|
+
|
|
100
|
+
class CardComponent {
|
|
101
|
+
title = '';
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: CardComponent, isStandalone: true, selector: "ask-card", inputs: { title: "title" }, ngImport: i0, template: "<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ask-card{background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);box-shadow:var(--ask-shadow-sm);overflow:hidden;font-family:var(--ask-font-family)}.ask-card__header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50)}.ask-card__header .ask-card__title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-800)}.ask-card__body{padding:var(--ask-space-5)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CardComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'ask-card', standalone: true, imports: [CommonModule], template: "<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ask-card{background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);box-shadow:var(--ask-shadow-sm);overflow:hidden;font-family:var(--ask-font-family)}.ask-card__header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50)}.ask-card__header .ask-card__title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-800)}.ask-card__body{padding:var(--ask-space-5)}\n"] }]
|
|
108
|
+
}], propDecorators: { title: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}] } });
|
|
111
|
+
|
|
112
|
+
class SelectComponent {
|
|
113
|
+
label = '';
|
|
114
|
+
options = [];
|
|
115
|
+
placeholder = 'Sélectionner une option';
|
|
116
|
+
disabled = false;
|
|
117
|
+
error = '';
|
|
118
|
+
helperText = '';
|
|
119
|
+
selectId = 'ask-select-' + Math.random().toString(36).substring(2, 9);
|
|
120
|
+
value = '';
|
|
121
|
+
onChange = () => { };
|
|
122
|
+
onTouched = () => { };
|
|
123
|
+
writeValue(value) {
|
|
124
|
+
this.value = value !== undefined ? value : '';
|
|
125
|
+
}
|
|
126
|
+
registerOnChange(fn) {
|
|
127
|
+
this.onChange = fn;
|
|
128
|
+
}
|
|
129
|
+
registerOnTouched(fn) {
|
|
130
|
+
this.onTouched = fn;
|
|
131
|
+
}
|
|
132
|
+
setDisabledState(isDisabled) {
|
|
133
|
+
this.disabled = isDisabled;
|
|
134
|
+
}
|
|
135
|
+
onSelectionChange(event) {
|
|
136
|
+
const val = event.target.value;
|
|
137
|
+
this.value = val;
|
|
138
|
+
this.onChange(val);
|
|
139
|
+
this.onTouched();
|
|
140
|
+
}
|
|
141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: SelectComponent, isStandalone: true, selector: "ask-select", inputs: { label: "label", options: "options", placeholder: "placeholder", disabled: "disabled", error: "error", helperText: "helperText", selectId: "selectId" }, providers: [
|
|
143
|
+
{
|
|
144
|
+
provide: NG_VALUE_ACCESSOR,
|
|
145
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
146
|
+
multi: true
|
|
147
|
+
}
|
|
148
|
+
], ngImport: i0, template: "<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-select-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-select-wrapper .ask-select-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-select-wrapper .ask-select-container{position:relative;display:flex;align-items:center}.ask-select-wrapper .ask-select-container .ask-select-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;appearance:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.5rem}.ask-select-wrapper .ask-select-container .ask-select-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-select-wrapper .ask-select-container .ask-select-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-select-wrapper .ask-select-container .ask-select-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-select-wrapper.has-error .ask-select-field{border-color:var(--ask-error)}.ask-select-wrapper.has-error .ask-select-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-select-wrapper.has-error .ask-select-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-select-wrapper .ask-select-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
149
|
+
}
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: SelectComponent, decorators: [{
|
|
151
|
+
type: Component,
|
|
152
|
+
args: [{ selector: 'ask-select', standalone: true, imports: [CommonModule, FormsModule], providers: [
|
|
153
|
+
{
|
|
154
|
+
provide: NG_VALUE_ACCESSOR,
|
|
155
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
156
|
+
multi: true
|
|
157
|
+
}
|
|
158
|
+
], template: "<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n", styles: [".ask-select-wrapper{display:flex;flex-direction:column;gap:var(--ask-space-1);width:100%;font-family:var(--ask-font-family)}.ask-select-wrapper .ask-select-label{font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-select-wrapper .ask-select-container{position:relative;display:flex;align-items:center}.ask-select-wrapper .ask-select-container .ask-select-field{width:100%;height:40px;padding:0 var(--ask-space-3);font-size:var(--ask-font-size-md);color:var(--ask-neutral-900);background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-md);outline:none;appearance:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.5rem}.ask-select-wrapper .ask-select-container .ask-select-field:hover:not(:disabled){border-color:var(--ask-neutral-400)}.ask-select-wrapper .ask-select-container .ask-select-field:focus{border-color:var(--ask-brand-primary);box-shadow:0 0 0 3px #00aeef26}.ask-select-wrapper .ask-select-container .ask-select-field:disabled{background-color:var(--ask-neutral-100);color:var(--ask-neutral-400);cursor:not-allowed}.ask-select-wrapper.has-error .ask-select-field{border-color:var(--ask-error)}.ask-select-wrapper.has-error .ask-select-field:focus{box-shadow:0 0 0 3px #ef444426}.ask-select-wrapper.has-error .ask-select-error-msg{font-size:var(--ask-font-size-xs);color:var(--ask-error)}.ask-select-wrapper .ask-select-helper{font-size:var(--ask-font-size-xs);color:var(--ask-neutral-500)}\n"] }]
|
|
159
|
+
}], propDecorators: { label: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], options: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], placeholder: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], disabled: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], error: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], helperText: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], selectId: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}] } });
|
|
174
|
+
|
|
175
|
+
class DataTableComponent {
|
|
176
|
+
columns = [];
|
|
177
|
+
data = [];
|
|
178
|
+
rowClassFn;
|
|
179
|
+
rowClick = new EventEmitter();
|
|
180
|
+
onRowClick(row) {
|
|
181
|
+
this.rowClick.emit(row);
|
|
182
|
+
}
|
|
183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: DataTableComponent, isStandalone: true, selector: "ask-data-table", inputs: { columns: "columns", data: "data", rowClassFn: "rowClassFn" }, outputs: { rowClick: "rowClick" }, ngImport: i0, template: "<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donn\u00E9e disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n", styles: [".ask-table-container{width:100%;overflow-x:auto;border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);background-color:var(--ask-neutral-0);box-shadow:var(--ask-shadow-sm);font-family:var(--ask-font-family)}.ask-table-container .ask-table{width:100%;border-collapse:collapse;text-align:left}.ask-table-container .ask-table th,.ask-table-container .ask-table td{padding:var(--ask-space-3) var(--ask-space-4);font-size:var(--ask-font-size-sm)}.ask-table-container .ask-table th{background-color:var(--ask-neutral-50);color:var(--ask-neutral-700);font-weight:var(--ask-font-weight-semibold);border-bottom:1px solid var(--ask-neutral-200);white-space:nowrap}.ask-table-container .ask-table td{color:var(--ask-neutral-800);border-bottom:1px solid var(--ask-neutral-100)}.ask-table-container .ask-table tbody tr{transition:background-color .15s ease;cursor:pointer}.ask-table-container .ask-table tbody tr:hover{background-color:var(--ask-neutral-50)}.ask-table-container .ask-table tbody tr:last-child td{border-bottom:none}.ask-table-container .ask-table .ask-table-empty{text-align:center;color:var(--ask-neutral-500);padding:var(--ask-space-6)}.ask-table-container .ask-table .text-center{text-align:center}.ask-table-container .ask-table .text-right{text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
185
|
+
}
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: DataTableComponent, decorators: [{
|
|
187
|
+
type: Component,
|
|
188
|
+
args: [{ selector: 'ask-data-table', standalone: true, imports: [CommonModule], template: "<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donn\u00E9e disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n", styles: [".ask-table-container{width:100%;overflow-x:auto;border:1px solid var(--ask-neutral-200);border-radius:var(--ask-radius-lg);background-color:var(--ask-neutral-0);box-shadow:var(--ask-shadow-sm);font-family:var(--ask-font-family)}.ask-table-container .ask-table{width:100%;border-collapse:collapse;text-align:left}.ask-table-container .ask-table th,.ask-table-container .ask-table td{padding:var(--ask-space-3) var(--ask-space-4);font-size:var(--ask-font-size-sm)}.ask-table-container .ask-table th{background-color:var(--ask-neutral-50);color:var(--ask-neutral-700);font-weight:var(--ask-font-weight-semibold);border-bottom:1px solid var(--ask-neutral-200);white-space:nowrap}.ask-table-container .ask-table td{color:var(--ask-neutral-800);border-bottom:1px solid var(--ask-neutral-100)}.ask-table-container .ask-table tbody tr{transition:background-color .15s ease;cursor:pointer}.ask-table-container .ask-table tbody tr:hover{background-color:var(--ask-neutral-50)}.ask-table-container .ask-table tbody tr:last-child td{border-bottom:none}.ask-table-container .ask-table .ask-table-empty{text-align:center;color:var(--ask-neutral-500);padding:var(--ask-space-6)}.ask-table-container .ask-table .text-center{text-align:center}.ask-table-container .ask-table .text-right{text-align:right}\n"] }]
|
|
189
|
+
}], propDecorators: { columns: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], data: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], rowClassFn: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], rowClick: [{
|
|
196
|
+
type: Output
|
|
197
|
+
}] } });
|
|
198
|
+
|
|
199
|
+
class BadgeComponent {
|
|
200
|
+
variant = 'neutral';
|
|
201
|
+
size = 'md';
|
|
202
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: BadgeComponent, isStandalone: true, selector: "ask-badge", inputs: { variant: "variant", size: "size" }, ngImport: i0, template: "<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".ask-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-full);white-space:nowrap}.ask-badge--sm{padding:.125rem .5rem;font-size:var(--ask-font-size-xs)}.ask-badge--md{padding:.25rem .75rem;font-size:var(--ask-font-size-sm)}.ask-badge--neutral{background-color:var(--ask-neutral-100);color:var(--ask-neutral-700)}.ask-badge--success{background-color:var(--ask-success-soft);color:var(--ask-success)}.ask-badge--warning{background-color:var(--ask-warning-soft);color:var(--ask-warning)}.ask-badge--error{background-color:var(--ask-error-soft);color:var(--ask-error)}.ask-badge--info{background-color:var(--ask-brand-primary-soft);color:var(--ask-brand-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
204
|
+
}
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
206
|
+
type: Component,
|
|
207
|
+
args: [{ selector: 'ask-badge', standalone: true, imports: [CommonModule], template: "<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".ask-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-medium);border-radius:var(--ask-radius-full);white-space:nowrap}.ask-badge--sm{padding:.125rem .5rem;font-size:var(--ask-font-size-xs)}.ask-badge--md{padding:.25rem .75rem;font-size:var(--ask-font-size-sm)}.ask-badge--neutral{background-color:var(--ask-neutral-100);color:var(--ask-neutral-700)}.ask-badge--success{background-color:var(--ask-success-soft);color:var(--ask-success)}.ask-badge--warning{background-color:var(--ask-warning-soft);color:var(--ask-warning)}.ask-badge--error{background-color:var(--ask-error-soft);color:var(--ask-error)}.ask-badge--info{background-color:var(--ask-brand-primary-soft);color:var(--ask-brand-primary)}\n"] }]
|
|
208
|
+
}], propDecorators: { variant: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], size: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}] } });
|
|
213
|
+
|
|
214
|
+
class ModalComponent {
|
|
215
|
+
isOpen = false;
|
|
216
|
+
title = '';
|
|
217
|
+
size = 'md';
|
|
218
|
+
showFooter = true;
|
|
219
|
+
onClose = new EventEmitter();
|
|
220
|
+
close() {
|
|
221
|
+
this.onClose.emit();
|
|
222
|
+
}
|
|
223
|
+
onBackdropClick(event) {
|
|
224
|
+
if (event.target.classList.contains('ask-modal-backdrop')) {
|
|
225
|
+
this.close();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
onKeydown(event) {
|
|
229
|
+
if (event.key === 'Escape') {
|
|
230
|
+
this.close();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
234
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ModalComponent, isStandalone: true, selector: "ask-modal", inputs: { isOpen: "isOpen", title: "title", size: "size", showFooter: "showFooter" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">×</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ask-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;font-family:var(--ask-font-family)}.ask-modal-backdrop .ask-modal-container{background-color:var(--ask-neutral-0);border-radius:var(--ask-radius-xl);box-shadow:var(--ask-shadow-lg);width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalScaleIn .2s ease-in-out}.ask-modal-backdrop .ask-modal-container--sm{max-width:400px}.ask-modal-backdrop .ask-modal-container--md{max-width:550px}.ask-modal-backdrop .ask-modal-container--lg{max-width:800px}.ask-modal-backdrop .ask-modal-container .ask-modal-header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);display:flex;align-items:center;justify-content:space-between}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ask-neutral-500);transition:color .2s ease}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close:hover{color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-body{padding:var(--ask-space-5);overflow-y:auto;flex-grow:1}.ask-modal-backdrop .ask-modal-container .ask-modal-footer{padding:var(--ask-space-4) var(--ask-space-5);border-top:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50);display:flex;justify-content:flex-end;gap:var(--ask-space-2)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
235
|
+
}
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ModalComponent, decorators: [{
|
|
237
|
+
type: Component,
|
|
238
|
+
args: [{ selector: 'ask-modal', standalone: true, imports: [CommonModule], template: "<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">×</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ask-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;font-family:var(--ask-font-family)}.ask-modal-backdrop .ask-modal-container{background-color:var(--ask-neutral-0);border-radius:var(--ask-radius-xl);box-shadow:var(--ask-shadow-lg);width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalScaleIn .2s ease-in-out}.ask-modal-backdrop .ask-modal-container--sm{max-width:400px}.ask-modal-backdrop .ask-modal-container--md{max-width:550px}.ask-modal-backdrop .ask-modal-container--lg{max-width:800px}.ask-modal-backdrop .ask-modal-container .ask-modal-header{padding:var(--ask-space-4) var(--ask-space-5);border-bottom:1px solid var(--ask-neutral-200);display:flex;align-items:center;justify-content:space-between}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-title{margin:0;font-size:var(--ask-font-size-lg);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ask-neutral-500);transition:color .2s ease}.ask-modal-backdrop .ask-modal-container .ask-modal-header .ask-modal-close:hover{color:var(--ask-neutral-900)}.ask-modal-backdrop .ask-modal-container .ask-modal-body{padding:var(--ask-space-5);overflow-y:auto;flex-grow:1}.ask-modal-backdrop .ask-modal-container .ask-modal-footer{padding:var(--ask-space-4) var(--ask-space-5);border-top:1px solid var(--ask-neutral-200);background-color:var(--ask-neutral-50);display:flex;justify-content:flex-end;gap:var(--ask-space-2)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"] }]
|
|
239
|
+
}], propDecorators: { isOpen: [{
|
|
240
|
+
type: Input
|
|
241
|
+
}], title: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}], size: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], showFooter: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], onClose: [{
|
|
248
|
+
type: Output
|
|
249
|
+
}] } });
|
|
250
|
+
|
|
251
|
+
class CheckboxComponent {
|
|
252
|
+
label = '';
|
|
253
|
+
disabled = false;
|
|
254
|
+
checkboxId = 'ask-checkbox-' + Math.random().toString(36).substring(2, 9);
|
|
255
|
+
checked = false;
|
|
256
|
+
onChange = () => { };
|
|
257
|
+
onTouched = () => { };
|
|
258
|
+
writeValue(value) {
|
|
259
|
+
this.checked = !!value;
|
|
260
|
+
}
|
|
261
|
+
registerOnChange(fn) {
|
|
262
|
+
this.onChange = fn;
|
|
263
|
+
}
|
|
264
|
+
registerOnTouched(fn) {
|
|
265
|
+
this.onTouched = fn;
|
|
266
|
+
}
|
|
267
|
+
setDisabledState(isDisabled) {
|
|
268
|
+
this.disabled = isDisabled;
|
|
269
|
+
}
|
|
270
|
+
onModelChange(event) {
|
|
271
|
+
const isChecked = event.target.checked;
|
|
272
|
+
this.checked = isChecked;
|
|
273
|
+
this.onChange(isChecked);
|
|
274
|
+
this.onTouched();
|
|
275
|
+
}
|
|
276
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
277
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: CheckboxComponent, isStandalone: true, selector: "ask-checkbox", inputs: { label: "label", disabled: "disabled", checkboxId: "checkboxId" }, providers: [
|
|
278
|
+
{
|
|
279
|
+
provide: NG_VALUE_ACCESSOR,
|
|
280
|
+
useExisting: forwardRef(() => CheckboxComponent),
|
|
281
|
+
multi: true
|
|
282
|
+
}
|
|
283
|
+
], ngImport: i0, template: "<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n", styles: [".ask-checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--ask-space-2);cursor:pointer;font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);color:var(--ask-neutral-800);-webkit-user-select:none;user-select:none}.ask-checkbox-wrapper .ask-checkbox-input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ask-checkbox-wrapper .ask-checkbox-input:checked~.ask-checkbox-custom{background-color:var(--ask-brand-primary);border-color:var(--ask-brand-primary);background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:center;background-size:.75rem}.ask-checkbox-wrapper .ask-checkbox-input:focus-visible~.ask-checkbox-custom{box-shadow:0 0 0 3px #00aeef40}.ask-checkbox-wrapper .ask-checkbox-custom{width:1.125rem;height:1.125rem;background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-sm);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;display:inline-block}.ask-checkbox-wrapper.is-disabled{opacity:.6;cursor:not-allowed}.ask-checkbox-wrapper.is-disabled .ask-checkbox-custom{background-color:var(--ask-neutral-100)}.ask-checkbox-wrapper:hover:not(.is-disabled) .ask-checkbox-custom{border-color:var(--ask-brand-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
284
|
+
}
|
|
285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
286
|
+
type: Component,
|
|
287
|
+
args: [{ selector: 'ask-checkbox', standalone: true, imports: [CommonModule, FormsModule], providers: [
|
|
288
|
+
{
|
|
289
|
+
provide: NG_VALUE_ACCESSOR,
|
|
290
|
+
useExisting: forwardRef(() => CheckboxComponent),
|
|
291
|
+
multi: true
|
|
292
|
+
}
|
|
293
|
+
], template: "<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n", styles: [".ask-checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--ask-space-2);cursor:pointer;font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);color:var(--ask-neutral-800);-webkit-user-select:none;user-select:none}.ask-checkbox-wrapper .ask-checkbox-input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.ask-checkbox-wrapper .ask-checkbox-input:checked~.ask-checkbox-custom{background-color:var(--ask-brand-primary);border-color:var(--ask-brand-primary);background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='20 6 9 17 4 12'%3e%3c/polyline%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:center;background-size:.75rem}.ask-checkbox-wrapper .ask-checkbox-input:focus-visible~.ask-checkbox-custom{box-shadow:0 0 0 3px #00aeef40}.ask-checkbox-wrapper .ask-checkbox-custom{width:1.125rem;height:1.125rem;background-color:var(--ask-neutral-0);border:1px solid var(--ask-neutral-300);border-radius:var(--ask-radius-sm);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;display:inline-block}.ask-checkbox-wrapper.is-disabled{opacity:.6;cursor:not-allowed}.ask-checkbox-wrapper.is-disabled .ask-checkbox-custom{background-color:var(--ask-neutral-100)}.ask-checkbox-wrapper:hover:not(.is-disabled) .ask-checkbox-custom{border-color:var(--ask-brand-primary)}\n"] }]
|
|
294
|
+
}], propDecorators: { label: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], disabled: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], checkboxId: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}] } });
|
|
301
|
+
|
|
302
|
+
class TooltipComponent {
|
|
303
|
+
text = '';
|
|
304
|
+
position = 'top';
|
|
305
|
+
isVisible = false;
|
|
306
|
+
show() {
|
|
307
|
+
this.isVisible = true;
|
|
308
|
+
}
|
|
309
|
+
hide() {
|
|
310
|
+
this.isVisible = false;
|
|
311
|
+
}
|
|
312
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
313
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: TooltipComponent, isStandalone: true, selector: "ask-tooltip", inputs: { text: "text", position: "position" }, ngImport: i0, template: "<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n", styles: [".ask-tooltip-wrapper{position:relative;display:inline-flex}.ask-tooltip-wrapper .ask-tooltip-bubble{position:absolute;z-index:1070;padding:var(--ask-space-1) var(--ask-space-2);font-size:var(--ask-font-size-xs);font-family:var(--ask-font-family);color:var(--ask-neutral-0);background-color:var(--ask-neutral-900);border-radius:var(--ask-radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--ask-shadow-sm);animation:fadeIn .15s ease-in-out}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--top{bottom:100%;left:50%;transform:translate(-50%) translateY(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--bottom{top:100%;left:50%;transform:translate(-50%) translateY(6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--left{right:100%;top:50%;transform:translateY(-50%) translate(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--right{left:100%;top:50%;transform:translateY(-50%) translate(6px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
314
|
+
}
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
316
|
+
type: Component,
|
|
317
|
+
args: [{ selector: 'ask-tooltip', standalone: true, imports: [CommonModule], template: "<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n", styles: [".ask-tooltip-wrapper{position:relative;display:inline-flex}.ask-tooltip-wrapper .ask-tooltip-bubble{position:absolute;z-index:1070;padding:var(--ask-space-1) var(--ask-space-2);font-size:var(--ask-font-size-xs);font-family:var(--ask-font-family);color:var(--ask-neutral-0);background-color:var(--ask-neutral-900);border-radius:var(--ask-radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--ask-shadow-sm);animation:fadeIn .15s ease-in-out}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--top{bottom:100%;left:50%;transform:translate(-50%) translateY(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--bottom{top:100%;left:50%;transform:translate(-50%) translateY(6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--left{right:100%;top:50%;transform:translateY(-50%) translate(-6px)}.ask-tooltip-wrapper .ask-tooltip-bubble.ask-tooltip--right{left:100%;top:50%;transform:translateY(-50%) translate(6px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
318
|
+
}], propDecorators: { text: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], position: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}] } });
|
|
323
|
+
|
|
324
|
+
class LabelComponent {
|
|
325
|
+
forId = '';
|
|
326
|
+
required = false;
|
|
327
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: LabelComponent, isStandalone: true, selector: "ask-label", inputs: { forId: "forId", required: "required" }, ngImport: i0, template: "<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n", styles: [".ask-label{display:inline-flex;align-items:center;gap:var(--ask-space-1);font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-label__required{color:var(--ask-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
329
|
+
}
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LabelComponent, decorators: [{
|
|
331
|
+
type: Component,
|
|
332
|
+
args: [{ selector: 'ask-label', standalone: true, imports: [CommonModule], template: "<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n", styles: [".ask-label{display:inline-flex;align-items:center;gap:var(--ask-space-1);font-family:var(--ask-font-family);font-size:var(--ask-font-size-sm);font-weight:var(--ask-font-weight-medium);color:var(--ask-neutral-700)}.ask-label__required{color:var(--ask-error)}\n"] }]
|
|
333
|
+
}], propDecorators: { forId: [{
|
|
334
|
+
type: Input
|
|
335
|
+
}], required: [{
|
|
336
|
+
type: Input
|
|
337
|
+
}] } });
|
|
338
|
+
|
|
339
|
+
class TitleComponent {
|
|
340
|
+
level = 2;
|
|
341
|
+
size = 'lg';
|
|
342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
343
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: TitleComponent, isStandalone: true, selector: "ask-title", inputs: { level: "level", size: "size" }, ngImport: i0, template: "<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n", styles: [".ask-title{margin:0;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-title--xs{font-size:var(--ask-font-size-xs)}.ask-title--sm{font-size:var(--ask-font-size-sm)}.ask-title--md{font-size:var(--ask-font-size-md)}.ask-title--lg{font-size:var(--ask-font-size-lg)}.ask-title--xl{font-size:var(--ask-font-size-xl)}.ask-title--2xl{font-size:var(--ask-font-size-2xl)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
344
|
+
}
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TitleComponent, decorators: [{
|
|
346
|
+
type: Component,
|
|
347
|
+
args: [{ selector: 'ask-title', standalone: true, imports: [CommonModule], template: "<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n", styles: [".ask-title{margin:0;font-family:var(--ask-font-family);font-weight:var(--ask-font-weight-semibold);color:var(--ask-neutral-900)}.ask-title--xs{font-size:var(--ask-font-size-xs)}.ask-title--sm{font-size:var(--ask-font-size-sm)}.ask-title--md{font-size:var(--ask-font-size-md)}.ask-title--lg{font-size:var(--ask-font-size-lg)}.ask-title--xl{font-size:var(--ask-font-size-xl)}.ask-title--2xl{font-size:var(--ask-font-size-2xl)}\n"] }]
|
|
348
|
+
}], propDecorators: { level: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], size: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}] } });
|
|
353
|
+
|
|
354
|
+
class AsktechUi {
|
|
355
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AsktechUi, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
356
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: AsktechUi, isStandalone: true, selector: "lib-asktech-ui", ngImport: i0, template: ` <p>asktech-ui works!</p> `, isInline: true, styles: [""] });
|
|
357
|
+
}
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AsktechUi, decorators: [{
|
|
359
|
+
type: Component,
|
|
360
|
+
args: [{ selector: 'lib-asktech-ui', imports: [], template: ` <p>asktech-ui works!</p> ` }]
|
|
361
|
+
}] });
|
|
362
|
+
|
|
363
|
+
/*
|
|
364
|
+
* Public API Surface of asktech-ui
|
|
365
|
+
*/
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Generated bundle index. Do not edit.
|
|
369
|
+
*/
|
|
370
|
+
|
|
371
|
+
export { AsktechUi, BadgeComponent, ButtonComponent, CardComponent, CheckboxComponent, DataTableComponent, InputComponent, LabelComponent, ModalComponent, SelectComponent, TitleComponent, TooltipComponent };
|
|
372
|
+
//# sourceMappingURL=asktech-ui.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asktech-ui.mjs","sources":["../../../projects/asktech-ui/src/lib/button/button.component.ts","../../../projects/asktech-ui/src/lib/button/button.component.html","../../../projects/asktech-ui/src/lib/input/input.component.ts","../../../projects/asktech-ui/src/lib/input/input.component.html","../../../projects/asktech-ui/src/lib/card/card.component.ts","../../../projects/asktech-ui/src/lib/card/card.component.html","../../../projects/asktech-ui/src/lib/select/select.component.ts","../../../projects/asktech-ui/src/lib/select/select.component.html","../../../projects/asktech-ui/src/lib/table/data-table.component.ts","../../../projects/asktech-ui/src/lib/table/data-table.component.html","../../../projects/asktech-ui/src/lib/badge/badge.component.ts","../../../projects/asktech-ui/src/lib/badge/badge.component.html","../../../projects/asktech-ui/src/lib/modal/modal.component.ts","../../../projects/asktech-ui/src/lib/modal/modal.component.html","../../../projects/asktech-ui/src/lib/checkbox/checkbox.component.ts","../../../projects/asktech-ui/src/lib/checkbox/checkbox.component.html","../../../projects/asktech-ui/src/lib/tooltip/tooltip.component.ts","../../../projects/asktech-ui/src/lib/tooltip/tooltip.component.html","../../../projects/asktech-ui/src/lib/label/label.component.ts","../../../projects/asktech-ui/src/lib/label/label.component.html","../../../projects/asktech-ui/src/lib/title/title.component.ts","../../../projects/asktech-ui/src/lib/title/title.component.html","../../../projects/asktech-ui/src/lib/asktech-ui.ts","../../../projects/asktech-ui/src/public-api.ts","../../../projects/asktech-ui/src/asktech-ui.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-button',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent {\r\n @Input() variant: 'primary' | 'secondary' | 'outline' | 'danger' = 'primary';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() disabled: boolean = false;\r\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n @Output() onClick = new EventEmitter<MouseEvent>();\r\n\r\n handleClick(event: MouseEvent): void {\r\n if (!this.disabled) {\r\n this.onClick.emit(event);\r\n }\r\n }\r\n}\r\n","<button\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [ngClass]=\"['ask-btn', 'ask-btn--' + variant, 'ask-btn--' + size]\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content></ng-content>\r\n</button>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ask-input',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InputComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() type: string = 'text';\r\n @Input() disabled: boolean = false;\r\n @Input() error: string = '';\r\n @Input() helperText: string = '';\r\n @Input() inputId: string = 'ask-input-' + Math.random().toString(36).substring(2, 9);\r\n\r\n value: any = '';\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value !== undefined ? value : '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onInput(event: Event): void {\r\n const val = (event.target as HTMLInputElement).value;\r\n this.value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"ask-input-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"inputId\" class=\"ask-input-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-input-container\">\r\n <input\r\n [id]=\"inputId\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-input-field\"\r\n />\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-input-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-input-helper\">{{ helperText }}</span>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-card',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent {\r\n @Input() title: string = '';\r\n}\r\n","<div class=\"ask-card\">\r\n <div class=\"ask-card__header\" *ngIf=\"title\">\r\n <h3 class=\"ask-card__title\">{{ title }}</h3>\r\n </div>\r\n <div class=\"ask-card__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\nexport interface SelectOption {\r\n label: string;\r\n value: any;\r\n disabled?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ask-select',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() options: SelectOption[] = [];\r\n @Input() placeholder: string = 'Sélectionner une option';\r\n @Input() disabled: boolean = false;\r\n @Input() error: string = '';\r\n @Input() helperText: string = '';\r\n @Input() selectId: string = 'ask-select-' + Math.random().toString(36).substring(2, 9);\r\n\r\n value: any = '';\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value !== undefined ? value : '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onSelectionChange(event: Event): void {\r\n const val = (event.target as HTMLSelectElement).value;\r\n this.value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"ask-select-wrapper\" [class.has-error]=\"error\" [class.is-disabled]=\"disabled\">\r\n <label *ngIf=\"label\" [attr.for]=\"selectId\" class=\"ask-select-label\">{{ label }}</label>\r\n\r\n <div class=\"ask-select-container\">\r\n <select\r\n [id]=\"selectId\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (change)=\"onSelectionChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-select-field\">\r\n <option value=\"\" disabled selected>{{ placeholder }}</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\" [disabled]=\"option.disabled\">\r\n {{ option.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <span *ngIf=\"error\" class=\"ask-select-error-msg\">{{ error }}</span>\r\n <span *ngIf=\"helperText && !error\" class=\"ask-select-helper\">{{ helperText }}</span>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport interface TableColumn {\r\n key: string;\r\n header: string;\r\n width?: string;\r\n align?: 'left' | 'center' | 'right';\r\n}\r\n\r\n@Component({\r\n selector: 'ask-data-table',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss']\r\n})\r\nexport class DataTableComponent {\r\n @Input() columns: TableColumn[] = [];\r\n @Input() data: any[] = [];\r\n @Input() rowClassFn?: (row: any) => string;\r\n\r\n @Output() rowClick = new EventEmitter<any>();\r\n\r\n onRowClick(row: any): void {\r\n this.rowClick.emit(row);\r\n }\r\n}\r\n","<div class=\"ask-table-container\">\r\n <table class=\"ask-table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [style.width]=\"col.width\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ col.header }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of data\" (click)=\"onRowClick(row)\" [ngClass]=\"rowClassFn ? rowClassFn(row) : ''\">\r\n <td *ngFor=\"let col of columns\" [class.text-center]=\"col.align === 'center'\" [class.text-right]=\"col.align === 'right'\">\r\n {{ row[col.key] }}\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"data.length === 0\">\r\n <td [attr.colspan]=\"columns.length\" class=\"ask-table-empty\">\r\n Aucune donnée disponible\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-badge',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss']\r\n})\r\nexport class BadgeComponent {\r\n @Input() variant: 'success' | 'warning' | 'error' | 'info' | 'neutral' = 'neutral';\r\n @Input() size: 'sm' | 'md' = 'md';\r\n}\r\n","<span [ngClass]=\"['ask-badge', 'ask-badge--' + variant, 'ask-badge--' + size]\">\r\n <ng-content></ng-content>\r\n</span>\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-modal',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.component.scss']\r\n})\r\nexport class ModalComponent {\r\n @Input() isOpen: boolean = false;\r\n @Input() title: string = '';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() showFooter: boolean = true;\r\n\r\n @Output() onClose = new EventEmitter<void>();\r\n\r\n close(): void {\r\n this.onClose.emit();\r\n }\r\n\r\n onBackdropClick(event: MouseEvent): void {\r\n if ((event.target as HTMLElement).classList.contains('ask-modal-backdrop')) {\r\n this.close();\r\n }\r\n }\r\n\r\n onKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n }\r\n}\r\n","<div class=\"ask-modal-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\" (keydown)=\"onKeydown($event)\" tabindex=\"0\" role=\"dialog\" aria-modal=\"true\">\r\n <div [ngClass]=\"['ask-modal-container', 'ask-modal--' + size]\">\r\n <div class=\"ask-modal-header\">\r\n <h3 class=\"ask-modal-title\">{{ title }}</h3>\r\n <button type=\"button\" class=\"ask-modal-close\" (click)=\"close()\" aria-label=\"Fermer\">×</button>\r\n </div>\r\n\r\n <div class=\"ask-modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div class=\"ask-modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"[modal-footer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ask-checkbox',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor {\r\n @Input() label: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() checkboxId: string = 'ask-checkbox-' + Math.random().toString(36).substring(2, 9);\r\n\r\n checked: boolean = false;\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(value: boolean): void {\r\n this.checked = !!value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onModelChange(event: any): void {\r\n const isChecked = event.target.checked;\r\n this.checked = isChecked;\r\n this.onChange(isChecked);\r\n this.onTouched();\r\n }\r\n}\r\n","<label [attr.for]=\"checkboxId\" class=\"ask-checkbox-wrapper\" [class.is-disabled]=\"disabled\">\r\n <input\r\n type=\"checkbox\"\r\n [id]=\"checkboxId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onModelChange($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"ask-checkbox-input\"\r\n />\r\n <span class=\"ask-checkbox-custom\"></span>\r\n <span *ngIf=\"label\" class=\"ask-checkbox-label\">{{ label }}</span>\r\n</label>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-tooltip',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.scss']\r\n})\r\nexport class TooltipComponent {\r\n @Input() text: string = '';\r\n @Input() position: 'top' | 'bottom' | 'left' | 'right' = 'top';\r\n\r\n isVisible: boolean = false;\r\n\r\n show(): void {\r\n this.isVisible = true;\r\n }\r\n\r\n hide(): void {\r\n this.isVisible = false;\r\n }\r\n}\r\n","<div class=\"ask-tooltip-wrapper\" (mouseenter)=\"show()\" (mouseleave)=\"hide()\" (focusin)=\"show()\" (focusout)=\"hide()\">\r\n <ng-content></ng-content>\r\n <div *ngIf=\"isVisible && text\" [ngClass]=\"['ask-tooltip-bubble', 'ask-tooltip--' + position]\" role=\"tooltip\">\r\n {{ text }}\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-label',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class LabelComponent {\r\n @Input() forId: string = '';\r\n @Input() required: boolean = false;\r\n}\r\n","<label [attr.for]=\"forId\" class=\"ask-label\">\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required\" class=\"ask-label__required\" aria-hidden=\"true\">*</span>\r\n</label>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ask-title',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './title.component.html',\r\n styleUrls: ['./title.component.scss']\r\n})\r\nexport class TitleComponent {\r\n @Input() level: 1 | 2 | 3 | 4 | 5 | 6 = 2;\r\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'lg';\r\n}\r\n","<h1 *ngIf=\"level === 1\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h1>\r\n<h2 *ngIf=\"level === 2\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h2>\r\n<h3 *ngIf=\"level === 3\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h3>\r\n<h4 *ngIf=\"level === 4\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h4>\r\n<h5 *ngIf=\"level === 5\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h5>\r\n<h6 *ngIf=\"level === 6\" [ngClass]=\"['ask-title', 'ask-title--' + size]\"><ng-content></ng-content></h6>\r\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-asktech-ui',\n imports: [],\n template: ` <p>asktech-ui works!</p> `,\n styles: ``,\n})\nexport class AsktechUi {}\n","/*\n * Public API Surface of asktech-ui\n */\nexport * from './lib/button/button.component';\nexport * from './lib/input/input.component';\nexport * from './lib/card/card.component';\nexport * from './lib/select/select.component';\nexport * from './lib/table/data-table.component';\nexport * from './lib/badge/badge.component';\nexport * from './lib/modal/modal.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/label/label.component';\nexport * from './lib/title/title.component';\nexport * from './lib/asktech-ui';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "asktech-ui",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^21.2.0",
|
|
6
|
+
"@angular/core": "^21.2.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"module": "fesm2022/asktech-ui.mjs",
|
|
13
|
+
"typings": "types/asktech-ui.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/asktech-ui.d.ts",
|
|
20
|
+
"default": "./fesm2022/asktech-ui.mjs"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"type": "module"
|
|
6
24
|
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
declare class ButtonComponent {
|
|
6
|
+
variant: 'primary' | 'secondary' | 'outline' | 'danger';
|
|
7
|
+
size: 'sm' | 'md' | 'lg';
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
type: 'button' | 'submit' | 'reset';
|
|
10
|
+
onClick: EventEmitter<MouseEvent>;
|
|
11
|
+
handleClick(event: MouseEvent): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ask-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare class InputComponent implements ControlValueAccessor {
|
|
17
|
+
label: string;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
type: string;
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
error: string;
|
|
22
|
+
helperText: string;
|
|
23
|
+
inputId: string;
|
|
24
|
+
value: any;
|
|
25
|
+
onChange: any;
|
|
26
|
+
onTouched: any;
|
|
27
|
+
writeValue(value: any): void;
|
|
28
|
+
registerOnChange(fn: any): void;
|
|
29
|
+
registerOnTouched(fn: any): void;
|
|
30
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
31
|
+
onInput(event: Event): void;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "ask-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; }, {}, never, never, true, never>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare class CardComponent {
|
|
37
|
+
title: string;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ask-card", never, { "title": { "alias": "title"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface SelectOption {
|
|
43
|
+
label: string;
|
|
44
|
+
value: any;
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
declare class SelectComponent implements ControlValueAccessor {
|
|
48
|
+
label: string;
|
|
49
|
+
options: SelectOption[];
|
|
50
|
+
placeholder: string;
|
|
51
|
+
disabled: boolean;
|
|
52
|
+
error: string;
|
|
53
|
+
helperText: string;
|
|
54
|
+
selectId: string;
|
|
55
|
+
value: any;
|
|
56
|
+
onChange: any;
|
|
57
|
+
onTouched: any;
|
|
58
|
+
writeValue(value: any): void;
|
|
59
|
+
registerOnChange(fn: any): void;
|
|
60
|
+
registerOnTouched(fn: any): void;
|
|
61
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
62
|
+
onSelectionChange(event: Event): void;
|
|
63
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
64
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "ask-select", never, { "label": { "alias": "label"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "error": { "alias": "error"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "selectId": { "alias": "selectId"; "required": false; }; }, {}, never, never, true, never>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface TableColumn {
|
|
68
|
+
key: string;
|
|
69
|
+
header: string;
|
|
70
|
+
width?: string;
|
|
71
|
+
align?: 'left' | 'center' | 'right';
|
|
72
|
+
}
|
|
73
|
+
declare class DataTableComponent {
|
|
74
|
+
columns: TableColumn[];
|
|
75
|
+
data: any[];
|
|
76
|
+
rowClassFn?: (row: any) => string;
|
|
77
|
+
rowClick: EventEmitter<any>;
|
|
78
|
+
onRowClick(row: any): void;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataTableComponent, never>;
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "ask-data-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "rowClassFn": { "alias": "rowClassFn"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, true, never>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare class BadgeComponent {
|
|
84
|
+
variant: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
85
|
+
size: 'sm' | 'md';
|
|
86
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
87
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "ask-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
declare class ModalComponent {
|
|
91
|
+
isOpen: boolean;
|
|
92
|
+
title: string;
|
|
93
|
+
size: 'sm' | 'md' | 'lg';
|
|
94
|
+
showFooter: boolean;
|
|
95
|
+
onClose: EventEmitter<void>;
|
|
96
|
+
close(): void;
|
|
97
|
+
onBackdropClick(event: MouseEvent): void;
|
|
98
|
+
onKeydown(event: KeyboardEvent): void;
|
|
99
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "ask-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "title": { "alias": "title"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; }, { "onClose": "onClose"; }, never, ["*", "[modal-footer]"], true, never>;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
declare class CheckboxComponent implements ControlValueAccessor {
|
|
104
|
+
label: string;
|
|
105
|
+
disabled: boolean;
|
|
106
|
+
checkboxId: string;
|
|
107
|
+
checked: boolean;
|
|
108
|
+
onChange: any;
|
|
109
|
+
onTouched: any;
|
|
110
|
+
writeValue(value: boolean): void;
|
|
111
|
+
registerOnChange(fn: any): void;
|
|
112
|
+
registerOnTouched(fn: any): void;
|
|
113
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
114
|
+
onModelChange(event: any): void;
|
|
115
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
116
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "ask-checkbox", never, { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "checkboxId": { "alias": "checkboxId"; "required": false; }; }, {}, never, never, true, never>;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
declare class TooltipComponent {
|
|
120
|
+
text: string;
|
|
121
|
+
position: 'top' | 'bottom' | 'left' | 'right';
|
|
122
|
+
isVisible: boolean;
|
|
123
|
+
show(): void;
|
|
124
|
+
hide(): void;
|
|
125
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
|
|
126
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "ask-tooltip", never, { "text": { "alias": "text"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
declare class LabelComponent {
|
|
130
|
+
forId: string;
|
|
131
|
+
required: boolean;
|
|
132
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LabelComponent, never>;
|
|
133
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "ask-label", never, { "forId": { "alias": "forId"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
declare class TitleComponent {
|
|
137
|
+
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
138
|
+
size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
139
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TitleComponent, never>;
|
|
140
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TitleComponent, "ask-title", never, { "level": { "alias": "level"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*", "*"], true, never>;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
declare class AsktechUi {
|
|
144
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsktechUi, never>;
|
|
145
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AsktechUi, "lib-asktech-ui", never, {}, {}, never, never, true, never>;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export { AsktechUi, BadgeComponent, ButtonComponent, CardComponent, CheckboxComponent, DataTableComponent, InputComponent, LabelComponent, ModalComponent, SelectComponent, TitleComponent, TooltipComponent };
|
|
149
|
+
export type { SelectOption, TableColumn };
|