@eagami/ui 5.10.0 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/eagami-ui.mjs +32 -100
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eagami-ui.d.ts +1 -6
package/fesm2022/eagami-ui.mjs
CHANGED
|
@@ -604,10 +604,6 @@ const messages$e = {
|
|
|
604
604
|
moveAllToSource: 'نقل الكل إلى اليسار',
|
|
605
605
|
empty: 'لا توجد عناصر',
|
|
606
606
|
},
|
|
607
|
-
tree: {
|
|
608
|
-
expand: 'توسيع',
|
|
609
|
-
collapse: 'طي',
|
|
610
|
-
},
|
|
611
607
|
validation: {
|
|
612
608
|
required: 'هذا الحقل مطلوب',
|
|
613
609
|
email: 'أدخل عنوان بريد إلكتروني صالحًا',
|
|
@@ -810,10 +806,6 @@ const messages$d = {
|
|
|
810
806
|
moveAllToSource: 'Alle nach links verschieben',
|
|
811
807
|
empty: 'Keine Einträge',
|
|
812
808
|
},
|
|
813
|
-
tree: {
|
|
814
|
-
expand: 'Aufklappen',
|
|
815
|
-
collapse: 'Zuklappen',
|
|
816
|
-
},
|
|
817
809
|
validation: {
|
|
818
810
|
required: 'Dieses Feld ist erforderlich',
|
|
819
811
|
email: 'Gültige E-Mail-Adresse eingeben',
|
|
@@ -1016,10 +1008,6 @@ const messages$c = {
|
|
|
1016
1008
|
moveAllToSource: 'Μεταφορά όλων στην πηγή',
|
|
1017
1009
|
empty: 'Καμία εγγραφή',
|
|
1018
1010
|
},
|
|
1019
|
-
tree: {
|
|
1020
|
-
expand: 'Ανάπτυξη',
|
|
1021
|
-
collapse: 'Σύμπτυξη',
|
|
1022
|
-
},
|
|
1023
1011
|
validation: {
|
|
1024
1012
|
required: 'Αυτό το πεδίο είναι υποχρεωτικό',
|
|
1025
1013
|
email: 'Εισαγάγετε έγκυρη διεύθυνση email',
|
|
@@ -1222,10 +1210,6 @@ const messages$b = {
|
|
|
1222
1210
|
moveAllToSource: 'Move all to source',
|
|
1223
1211
|
empty: 'No items',
|
|
1224
1212
|
},
|
|
1225
|
-
tree: {
|
|
1226
|
-
expand: 'Expand',
|
|
1227
|
-
collapse: 'Collapse',
|
|
1228
|
-
},
|
|
1229
1213
|
validation: {
|
|
1230
1214
|
required: 'This field is required',
|
|
1231
1215
|
email: 'Enter a valid email address',
|
|
@@ -1428,10 +1412,6 @@ const messages$a = {
|
|
|
1428
1412
|
moveAllToSource: 'Mover todos al origen',
|
|
1429
1413
|
empty: 'Sin elementos',
|
|
1430
1414
|
},
|
|
1431
|
-
tree: {
|
|
1432
|
-
expand: 'Expandir',
|
|
1433
|
-
collapse: 'Contraer',
|
|
1434
|
-
},
|
|
1435
1415
|
validation: {
|
|
1436
1416
|
required: 'Este campo es obligatorio',
|
|
1437
1417
|
email: 'Introduce un correo electrónico válido',
|
|
@@ -1634,10 +1614,6 @@ const messages$9 = {
|
|
|
1634
1614
|
moveAllToSource: 'Tout déplacer vers la source',
|
|
1635
1615
|
empty: 'Aucun élément',
|
|
1636
1616
|
},
|
|
1637
|
-
tree: {
|
|
1638
|
-
expand: 'Développer',
|
|
1639
|
-
collapse: 'Réduire',
|
|
1640
|
-
},
|
|
1641
1617
|
validation: {
|
|
1642
1618
|
required: 'Ce champ est obligatoire',
|
|
1643
1619
|
email: 'Saisissez une adresse e-mail valide',
|
|
@@ -1840,10 +1816,6 @@ const messages$8 = {
|
|
|
1840
1816
|
moveAllToSource: 'העברת הכול למקור',
|
|
1841
1817
|
empty: 'אין פריטים',
|
|
1842
1818
|
},
|
|
1843
|
-
tree: {
|
|
1844
|
-
expand: 'הרחבה',
|
|
1845
|
-
collapse: 'כיווץ',
|
|
1846
|
-
},
|
|
1847
1819
|
validation: {
|
|
1848
1820
|
required: 'שדה זה הוא חובה',
|
|
1849
1821
|
email: 'הזן כתובת אימייל תקינה',
|
|
@@ -2046,10 +2018,6 @@ const messages$7 = {
|
|
|
2046
2018
|
moveAllToSource: 'सभी को स्रोत में ले जाएं',
|
|
2047
2019
|
empty: 'कोई आइटम नहीं',
|
|
2048
2020
|
},
|
|
2049
|
-
tree: {
|
|
2050
|
-
expand: 'विस्तृत करें',
|
|
2051
|
-
collapse: 'संक्षिप्त करें',
|
|
2052
|
-
},
|
|
2053
2021
|
validation: {
|
|
2054
2022
|
required: 'यह फ़ील्ड आवश्यक है',
|
|
2055
2023
|
email: 'एक मान्य ईमेल पता दर्ज करें',
|
|
@@ -2252,10 +2220,6 @@ const messages$6 = {
|
|
|
2252
2220
|
moveAllToSource: 'Færa allt til baka',
|
|
2253
2221
|
empty: 'Engin atriði',
|
|
2254
2222
|
},
|
|
2255
|
-
tree: {
|
|
2256
|
-
expand: 'Fletta út',
|
|
2257
|
-
collapse: 'Fella saman',
|
|
2258
|
-
},
|
|
2259
2223
|
validation: {
|
|
2260
2224
|
required: 'Þennan reit þarf að fylla út',
|
|
2261
2225
|
email: 'Sláðu inn gilt netfang',
|
|
@@ -2458,10 +2422,6 @@ const messages$5 = {
|
|
|
2458
2422
|
moveAllToSource: 'Alles naar links verplaatsen',
|
|
2459
2423
|
empty: 'Geen items',
|
|
2460
2424
|
},
|
|
2461
|
-
tree: {
|
|
2462
|
-
expand: 'Uitvouwen',
|
|
2463
|
-
collapse: 'Invouwen',
|
|
2464
|
-
},
|
|
2465
2425
|
validation: {
|
|
2466
2426
|
required: 'Dit veld is verplicht',
|
|
2467
2427
|
email: 'Voer een geldig e-mailadres in',
|
|
@@ -2664,10 +2624,6 @@ const messages$4 = {
|
|
|
2664
2624
|
moveAllToSource: 'Przenieś wszystko do źródła',
|
|
2665
2625
|
empty: 'Brak elementów',
|
|
2666
2626
|
},
|
|
2667
|
-
tree: {
|
|
2668
|
-
expand: 'Rozwiń',
|
|
2669
|
-
collapse: 'Zwiń',
|
|
2670
|
-
},
|
|
2671
2627
|
validation: {
|
|
2672
2628
|
required: 'To pole jest wymagane',
|
|
2673
2629
|
email: 'Podaj prawidłowy adres e-mail',
|
|
@@ -2870,10 +2826,6 @@ const messages$3 = {
|
|
|
2870
2826
|
moveAllToSource: 'Mover todos para a origem',
|
|
2871
2827
|
empty: 'Nenhum item',
|
|
2872
2828
|
},
|
|
2873
|
-
tree: {
|
|
2874
|
-
expand: 'Expandir',
|
|
2875
|
-
collapse: 'Recolher',
|
|
2876
|
-
},
|
|
2877
2829
|
validation: {
|
|
2878
2830
|
required: 'Este campo é obrigatório',
|
|
2879
2831
|
email: 'Insira um e-mail válido',
|
|
@@ -3076,10 +3028,6 @@ const messages$2 = {
|
|
|
3076
3028
|
moveAllToSource: 'Переместить все влево',
|
|
3077
3029
|
empty: 'Нет элементов',
|
|
3078
3030
|
},
|
|
3079
|
-
tree: {
|
|
3080
|
-
expand: 'Развернуть',
|
|
3081
|
-
collapse: 'Свернуть',
|
|
3082
|
-
},
|
|
3083
3031
|
validation: {
|
|
3084
3032
|
required: 'Это поле обязательно для заполнения',
|
|
3085
3033
|
email: 'Введите действительный адрес электронной почты',
|
|
@@ -3282,10 +3230,6 @@ const messages$1 = {
|
|
|
3282
3230
|
moveAllToSource: 'Перенести все вліво',
|
|
3283
3231
|
empty: 'Немає елементів',
|
|
3284
3232
|
},
|
|
3285
|
-
tree: {
|
|
3286
|
-
expand: 'Розгорнути',
|
|
3287
|
-
collapse: 'Згорнути',
|
|
3288
|
-
},
|
|
3289
3233
|
validation: {
|
|
3290
3234
|
required: 'Це поле обов’язкове',
|
|
3291
3235
|
email: 'Введіть дійсну електронну адресу',
|
|
@@ -3488,10 +3432,6 @@ const messages = {
|
|
|
3488
3432
|
moveAllToSource: '将全部移至左侧',
|
|
3489
3433
|
empty: '无项目',
|
|
3490
3434
|
},
|
|
3491
|
-
tree: {
|
|
3492
|
-
expand: '展开',
|
|
3493
|
-
collapse: '折叠',
|
|
3494
|
-
},
|
|
3495
3435
|
validation: {
|
|
3496
3436
|
required: '此字段为必填项',
|
|
3497
3437
|
email: '请输入有效的电子邮件地址',
|
|
@@ -3660,7 +3600,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
3660
3600
|
args: [{ providedIn: 'root' }]
|
|
3661
3601
|
}], ctorParameters: () => [] });
|
|
3662
3602
|
|
|
3663
|
-
// Excludes U+202F and U+00A0 so the substitution is idempotent
|
|
3603
|
+
// Excludes U+202F and U+00A0 so the substitution is idempotent
|
|
3664
3604
|
const SPACE_BEFORE_HIGH_PUNCT = / ([!?:;»])/g;
|
|
3665
3605
|
const SPACE_AFTER_OPEN_GUILLEMET = /(«) /g;
|
|
3666
3606
|
/**
|
|
@@ -4211,7 +4151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
4211
4151
|
*/
|
|
4212
4152
|
function controlErrorStateFrom(control, config) {
|
|
4213
4153
|
const i18n = inject(EagamiI18nService);
|
|
4214
|
-
// Bumped on every status/touched change so the computed re-reads the control
|
|
4154
|
+
// Bumped on every status/touched change so the computed re-reads the control
|
|
4215
4155
|
const revision = signal(0, ...(ngDevMode ? [{ debugName: "revision" }] : /* istanbul ignore next */ []));
|
|
4216
4156
|
effect(onCleanup => {
|
|
4217
4157
|
const ctrl = control();
|
|
@@ -4570,7 +4510,7 @@ class PopoverComponent {
|
|
|
4570
4510
|
this.stable.set(false);
|
|
4571
4511
|
return;
|
|
4572
4512
|
}
|
|
4573
|
-
// Re-read inputs so signal subscriptions stay current after a re-open
|
|
4513
|
+
// Re-read inputs so signal subscriptions stay current after a re-open
|
|
4574
4514
|
this.placement();
|
|
4575
4515
|
this.offset();
|
|
4576
4516
|
this.flip();
|
|
@@ -6672,7 +6612,7 @@ class CheckboxComponent {
|
|
|
6672
6612
|
useExisting: forwardRef(() => CheckboxComponent),
|
|
6673
6613
|
multi: true,
|
|
6674
6614
|
},
|
|
6675
|
-
], ngImport: i0, template: "<div class=\"ea-checkbox-field\">\n <label\n class=\"ea-checkbox\"\n [ngClass]=\"hostClasses()\"\n [for]=\"id()\">\n <input\n #inputEl\n type=\"checkbox\"\n class=\"ea-checkbox__input\"\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (change)=\"handleChange()\" />\n\n <span\n class=\"ea-checkbox__box\"\n aria-hidden=\"true\">\n @if (indeterminate()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4 8h8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\" />\n </svg>\n } @else if (checked()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </span>\n\n @if (label()) {\n <span\n class=\"ea-checkbox__label\"\n [class.ea-checkbox__label--required]=\"required()\">\n {{ label() }}\n @if (count() !== undefined && count() !== null) {\n <span class=\"ea-checkbox__count\">{{ count() }}</span>\n }\n </span>\n }\n </label>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n", styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.ea-checkbox-field{display:inline-flex;flex-direction:column;gap:var(--space-1-5)}.ea-checkbox{display:inline-flex;align-items:center;gap:.5em;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);color:var(--color-text-primary)}.ea-checkbox--xs{font-size:var(--font-size-xs)}.ea-checkbox--sm{font-size:var(--font-size-sm)}.ea-checkbox--md{font-size:var(--font-size-md)}.ea-checkbox--lg{font-size:var(--font-size-lg)}.ea-checkbox--xl{font-size:var(--font-size-xl)}.ea-checkbox--disabled{opacity:.45;cursor:not-allowed}.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:var(--color-brand-default);border-color:var(--color-brand-default);color:var(--color-text-inverse)}@media(forced-colors:active){.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-checkbox:hover:not(.ea-checkbox--disabled) .ea-checkbox__box{border-color:var(--color-brand-default)}.ea-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ea-checkbox__input:focus-visible+.ea-checkbox__box{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-checkbox__input:focus-visible+.ea-checkbox__box{outline:2px solid Highlight;outline-offset:2px}}.ea-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:1.25em;height:1.25em;border:var(--border-width-thin) solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-checkbox__box svg{position:absolute;width:65%;height:65%}.ea-checkbox__label{font-weight:var(--font-weight-regular)}.ea-checkbox__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-checkbox__count{margin-inline-start:.25em;color:var(--color-text-tertiary)}.ea-checkbox--error .ea-checkbox__box{border-color:var(--color-error-default)}\n"], dependencies: [{ kind: "component", type: FieldMessagesComponent, selector: "ea-field-messages", inputs: ["id", "error", "hint"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6615
|
+
], ngImport: i0, template: "<div class=\"ea-checkbox-field\">\n <label\n class=\"ea-checkbox\"\n [ngClass]=\"hostClasses()\"\n [for]=\"id()\">\n <input\n #inputEl\n type=\"checkbox\"\n class=\"ea-checkbox__input\"\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (change)=\"handleChange()\" />\n\n <span\n class=\"ea-checkbox__box\"\n aria-hidden=\"true\">\n @if (indeterminate()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4 8h8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\" />\n </svg>\n } @else if (checked()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </span>\n\n @if (label()) {\n <span\n class=\"ea-checkbox__label\"\n [class.ea-checkbox__label--required]=\"required()\">\n {{ label() }}\n @if (count() !== undefined && count() !== null) {\n <span class=\"ea-checkbox__count\">{{ count() }}</span>\n }\n </span>\n }\n </label>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n", styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.ea-checkbox-field{display:inline-flex;flex-direction:column;gap:var(--space-1-5)}.ea-checkbox{display:inline-flex;align-items:center;gap:.5em;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);color:var(--color-text-primary)}.ea-checkbox--xs{font-size:var(--font-size-xs)}.ea-checkbox--sm{font-size:var(--font-size-sm)}.ea-checkbox--md{font-size:var(--font-size-md)}.ea-checkbox--lg{font-size:var(--font-size-lg)}.ea-checkbox--xl{font-size:var(--font-size-xl)}.ea-checkbox--disabled{opacity:.45;cursor:not-allowed}.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:var(--color-brand-default);border-color:var(--color-brand-default);color:var(--color-text-inverse)}@media(forced-colors:active){.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-checkbox:hover:not(.ea-checkbox--disabled) .ea-checkbox__box{border-color:var(--color-brand-default)}.ea-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ea-checkbox__input:focus-visible+.ea-checkbox__box{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-checkbox__input:focus-visible+.ea-checkbox__box{outline:2px solid Highlight;outline-offset:2px}}.ea-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:1.25em;height:1.25em;border:var(--border-width-thin) solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-checkbox__box svg{position:absolute;width:65%;height:65%}.ea-checkbox__label{font-weight:var(--font-weight-regular);color:var(--ea-checkbox-label-color, inherit);transition:color var(--duration-fast) var(--ease-out)}.ea-checkbox__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-checkbox__count{margin-inline-start:.25em;color:var(--ea-checkbox-count-color, var(--color-text-tertiary));transition:color var(--duration-fast) var(--ease-out)}.ea-checkbox--error .ea-checkbox__box{border-color:var(--color-error-default)}\n"], dependencies: [{ kind: "component", type: FieldMessagesComponent, selector: "ea-field-messages", inputs: ["id", "error", "hint"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6676
6616
|
}
|
|
6677
6617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
6678
6618
|
type: Component,
|
|
@@ -6682,7 +6622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
6682
6622
|
useExisting: forwardRef(() => CheckboxComponent),
|
|
6683
6623
|
multi: true,
|
|
6684
6624
|
},
|
|
6685
|
-
], template: "<div class=\"ea-checkbox-field\">\n <label\n class=\"ea-checkbox\"\n [ngClass]=\"hostClasses()\"\n [for]=\"id()\">\n <input\n #inputEl\n type=\"checkbox\"\n class=\"ea-checkbox__input\"\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (change)=\"handleChange()\" />\n\n <span\n class=\"ea-checkbox__box\"\n aria-hidden=\"true\">\n @if (indeterminate()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4 8h8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\" />\n </svg>\n } @else if (checked()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </span>\n\n @if (label()) {\n <span\n class=\"ea-checkbox__label\"\n [class.ea-checkbox__label--required]=\"required()\">\n {{ label() }}\n @if (count() !== undefined && count() !== null) {\n <span class=\"ea-checkbox__count\">{{ count() }}</span>\n }\n </span>\n }\n </label>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n", styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.ea-checkbox-field{display:inline-flex;flex-direction:column;gap:var(--space-1-5)}.ea-checkbox{display:inline-flex;align-items:center;gap:.5em;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);color:var(--color-text-primary)}.ea-checkbox--xs{font-size:var(--font-size-xs)}.ea-checkbox--sm{font-size:var(--font-size-sm)}.ea-checkbox--md{font-size:var(--font-size-md)}.ea-checkbox--lg{font-size:var(--font-size-lg)}.ea-checkbox--xl{font-size:var(--font-size-xl)}.ea-checkbox--disabled{opacity:.45;cursor:not-allowed}.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:var(--color-brand-default);border-color:var(--color-brand-default);color:var(--color-text-inverse)}@media(forced-colors:active){.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-checkbox:hover:not(.ea-checkbox--disabled) .ea-checkbox__box{border-color:var(--color-brand-default)}.ea-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ea-checkbox__input:focus-visible+.ea-checkbox__box{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-checkbox__input:focus-visible+.ea-checkbox__box{outline:2px solid Highlight;outline-offset:2px}}.ea-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:1.25em;height:1.25em;border:var(--border-width-thin) solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-checkbox__box svg{position:absolute;width:65%;height:65%}.ea-checkbox__label{font-weight:var(--font-weight-regular)}.ea-checkbox__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-checkbox__count{margin-inline-start:.25em;color:var(--color-text-tertiary)}.ea-checkbox--error .ea-checkbox__box{border-color:var(--color-error-default)}\n"] }]
|
|
6625
|
+
], template: "<div class=\"ea-checkbox-field\">\n <label\n class=\"ea-checkbox\"\n [ngClass]=\"hostClasses()\"\n [for]=\"id()\">\n <input\n #inputEl\n type=\"checkbox\"\n class=\"ea-checkbox__input\"\n [id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"isDisabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n [attr.aria-required]=\"required() || null\"\n [attr.aria-invalid]=\"hasError() || null\"\n [attr.aria-describedby]=\"\n showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n \"\n (change)=\"handleChange()\" />\n\n <span\n class=\"ea-checkbox__box\"\n aria-hidden=\"true\">\n @if (indeterminate()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4 8h8\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\" />\n </svg>\n } @else if (checked()) {\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n }\n </span>\n\n @if (label()) {\n <span\n class=\"ea-checkbox__label\"\n [class.ea-checkbox__label--required]=\"required()\">\n {{ label() }}\n @if (count() !== undefined && count() !== null) {\n <span class=\"ea-checkbox__count\">{{ count() }}</span>\n }\n </span>\n }\n </label>\n\n <ea-field-messages\n [id]=\"id()\"\n [error]=\"errorText()\"\n [hint]=\"showHint() ? hint() : null\" />\n</div>\n", styles: [":host{display:inline-flex;vertical-align:middle;line-height:1}.ea-checkbox-field{display:inline-flex;flex-direction:column;gap:var(--space-1-5)}.ea-checkbox{display:inline-flex;align-items:center;gap:.5em;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-sans);color:var(--color-text-primary)}.ea-checkbox--xs{font-size:var(--font-size-xs)}.ea-checkbox--sm{font-size:var(--font-size-sm)}.ea-checkbox--md{font-size:var(--font-size-md)}.ea-checkbox--lg{font-size:var(--font-size-lg)}.ea-checkbox--xl{font-size:var(--font-size-xl)}.ea-checkbox--disabled{opacity:.45;cursor:not-allowed}.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:var(--color-brand-default);border-color:var(--color-brand-default);color:var(--color-text-inverse)}@media(forced-colors:active){.ea-checkbox--checked .ea-checkbox__box,.ea-checkbox--indeterminate .ea-checkbox__box{background-color:Highlight;border-color:Highlight;color:HighlightText}}.ea-checkbox:hover:not(.ea-checkbox--disabled) .ea-checkbox__box{border-color:var(--color-brand-default)}.ea-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ea-checkbox__input:focus-visible+.ea-checkbox__box{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-checkbox__input:focus-visible+.ea-checkbox__box{outline:2px solid Highlight;outline-offset:2px}}.ea-checkbox__box{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:1.25em;height:1.25em;border:var(--border-width-thin) solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-bg-base);transition:var(--transition-colors),var(--transition-shadow)}.ea-checkbox__box svg{position:absolute;width:65%;height:65%}.ea-checkbox__label{font-weight:var(--font-weight-regular);color:var(--ea-checkbox-label-color, inherit);transition:color var(--duration-fast) var(--ease-out)}.ea-checkbox__label--required:after{content:\" *\";color:var(--color-error-default)}.ea-checkbox__count{margin-inline-start:.25em;color:var(--ea-checkbox-count-color, var(--color-text-tertiary));transition:color var(--duration-fast) var(--ease-out)}.ea-checkbox--error .ea-checkbox__box{border-color:var(--color-error-default)}\n"] }]
|
|
6686
6626
|
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], errorMsg: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMsg", required: false }] }], errorMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessages", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], changed: [{ type: i0.Output, args: ["changed"] }] } });
|
|
6687
6627
|
|
|
6688
6628
|
class SearchIconComponent extends IconComponentBase {
|
|
@@ -7520,7 +7460,7 @@ class ColorPickerComponent {
|
|
|
7520
7460
|
}
|
|
7521
7461
|
}
|
|
7522
7462
|
onHexBlur() {
|
|
7523
|
-
// Reset the partial text to the canonical hex of the current color
|
|
7463
|
+
// Reset the partial text to the canonical hex of the current color
|
|
7524
7464
|
this.hexInputValue.set(this.hexDisplay());
|
|
7525
7465
|
this.onTouched();
|
|
7526
7466
|
}
|
|
@@ -7629,7 +7569,7 @@ class ColorPickerComponent {
|
|
|
7629
7569
|
}
|
|
7630
7570
|
applyRgba(r, g, b, a, commit, refreshHex = true) {
|
|
7631
7571
|
const hsv = rgbToHsv(r, g, b);
|
|
7632
|
-
// Preserve current hue when the new color is achromatic (sat = 0)
|
|
7572
|
+
// Preserve current hue when the new color is achromatic (sat = 0)
|
|
7633
7573
|
this.hue.set(hsv.s === 0 ? this.hue() : hsv.h);
|
|
7634
7574
|
this.sat.set(hsv.s);
|
|
7635
7575
|
this.val.set(hsv.v);
|
|
@@ -8123,7 +8063,7 @@ class DataTableComponent {
|
|
|
8123
8063
|
// Roving-tabindex active cell for grid navigation. Row 0 is the header row;
|
|
8124
8064
|
// body rows are 1..N. Only meaningful while `navigable` is true.
|
|
8125
8065
|
activeCell = signal({ row: 0, col: 0 }, ...(ngDevMode ? [{ debugName: "activeCell" }] : /* istanbul ignore next */ []));
|
|
8126
|
-
// Rows skipped per PageUp/PageDown within the grid body
|
|
8066
|
+
// Rows skipped per PageUp/PageDown within the grid body
|
|
8127
8067
|
static PAGE_JUMP = 10;
|
|
8128
8068
|
columns = input.required(...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
8129
8069
|
data = input.required(...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
@@ -8496,7 +8436,7 @@ class CodeInputComponent {
|
|
|
8496
8436
|
const index = Math.min(val.length, this.length() - 1);
|
|
8497
8437
|
this.focusDigit(index);
|
|
8498
8438
|
}
|
|
8499
|
-
// Removes disallowed characters: whitespace in free mode, non-digits otherwise
|
|
8439
|
+
// Removes disallowed characters: whitespace in free mode, non-digits otherwise
|
|
8500
8440
|
sanitize(text) {
|
|
8501
8441
|
return this.allowAllChars() ? text.replace(/\s/g, '') : text.replace(/[^0-9]/g, '');
|
|
8502
8442
|
}
|
|
@@ -9193,11 +9133,11 @@ class DialogComponent {
|
|
|
9193
9133
|
this.handleClose();
|
|
9194
9134
|
}
|
|
9195
9135
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9196
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dialogEl", first: true, predicate: ["dialogEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-header'\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{
|
|
9136
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: DialogComponent, isStandalone: true, selector: "ea-dialog", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dialogEl", first: true, predicate: ["dialogEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-header'\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;width:var(--ea-dialog-size, 32rem);background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{--ea-dialog-size: 20rem}.ea-dialog__panel--sm{--ea-dialog-size: 24rem}.ea-dialog__panel--md{--ea-dialog-size: 32rem}.ea-dialog__panel--lg{--ea-dialog-size: 42rem}.ea-dialog__panel--xl{--ea-dialog-size: 52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XIconComponent, selector: "ea-icon-x" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
9197
9137
|
}
|
|
9198
9138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: DialogComponent, decorators: [{
|
|
9199
9139
|
type: Component,
|
|
9200
|
-
args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-header'\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{
|
|
9140
|
+
args: [{ selector: 'ea-dialog', imports: [NgClass, XIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<dialog\n #dialogEl\n class=\"ea-dialog\"\n [id]=\"id()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"!ariaLabel() ? id() + '-header' : null\"\n (click)=\"handleBackdropClick($event)\"\n (cancel)=\"handleCancel($event)\">\n <div\n class=\"ea-dialog__panel\"\n [ngClass]=\"panelClasses()\">\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"ea-dialog__close\"\n [attr.aria-label]=\"i18n.messages().dialog.close\"\n (click)=\"handleClose()\">\n <ea-icon-x />\n </button>\n }\n\n <div\n class=\"ea-dialog__header\"\n [id]=\"id() + '-header'\">\n <ng-content select=\"[slot=header]\" />\n </div>\n\n <div class=\"ea-dialog__body\">\n <ng-content />\n </div>\n\n <div class=\"ea-dialog__footer\">\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n</dialog>\n", styles: [".ea-dialog{border:none;background:transparent;padding:0;margin:auto;max-width:none;max-height:none;overflow:visible}.ea-dialog::backdrop{background-color:var(--color-bg-overlay)}.ea-dialog__panel{position:relative;display:flex;flex-direction:column;width:var(--ea-dialog-size, 32rem);background-color:var(--ea-dialog-panel-background-color, var(--color-bg-elevated));border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:85vh;overflow:hidden}@media(forced-colors:active){.ea-dialog__panel{border:1px solid CanvasText}}.ea-dialog__panel--xs{--ea-dialog-size: 20rem}.ea-dialog__panel--sm{--ea-dialog-size: 24rem}.ea-dialog__panel--md{--ea-dialog-size: 32rem}.ea-dialog__panel--lg{--ea-dialog-size: 42rem}.ea-dialog__panel--xl{--ea-dialog-size: 52rem}.ea-dialog__panel--full{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem)}.ea-dialog__close{z-index:1;position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ea-icon-button-size, 1.75em);height:var(--ea-icon-button-size, 1.75em);padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors)}.ea-dialog__close>*{font-size:1.25em}.ea-dialog__close:hover{background-color:var(--color-state-hover);color:var(--color-text-primary)}.ea-dialog__close:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-dialog__close:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-dialog__close:disabled{cursor:not-allowed;opacity:.5}.ea-dialog__header{padding:var(--space-5) var(--space-6) var(--space-3);font-size:var(--text-h4-size);font-weight:var(--text-h4-weight);line-height:var(--text-h4-lh);color:var(--color-text-primary)}.ea-dialog__header:empty{display:none}.ea-dialog__body{flex:1;padding:var(--space-3) var(--space-6);overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary)}.ea-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.ea-dialog__footer>*{display:flex;align-items:center;gap:var(--space-3)}.ea-dialog__footer:empty{display:none}\n"] }]
|
|
9201
9141
|
}], ctorParameters: () => [], propDecorators: { dialogEl: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], showClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClose", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
9202
9142
|
|
|
9203
9143
|
// The padding side, per position, applied to the push target so its content
|
|
@@ -9274,7 +9214,7 @@ class DrawerComponent {
|
|
|
9274
9214
|
const drawerRef = this.drawerEl()?.nativeElement;
|
|
9275
9215
|
const open = this.open();
|
|
9276
9216
|
const mode = this.mode();
|
|
9277
|
-
// Re-run the push measurement if size, position, or target change while open
|
|
9217
|
+
// Re-run the push measurement if size, position, or target change while open
|
|
9278
9218
|
this.size();
|
|
9279
9219
|
this.position();
|
|
9280
9220
|
this.pushTarget();
|
|
@@ -9283,7 +9223,7 @@ class DrawerComponent {
|
|
|
9283
9223
|
if (!drawerRef || !this.isBrowser) {
|
|
9284
9224
|
return;
|
|
9285
9225
|
}
|
|
9286
|
-
// Push mode stays non-modal so the page behind it remains interactive
|
|
9226
|
+
// Push mode stays non-modal so the page behind it remains interactive
|
|
9287
9227
|
const wantModal = mode !== 'push';
|
|
9288
9228
|
if (open) {
|
|
9289
9229
|
if (!drawerRef.open) {
|
|
@@ -9293,7 +9233,7 @@ class DrawerComponent {
|
|
|
9293
9233
|
this.opened.emit();
|
|
9294
9234
|
}
|
|
9295
9235
|
else if (this.isLeaving) {
|
|
9296
|
-
// Reopened mid-exit: cancel the pending close and slide back in
|
|
9236
|
+
// Reopened mid-exit: cancel the pending close and slide back in
|
|
9297
9237
|
this.enter(true);
|
|
9298
9238
|
}
|
|
9299
9239
|
else if (this.shownAsModal !== wantModal) {
|
|
@@ -9409,7 +9349,7 @@ class DrawerComponent {
|
|
|
9409
9349
|
}
|
|
9410
9350
|
}
|
|
9411
9351
|
finishClose(dialog) {
|
|
9412
|
-
// A reopen during the exit animation supersedes the close
|
|
9352
|
+
// A reopen during the exit animation supersedes the close
|
|
9413
9353
|
if (this.open()) {
|
|
9414
9354
|
return;
|
|
9415
9355
|
}
|
|
@@ -9432,7 +9372,7 @@ class DrawerComponent {
|
|
|
9432
9372
|
this.open.set(false);
|
|
9433
9373
|
this.closed.emit();
|
|
9434
9374
|
}
|
|
9435
|
-
// Non-modal push drawers do not emit `cancel`, so Escape is handled here
|
|
9375
|
+
// Non-modal push drawers do not emit `cancel`, so Escape is handled here
|
|
9436
9376
|
handleKeydown(event) {
|
|
9437
9377
|
if (this.mode() === 'push' && this.closeOnEscape() && event.key === 'Escape') {
|
|
9438
9378
|
this.handleClose();
|
|
@@ -9484,7 +9424,7 @@ class DrawerComponent {
|
|
|
9484
9424
|
const ease = animation === 'linear' ? 'var(--ease-linear)' : 'var(--ease-out)';
|
|
9485
9425
|
target.style.transition = `padding var(--duration-slower) ${ease}`;
|
|
9486
9426
|
}
|
|
9487
|
-
// Clear every side first so a position change never stacks two offsets
|
|
9427
|
+
// Clear every side first so a position change never stacks two offsets
|
|
9488
9428
|
this.clearPushProperties(target);
|
|
9489
9429
|
target.style.setProperty(PUSH_PROPERTY[position], `${size}px`);
|
|
9490
9430
|
this.pushedTarget = target;
|
|
@@ -9546,7 +9486,7 @@ class DrawerComponent {
|
|
|
9546
9486
|
this.documentPointerListener = null;
|
|
9547
9487
|
}
|
|
9548
9488
|
}
|
|
9549
|
-
// Removes the push styles immediately, for teardown where no animation is wanted
|
|
9489
|
+
// Removes the push styles immediately, for teardown where no animation is wanted
|
|
9550
9490
|
teardownPush() {
|
|
9551
9491
|
if (this.pushRaf !== null) {
|
|
9552
9492
|
cancelAnimationFrame(this.pushRaf);
|
|
@@ -9586,7 +9526,7 @@ class DrawerComponent {
|
|
|
9586
9526
|
// keep the drawer open; otherwise mirror the close back into the model.
|
|
9587
9527
|
onDialogClose() {
|
|
9588
9528
|
const drawerRef = this.drawerEl()?.nativeElement;
|
|
9589
|
-
// Ignore the stale close event fired while reopening to switch modality
|
|
9529
|
+
// Ignore the stale close event fired while reopening to switch modality
|
|
9590
9530
|
if (this.reopening || !this.open() || drawerRef?.open) {
|
|
9591
9531
|
return;
|
|
9592
9532
|
}
|
|
@@ -10285,7 +10225,7 @@ class EagamiWordmarkComponent {
|
|
|
10285
10225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: EagamiWordmarkComponent, decorators: [{
|
|
10286
10226
|
type: Component,
|
|
10287
10227
|
args: [{ selector: 'ea-eagami-wordmark', imports: [EagamiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
10288
|
-
// The wordmark is a fixed brand lockup; it never mirrors with UI direction
|
|
10228
|
+
// The wordmark is a fixed brand lockup; it never mirrors with UI direction
|
|
10289
10229
|
dir: 'ltr',
|
|
10290
10230
|
'[style.--_size]': 'resolvedSize()',
|
|
10291
10231
|
}, template: "<a\n class=\"ea-eagami-wordmark\"\n [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n href=\"https://eagami.com\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.aria-label]=\"ariaLabel()\">\n <ea-icon-eagami\n class=\"ea-eagami-wordmark__logo\"\n aria-hidden=\"true\" />\n\n <span class=\"ea-eagami-wordmark__text\">\n @if (showOverline()) {\n <span class=\"ea-eagami-wordmark__overline\">\n {{ i18n.messages().wordmark.overline }}\n </span>\n }\n <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n @if (showTagline()) {\n @if (layout() === 'inline') {\n <span\n class=\"ea-eagami-wordmark__separator\"\n aria-hidden=\"true\">\n \u2014\n </span>\n }\n <span class=\"ea-eagami-wordmark__tagline\">\n {{ i18n.messages().wordmark.tagline }}\n </span>\n }\n </span>\n</a>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Syne:wght@400;500&display=swap\";:host{display:inline-block;line-height:var(--line-height-none)}.ea-eagami-wordmark{display:inline-flex;align-items:center;border-radius:var(--radius-sm);color:var(--color-text-primary);text-decoration:none;transition:var(--transition-opacity)}.ea-eagami-wordmark:hover{opacity:.75}.ea-eagami-wordmark:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-eagami-wordmark:focus-visible{outline:2px solid Highlight;outline-offset:2px}}.ea-eagami-wordmark__logo{flex-shrink:0;font-size:calc(var(--_size) * 1px);forced-color-adjust:none}.ea-eagami-wordmark__text{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:var(--line-height-tight)}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__brand,.ea-eagami-wordmark__tagline{white-space:nowrap;text-transform:lowercase}.ea-eagami-wordmark__overline,.ea-eagami-wordmark__separator,.ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .2px);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-sans);color:var(--color-text-secondary)}.ea-eagami-wordmark__overline{color:var(--ea-eagami-wordmark-overline-color, var(--color-text-secondary))}.ea-eagami-wordmark__brand{font-size:calc(var(--_size) * .5px);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);font-family:var(--font-family-brand)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__text{flex-direction:row;align-items:baseline;gap:calc(var(--_size) * .2px)}.ea-eagami-wordmark--inline .ea-eagami-wordmark__overline,.ea-eagami-wordmark--inline .ea-eagami-wordmark__separator,.ea-eagami-wordmark--inline .ea-eagami-wordmark__tagline{font-size:calc(var(--_size) * .5px)}\n"] }]
|
|
@@ -11134,7 +11074,7 @@ class FileUploaderComponent {
|
|
|
11134
11074
|
if (files.length) {
|
|
11135
11075
|
this.acceptFiles(files);
|
|
11136
11076
|
}
|
|
11137
|
-
// Reset so re-picking the same file re-triggers the input
|
|
11077
|
+
// Reset so re-picking the same file re-triggers the input
|
|
11138
11078
|
inputEl.value = '';
|
|
11139
11079
|
}
|
|
11140
11080
|
onDragOver(event) {
|
|
@@ -11603,7 +11543,7 @@ class InputComponent {
|
|
|
11603
11543
|
const el = event.target;
|
|
11604
11544
|
let value = el.value;
|
|
11605
11545
|
const maxLen = this.maxLength();
|
|
11606
|
-
// Native maxlength is ignored on number inputs, so enforce it here
|
|
11546
|
+
// Native maxlength is ignored on number inputs, so enforce it here
|
|
11607
11547
|
if (this.type() === 'number' && maxLen != null && value.length > maxLen) {
|
|
11608
11548
|
value = value.slice(0, maxLen);
|
|
11609
11549
|
el.value = value;
|
|
@@ -12256,7 +12196,7 @@ class MultiSelectComponent {
|
|
|
12256
12196
|
this.triggerEl()?.nativeElement.focus();
|
|
12257
12197
|
}
|
|
12258
12198
|
else if (event.key === 'Backspace' && this.hasValue() && !this.isOpen()) {
|
|
12259
|
-
// Quick-remove the last chip when the trigger is focused and no popover
|
|
12199
|
+
// Quick-remove the last chip when the trigger is focused and no popover
|
|
12260
12200
|
event.preventDefault();
|
|
12261
12201
|
this.commit(this.value().slice(0, -1));
|
|
12262
12202
|
}
|
|
@@ -14097,7 +14037,7 @@ class StepperComponent {
|
|
|
14097
14037
|
if (nextIndex >= 0 && nextIndex !== this.activeStep()) {
|
|
14098
14038
|
this.selectStep(nextIndex);
|
|
14099
14039
|
const buttons = event.currentTarget.querySelectorAll('.ea-stepper__button:not([disabled])');
|
|
14100
|
-
// Match the focused button to the new index (visit order matches DOM order)
|
|
14040
|
+
// Match the focused button to the new index (visit order matches DOM order)
|
|
14101
14041
|
const reachableIndices = this.registeredSteps()
|
|
14102
14042
|
.map((_, i) => i)
|
|
14103
14043
|
.filter(i => this.canNavigateTo(i));
|
|
@@ -14856,7 +14796,7 @@ class TimePickerComponent {
|
|
|
14856
14796
|
else if (event.key === 'PageUp') {
|
|
14857
14797
|
event.preventDefault();
|
|
14858
14798
|
this.flushBuffer();
|
|
14859
|
-
// Coarse step: 5× the configured step (or 10 for hours)
|
|
14799
|
+
// Coarse step: 5× the configured step (or 10 for hours)
|
|
14860
14800
|
const coarse = unit === 'hours' ? 10 : 5;
|
|
14861
14801
|
for (let i = 0; i < coarse; i++) {
|
|
14862
14802
|
this.step(unit, 1);
|
|
@@ -14893,7 +14833,7 @@ class TimePickerComponent {
|
|
|
14893
14833
|
/** Select-all on focus so the first keystroke replaces the current value. */
|
|
14894
14834
|
onSpinnerFocus(event) {
|
|
14895
14835
|
const el = event.currentTarget;
|
|
14896
|
-
// afterNextRender-ish: wait one tick so iOS / Safari accept the select()
|
|
14836
|
+
// afterNextRender-ish: wait one tick so iOS / Safari accept the select()
|
|
14897
14837
|
queueMicrotask(() => el.select());
|
|
14898
14838
|
}
|
|
14899
14839
|
/**
|
|
@@ -15745,7 +15685,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
15745
15685
|
* them against the shared signals.
|
|
15746
15686
|
*/
|
|
15747
15687
|
class TreeNodeComponent {
|
|
15748
|
-
i18n = inject(EagamiI18nService);
|
|
15749
15688
|
node = input.required(...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
15750
15689
|
/** Depth from the tree root (0-indexed). Drives indentation and `aria-level`. */
|
|
15751
15690
|
level = input.required(...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
|
|
@@ -15761,12 +15700,6 @@ class TreeNodeComponent {
|
|
|
15761
15700
|
expandedIds = input.required(...(ngDevMode ? [{ debugName: "expandedIds" }] : /* istanbul ignore next */ []));
|
|
15762
15701
|
/** Whole-tree disabled state. */
|
|
15763
15702
|
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
15764
|
-
/** aria-label for the expand chevron; falls back to the active locale's default. */
|
|
15765
|
-
expandLabel = input(undefined, ...(ngDevMode ? [{ debugName: "expandLabel" }] : /* istanbul ignore next */ []));
|
|
15766
|
-
/** aria-label for the collapse chevron; falls back to the active locale's default. */
|
|
15767
|
-
collapseLabel = input(undefined, ...(ngDevMode ? [{ debugName: "collapseLabel" }] : /* istanbul ignore next */ []));
|
|
15768
|
-
resolvedExpandLabel = computed(() => this.expandLabel() ?? this.i18n.messages().tree.expand, ...(ngDevMode ? [{ debugName: "resolvedExpandLabel" }] : /* istanbul ignore next */ []));
|
|
15769
|
-
resolvedCollapseLabel = computed(() => this.collapseLabel() ?? this.i18n.messages().tree.collapse, ...(ngDevMode ? [{ debugName: "resolvedCollapseLabel" }] : /* istanbul ignore next */ []));
|
|
15770
15703
|
toggle = output();
|
|
15771
15704
|
select = output();
|
|
15772
15705
|
hasChildren = computed(() => (this.node().children?.length ?? 0) > 0, ...(ngDevMode ? [{ debugName: "hasChildren" }] : /* istanbul ignore next */ []));
|
|
@@ -15796,14 +15729,14 @@ class TreeNodeComponent {
|
|
|
15796
15729
|
this.toggle.emit(this.node().id);
|
|
15797
15730
|
}
|
|
15798
15731
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15799
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeNodeComponent, isStandalone: true, selector: "ea-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: true, transformFunction: null }, posInSet: { classPropertyName: "posInSet", publicName: "posInSet", isSignal: true, isRequired: true, transformFunction: null }, setSize: { classPropertyName: "setSize", publicName: "setSize", isSignal: true, isRequired: true, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, focusedId: { classPropertyName: "focusedId", publicName: "focusedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }
|
|
15732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeNodeComponent, isStandalone: true, selector: "ea-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: true, transformFunction: null }, posInSet: { classPropertyName: "posInSet", publicName: "posInSet", isSignal: true, isRequired: true, transformFunction: null }, setSize: { classPropertyName: "setSize", publicName: "setSize", isSignal: true, isRequired: true, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, focusedId: { classPropertyName: "focusedId", publicName: "focusedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle", select: "select" }, host: { attributes: { "role": "none" } }, ngImport: i0, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n aria-hidden=\"true\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled"], outputs: ["toggle", "select"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: ChevronRightIconComponent, selector: "ea-icon-chevron-right" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15800
15733
|
}
|
|
15801
15734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeNodeComponent, decorators: [{
|
|
15802
15735
|
type: Component,
|
|
15803
15736
|
args: [{ selector: 'ea-tree-node', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, ChevronRightIconComponent], host: {
|
|
15804
15737
|
role: 'none',
|
|
15805
|
-
}, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n
|
|
15806
|
-
}], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: true }] }], posInSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "posInSet", required: true }] }], setSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "setSize", required: true }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }], focusedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusedId", required: false }] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }],
|
|
15738
|
+
}, template: "<li\n class=\"ea-tree-node\"\n role=\"treeitem\"\n [attr.id]=\"'ea-tree-item-' + node().id\"\n [attr.data-treeitem-id]=\"node().id\"\n [attr.aria-level]=\"level() + 1\"\n [attr.aria-posinset]=\"posInSet()\"\n [attr.aria-setsize]=\"setSize()\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n [attr.aria-disabled]=\"isDisabled() || null\"\n [attr.tabindex]=\"isFocused() ? 0 : -1\"\n [class.ea-tree-node--selected]=\"isSelected()\"\n [class.ea-tree-node--disabled]=\"isDisabled()\"\n [class.ea-tree-node--leaf]=\"!hasChildren()\"\n [style]=\"indentStyle()\">\n <div\n class=\"ea-tree-node__row\"\n (click)=\"onRowClick()\">\n @if (hasChildren()) {\n <span\n class=\"ea-tree-node__chevron\"\n [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n aria-hidden=\"true\"\n (click)=\"onChevronClick($event)\">\n <ea-icon-chevron-right />\n </span>\n } @else {\n <span\n class=\"ea-tree-node__chevron-spacer\"\n aria-hidden=\"true\">\n </span>\n }\n\n @if (node().icon; as iconClass) {\n <span\n class=\"ea-tree-node__icon\"\n aria-hidden=\"true\">\n <ng-container *ngComponentOutlet=\"iconClass\" />\n </span>\n }\n\n <span class=\"ea-tree-node__label\">\n {{ node().label }}\n </span>\n </div>\n\n @if (hasChildren() && isExpanded()) {\n <ul\n class=\"ea-tree-node__children\"\n role=\"group\">\n @for (child of node().children; track child.id; let i = $index) {\n <ea-tree-node\n [node]=\"child\"\n [level]=\"level() + 1\"\n [posInSet]=\"i + 1\"\n [setSize]=\"node().children!.length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedIds()\"\n [disabled]=\"disabled()\"\n (toggle)=\"toggle.emit($event)\"\n (select)=\"select.emit($event)\" />\n }\n </ul>\n }\n</li>\n", styles: [":host{display:block}.ea-tree-node{display:block;outline:none;list-style:none}.ea-tree-node__row{display:flex;align-items:center;gap:.5em;padding:var(--ea-tree-row-padding-block, .5em) var(--ea-tree-row-padding-inline, .5em);padding-inline-start:calc(var(--ea-tree-row-padding-inline, .5em) + var(--ea-tree-node-level) * var(--ea-tree-indent, 1em));border-radius:var(--radius-sm);background-color:transparent;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors)}.ea-tree-node:focus-visible>.ea-tree-node__row{box-shadow:var(--shadow-focus-ring)}@media(forced-colors:active){.ea-tree-node:focus-visible>.ea-tree-node__row{outline:2px solid Highlight;outline-offset:2px}}.ea-tree-node__row:hover{background-color:var(--color-state-hover)}.ea-tree-node--selected>.ea-tree-node__row{background-color:var(--color-bg-selected, var(--color-brand-subtle));color:var(--color-text-on-selected, var(--color-text-primary))}@media(forced-colors:active){.ea-tree-node--selected>.ea-tree-node__row{background-color:Highlight;color:HighlightText}}.ea-tree-node--disabled>.ea-tree-node__row{opacity:.6;cursor:not-allowed}.ea-tree-node--disabled>.ea-tree-node__row:hover{background-color:transparent}.ea-tree-node__chevron,.ea-tree-node__chevron-spacer{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__chevron{cursor:pointer;transition:transform var(--motion-duration-fast) var(--motion-easing-standard)}.ea-tree-node__chevron--open{transform:rotate(90deg)}.ea-tree-node__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;flex-shrink:0;color:var(--color-text-secondary)}.ea-tree-node__label{font-size:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.ea-tree-node__children{display:block;padding:0;margin:0;list-style:none}\n"] }]
|
|
15739
|
+
}], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: true }] }], posInSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "posInSet", required: true }] }], setSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "setSize", required: true }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }], focusedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusedId", required: false }] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], select: [{ type: i0.Output, args: ["select"] }] } });
|
|
15807
15740
|
|
|
15808
15741
|
/**
|
|
15809
15742
|
* Internal helper: walks a tree depth-first, yielding every node along with
|
|
@@ -15850,7 +15783,6 @@ function visibleNodeIds(nodes, expandedIds) {
|
|
|
15850
15783
|
*/
|
|
15851
15784
|
class TreeComponent {
|
|
15852
15785
|
hostEl = inject(ElementRef);
|
|
15853
|
-
i18n = inject(EagamiI18nService);
|
|
15854
15786
|
nodes = input.required(...(ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []));
|
|
15855
15787
|
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
15856
15788
|
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
@@ -15882,7 +15814,6 @@ class TreeComponent {
|
|
|
15882
15814
|
const visible = visibleNodeIds(this.nodes(), this.expandedSet());
|
|
15883
15815
|
return visible[0] ?? null;
|
|
15884
15816
|
}, ...(ngDevMode ? [{ debugName: "focusedId" }] : /* istanbul ignore next */ []));
|
|
15885
|
-
messages = this.i18n.messages;
|
|
15886
15817
|
hostClasses = computed(() => [
|
|
15887
15818
|
'ea-tree',
|
|
15888
15819
|
`ea-tree--${this.size()}`,
|
|
@@ -16079,11 +16010,11 @@ class TreeComponent {
|
|
|
16079
16010
|
// focus behaviour (e.g. focusing the tree from a parent component).
|
|
16080
16011
|
_listEl = this.listEl;
|
|
16081
16012
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16082
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeComponent, isStandalone: true, selector: "ea-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", expandedIds: "expandedIdsChange", nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n
|
|
16013
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.18", type: TreeComponent, isStandalone: true, selector: "ea-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", expandedIds: "expandedIdsChange", nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "listEl", first: true, predicate: ["listEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "ea-tree-node", inputs: ["node", "level", "posInSet", "setSize", "selectedId", "focusedId", "expandedIds", "disabled"], outputs: ["toggle", "select"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16083
16014
|
}
|
|
16084
16015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImport: i0, type: TreeComponent, decorators: [{
|
|
16085
16016
|
type: Component,
|
|
16086
|
-
args: [{ selector: 'ea-tree', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TreeNodeComponent], template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n
|
|
16017
|
+
args: [{ selector: 'ea-tree', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TreeNodeComponent], template: "<ul\n #listEl\n class=\"ea-tree__list\"\n [class]=\"hostClasses()\"\n role=\"tree\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (keydown)=\"onKeydown($event)\"\n (focusin)=\"onTreeFocus($event)\">\n @for (root of nodes(); track root.id; let i = $index) {\n <ea-tree-node\n [node]=\"root\"\n [level]=\"0\"\n [posInSet]=\"i + 1\"\n [setSize]=\"nodes().length\"\n [selectedId]=\"selectedId()\"\n [focusedId]=\"focusedId()\"\n [expandedIds]=\"expandedSet()\"\n [disabled]=\"disabled()\"\n (toggle)=\"onNodeToggle($event)\"\n (select)=\"onNodeSelect($event)\" />\n }\n</ul>\n", styles: [":host{display:block}.ea-tree__list{display:block;padding:0;margin:0;border-radius:var(--radius-md);background-color:var(--ea-tree-background-color, transparent);color:var(--color-text-primary);list-style:none}.ea-tree__list:focus-visible{outline:none}.ea-tree--xs{font-size:var(--font-size-xs)}.ea-tree--sm{font-size:var(--font-size-sm)}.ea-tree--md{font-size:var(--font-size-md)}.ea-tree--lg{font-size:var(--font-size-lg)}.ea-tree--xl{font-size:var(--font-size-xl)}.ea-tree--disabled{opacity:.6;pointer-events:none}\n"] }]
|
|
16087
16018
|
}], ctorParameters: () => [], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], selectedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedId", required: false }] }, { type: i0.Output, args: ["selectedIdChange"] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: false }] }, { type: i0.Output, args: ["expandedIdsChange"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }], listEl: [{ type: i0.ViewChild, args: ['listEl', { isSignal: true }] }] } });
|
|
16088
16019
|
|
|
16089
16020
|
/**
|
|
@@ -24810,6 +24741,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.18", ngImpo
|
|
|
24810
24741
|
class FramerIconComponent extends IconComponentBase {
|
|
24811
24742
|
static slug = 'framer';
|
|
24812
24743
|
static category = 'feather';
|
|
24744
|
+
static isBrand = true;
|
|
24813
24745
|
static tags = [
|
|
24814
24746
|
'framer',
|
|
24815
24747
|
'design',
|