@ks-digital/designsystem-angular 0.0.1-alpha.11 → 0.0.1-alpha.13
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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, Directive, booleanAttribute, Component, isDevMode, signal, computed, Injectable, numberAttribute, inject, effect, contentChild, contentChildren, ElementRef, afterNextRender } from '@angular/core';
|
|
2
|
+
import { input, Directive, booleanAttribute, Component, isDevMode, signal, computed, Injectable, numberAttribute, inject, effect, contentChild, contentChildren, ElementRef, afterNextRender, output, viewChild } from '@angular/core';
|
|
3
|
+
import { autoUpdate, computePosition, offset, flip, shift } from '@floating-ui/dom';
|
|
3
4
|
|
|
4
5
|
/* eslint-disable @angular-eslint/no-input-rename */
|
|
5
6
|
/**
|
|
@@ -122,39 +123,38 @@ class Button {
|
|
|
122
123
|
* Disables element
|
|
123
124
|
*/
|
|
124
125
|
disabled = input(false, { transform: booleanAttribute });
|
|
126
|
+
/**
|
|
127
|
+
* If this is a button with only an icon
|
|
128
|
+
*/
|
|
129
|
+
icon = input(false, { transform: booleanAttribute });
|
|
125
130
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: Button, isStandalone: true, selector: "button[ksd-button], a[ksd-button]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "attr.data-variant": "variant()", "attr.disabled": "disabled() ? true : null", "attr.aria-busy": "loading() ? true : null" }, classAttribute: "ds-button" }, hostDirectives: [{ directive: CommonInputs, inputs: ["data-size", "data-size", "data-color", "data-color"] }], ngImport: i0, template: `
|
|
131
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: Button, isStandalone: true, selector: "button[ksd-button], a[ksd-button]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, properties: { "attr.data-variant": "variant()", "attr.data-icon": "icon() || null", "attr.disabled": "disabled() ? true : null", "attr.aria-busy": "loading() ? true : null" }, classAttribute: "ds-button" }, hostDirectives: [{ directive: CommonInputs, inputs: ["data-size", "data-size", "data-color", "data-color"] }], ngImport: i0, template: `
|
|
127
132
|
@if (loading()) {
|
|
128
133
|
<ksd-spinner aria-hidden="true" />
|
|
129
134
|
}
|
|
130
135
|
<ng-content />
|
|
131
|
-
`, isInline: true, dependencies: [{ kind: "component", type: Spinner, selector: "ksd-spinner", inputs: ["aria-label", "data-size", "data-color", "aria-hidden"] }] });
|
|
136
|
+
`, isInline: true, styles: [":host ::ng-deep>*{display:inline-flex}\n"], dependencies: [{ kind: "component", type: Spinner, selector: "ksd-spinner", inputs: ["aria-label", "data-size", "data-color", "aria-hidden"] }] });
|
|
132
137
|
}
|
|
133
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: Button, decorators: [{
|
|
134
139
|
type: Component,
|
|
135
|
-
args: [{
|
|
136
|
-
selector: 'button[ksd-button], a[ksd-button]',
|
|
137
|
-
hostDirectives: [
|
|
140
|
+
args: [{ selector: 'button[ksd-button], a[ksd-button]', hostDirectives: [
|
|
138
141
|
{
|
|
139
142
|
directive: CommonInputs,
|
|
140
143
|
inputs: ['data-size', 'data-color'],
|
|
141
144
|
},
|
|
142
|
-
],
|
|
143
|
-
imports: [Spinner],
|
|
144
|
-
host: {
|
|
145
|
+
], imports: [Spinner], host: {
|
|
145
146
|
class: 'ds-button',
|
|
146
147
|
type: 'button',
|
|
147
148
|
'[attr.data-variant]': 'variant()',
|
|
149
|
+
'[attr.data-icon]': 'icon() || null',
|
|
148
150
|
'[attr.disabled]': 'disabled() ? true : null',
|
|
149
151
|
'[attr.aria-busy]': 'loading() ? true : null',
|
|
150
|
-
},
|
|
151
|
-
template: `
|
|
152
|
+
}, template: `
|
|
152
153
|
@if (loading()) {
|
|
153
154
|
<ksd-spinner aria-hidden="true" />
|
|
154
155
|
}
|
|
155
156
|
<ng-content />
|
|
156
|
-
`,
|
|
157
|
-
}]
|
|
157
|
+
`, styles: [":host ::ng-deep>*{display:inline-flex}\n"] }]
|
|
158
158
|
}] });
|
|
159
159
|
|
|
160
160
|
const logIfDevMode = ({ component, message, }) => {
|
|
@@ -595,9 +595,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
595
595
|
}]
|
|
596
596
|
}] });
|
|
597
597
|
|
|
598
|
+
/* eslint-disable @angular-eslint/no-input-rename */
|
|
599
|
+
class Popover {
|
|
600
|
+
// use popoverId instead of id since id will be put on the angular element and not the popover-div
|
|
601
|
+
popoverId = input.required();
|
|
602
|
+
placement = input('top');
|
|
603
|
+
autoPlacement = input(true, { transform: booleanAttribute });
|
|
604
|
+
// for controlled component
|
|
605
|
+
open = input(undefined, { transform: booleanAttribute });
|
|
606
|
+
/*
|
|
607
|
+
the naming here is different from Designsystemet
|
|
608
|
+
since we need to use outputs for onOpen and onClose
|
|
609
|
+
*/
|
|
610
|
+
triggeredClose = output();
|
|
611
|
+
triggeredOpen = output();
|
|
612
|
+
internalOpen = signal(false);
|
|
613
|
+
controlledOpen = computed(() => this.open() ?? this.internalOpen());
|
|
614
|
+
variant = input('default');
|
|
615
|
+
dataSize = input('md', { alias: 'data-size' });
|
|
616
|
+
dataColor = input('neutral', {
|
|
617
|
+
alias: 'data-color',
|
|
618
|
+
});
|
|
619
|
+
popoverRef = viewChild('myPopover');
|
|
620
|
+
// enable controlled component
|
|
621
|
+
controlledComponent = effect((onCleanup) => {
|
|
622
|
+
const popover = this.popoverRef()?.nativeElement;
|
|
623
|
+
const handleClick = (event) => {
|
|
624
|
+
const el = event.target;
|
|
625
|
+
const isTrigger = el?.closest?.(`[popovertarget="${this.popoverId()}"]`);
|
|
626
|
+
const isOutside = !isTrigger && !popover?.contains(el);
|
|
627
|
+
if (isTrigger) {
|
|
628
|
+
event.preventDefault(); // Prevent native Popover API
|
|
629
|
+
this.internalOpen.update((open) => !open);
|
|
630
|
+
this.triggeredOpen.emit();
|
|
631
|
+
}
|
|
632
|
+
if (isOutside) {
|
|
633
|
+
this.internalOpen.set(false);
|
|
634
|
+
this.triggeredClose.emit();
|
|
635
|
+
}
|
|
636
|
+
};
|
|
637
|
+
const handleKeydown = (event) => {
|
|
638
|
+
if (event.key !== 'Escape' || !this.controlledOpen())
|
|
639
|
+
return;
|
|
640
|
+
event.preventDefault(); // Prevent closing fullscreen in Safari
|
|
641
|
+
this.internalOpen.set(false);
|
|
642
|
+
this.triggeredClose.emit();
|
|
643
|
+
};
|
|
644
|
+
popover?.togglePopover?.(this.controlledOpen());
|
|
645
|
+
document.addEventListener('click', handleClick, true); // Use capture to execute before React event API
|
|
646
|
+
document.addEventListener('keydown', handleKeydown);
|
|
647
|
+
onCleanup(() => {
|
|
648
|
+
document.removeEventListener('click', handleClick, true);
|
|
649
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
650
|
+
});
|
|
651
|
+
}, {});
|
|
652
|
+
positionPopover = effect(() => {
|
|
653
|
+
const popover = this.popoverRef()?.nativeElement;
|
|
654
|
+
const trigger = document.querySelector(`[popovertarget="${this.popoverId()}"]`);
|
|
655
|
+
const placement = this.placement();
|
|
656
|
+
if (popover && trigger && this.controlledOpen()) {
|
|
657
|
+
autoUpdate(trigger, popover, () => {
|
|
658
|
+
computePosition(trigger, popover, {
|
|
659
|
+
placement,
|
|
660
|
+
strategy: 'fixed',
|
|
661
|
+
middleware: [
|
|
662
|
+
offset((data) => {
|
|
663
|
+
// get pseudo element arrow size
|
|
664
|
+
const styles = getComputedStyle(data.elements.floating, '::before');
|
|
665
|
+
return parseFloat(styles.height);
|
|
666
|
+
}),
|
|
667
|
+
...(this.autoPlacement()
|
|
668
|
+
? [flip({ fallbackAxisSideDirection: 'start' }), shift()]
|
|
669
|
+
: []),
|
|
670
|
+
this.arrowPseudoElement,
|
|
671
|
+
],
|
|
672
|
+
}).then(({ x, y }) => {
|
|
673
|
+
popover.style.translate = `${x}px ${y}px`;
|
|
674
|
+
});
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
}, {});
|
|
678
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
679
|
+
arrowPseudoElement = {
|
|
680
|
+
name: 'ArrowPseudoElement',
|
|
681
|
+
fn(data) {
|
|
682
|
+
const { elements, rects, placement } = data;
|
|
683
|
+
let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
|
|
684
|
+
let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
|
|
685
|
+
if (rects.reference.width > rects.floating.width) {
|
|
686
|
+
arrowX = `${Math.round(rects.floating.width / 2)}px`;
|
|
687
|
+
}
|
|
688
|
+
if (rects.reference.height > rects.floating.height) {
|
|
689
|
+
arrowY = `${Math.round(rects.floating.height / 2)}px`;
|
|
690
|
+
}
|
|
691
|
+
switch (placement.split('-')[0]) {
|
|
692
|
+
case 'top':
|
|
693
|
+
arrowY = '100%';
|
|
694
|
+
break;
|
|
695
|
+
case 'right':
|
|
696
|
+
arrowX = '0';
|
|
697
|
+
break;
|
|
698
|
+
case 'bottom':
|
|
699
|
+
arrowY = '0';
|
|
700
|
+
break;
|
|
701
|
+
case 'left':
|
|
702
|
+
arrowX = '100%';
|
|
703
|
+
break;
|
|
704
|
+
}
|
|
705
|
+
elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom
|
|
706
|
+
elements.floating.style.setProperty('--ds-popover-arrow-x', arrowX);
|
|
707
|
+
elements.floating.style.setProperty('--ds-popover-arrow-y', arrowY);
|
|
708
|
+
return data;
|
|
709
|
+
},
|
|
710
|
+
};
|
|
711
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: Popover, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
712
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: Popover, isStandalone: true, selector: "ksd-popover", inputs: { popoverId: { classPropertyName: "popoverId", publicName: "popoverId", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, autoPlacement: { classPropertyName: "autoPlacement", publicName: "autoPlacement", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dataSize: { classPropertyName: "dataSize", publicName: "data-size", isSignal: true, isRequired: false, transformFunction: null }, dataColor: { classPropertyName: "dataColor", publicName: "data-color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { triggeredClose: "triggeredClose", triggeredOpen: "triggeredOpen" }, viewQueries: [{ propertyName: "popoverRef", first: true, predicate: ["myPopover"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
713
|
+
<div
|
|
714
|
+
#myPopover
|
|
715
|
+
popover="manual"
|
|
716
|
+
class="ds-popover"
|
|
717
|
+
data-testid="popover"
|
|
718
|
+
[id]="popoverId()"
|
|
719
|
+
[attr.data-size]="dataSize()"
|
|
720
|
+
[attr.data-color]="dataColor()"
|
|
721
|
+
[attr.data-variant]="variant()"
|
|
722
|
+
>
|
|
723
|
+
@if (controlledOpen()) {
|
|
724
|
+
<ng-content />
|
|
725
|
+
}
|
|
726
|
+
</div>
|
|
727
|
+
`, isInline: true });
|
|
728
|
+
}
|
|
729
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: Popover, decorators: [{
|
|
730
|
+
type: Component,
|
|
731
|
+
args: [{
|
|
732
|
+
selector: 'ksd-popover',
|
|
733
|
+
template: `
|
|
734
|
+
<div
|
|
735
|
+
#myPopover
|
|
736
|
+
popover="manual"
|
|
737
|
+
class="ds-popover"
|
|
738
|
+
data-testid="popover"
|
|
739
|
+
[id]="popoverId()"
|
|
740
|
+
[attr.data-size]="dataSize()"
|
|
741
|
+
[attr.data-color]="dataColor()"
|
|
742
|
+
[attr.data-variant]="variant()"
|
|
743
|
+
>
|
|
744
|
+
@if (controlledOpen()) {
|
|
745
|
+
<ng-content />
|
|
746
|
+
}
|
|
747
|
+
</div>
|
|
748
|
+
`,
|
|
749
|
+
imports: [],
|
|
750
|
+
}]
|
|
751
|
+
}] });
|
|
752
|
+
|
|
598
753
|
/**
|
|
599
754
|
* Generated bundle index. Do not edit.
|
|
600
755
|
*/
|
|
601
756
|
|
|
602
|
-
export { Button, CommonInputs, Field, FieldDescription, FieldError, Fieldset, FieldsetDescription, FieldsetLegend, Input, Label, Paragraph, ValidationMessage };
|
|
757
|
+
export { Button, CommonInputs, Field, FieldDescription, FieldError, Fieldset, FieldsetDescription, FieldsetLegend, Input, Label, Paragraph, Popover, ValidationMessage };
|
|
603
758
|
//# sourceMappingURL=ks-digital-designsystem-angular.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ks-digital-designsystem-angular.mjs","sources":["../../src/components/common-inputs.ts","../../src/components/spinner/spinner.ts","../../src/components/button/button.ts","../../src/utils/log-if-devmode.ts","../../src/components/field/field-state.ts","../../src/components/input/input.ts","../../src/components/label/label.ts","../../src/components/validation-message/validation-message.ts","../../src/components/field/field-counter.ts","../../src/components/field/field-observer.ts","../../src/components/field/field.ts","../../src/components/field/field-description.ts","../../src/components/field/field-error.ts","../../src/components/fieldset/fieldset.ts","../../src/components/fieldset/fieldset-description.ts","../../src/components/fieldset/fieldset-legend.ts","../../src/components/paragraph/paragraph.ts","../../src/ks-digital-designsystem-angular.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\n\n/**\n * We use input aliasing to bridge the gap between Angular's camelCase property naming convention and our HTML data attributes.\n * This approach allows us to use valid HTML data attributes as documented by Designsystemet while maintaining\n * proper TypeScript intellisense support.\n */\n\nimport { Directive, input } from '@angular/core'\nimport { Color } from './colors'\n\nexport type Size = 'sm' | 'md' | 'lg'\n\n@Directive()\nexport class CommonInputs {\n /**\n * Changes size for descendant Designsystemet components. Select from predefined sizes.\n * @attribute data-size\n */\n dataSize = input<Size>(undefined, { alias: 'data-size' })\n\n /**\n * Changes color for descendant Designsystemet components.\n * Select from predefined colors and colors defined using theme.designsystemet.no.\n * @attribute data-color\n */\n dataColor = input<Color>(undefined, { alias: 'data-color' })\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport { booleanAttribute, Component, input } from '@angular/core'\nimport { Size } from '../common-inputs'\n\n@Component({\n selector: 'ksd-spinner',\n styles: `\n :host {\n display: contents;\n }\n `,\n template: `\n <svg\n class=\"ds-spinner\"\n role=\"img\"\n viewBox=\"0 0 50 50\"\n [attr.data-size]=\"dataSize()\"\n [attr.data-color]=\"dataColor()\"\n >\n <circle\n class=\"ds-spinner__background\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"5\"\n />\n <circle\n class=\"ds-spinner__circle\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"5\"\n />\n </svg>\n `,\n})\nexport class Spinner {\n /**\n * Aria-label for the spinner\n */\n readonly ariaLabel = input<string>(undefined, { alias: 'aria-label' })\n\n /**\n * Aria-label for the spinner\n */\n readonly dataSize = input<Size>(undefined, { alias: 'data-size' })\n\n /**\n * Aria-label for the spinner\n */\n readonly dataColor = input<Size>(undefined, { alias: 'data-color' })\n\n /**\n * Aria-hidden for the spinner\n */\n readonly ariaHidden = input(undefined, {\n transform: booleanAttribute,\n alias: 'aria-hidden',\n })\n}\n","import { booleanAttribute, Component, input } from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\nimport { Spinner } from '../spinner/spinner'\n\n@Component({\n selector: 'button[ksd-button], a[ksd-button]',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n imports: [Spinner],\n host: {\n class: 'ds-button',\n type: 'button',\n '[attr.data-variant]': 'variant()',\n '[attr.disabled]': 'disabled() ? true : null',\n '[attr.aria-busy]': 'loading() ? true : null',\n },\n template: `\n @if (loading()) {\n <ksd-spinner aria-hidden=\"true\" />\n }\n <ng-content />\n `,\n})\nexport class Button {\n /**\n * Specify which variant to use\n * @default 'primary'\n */\n readonly variant = input<'primary' | 'secondary' | 'tertiary'>('primary')\n\n /**\n * Toggle loading state.\n * Pass an element if you want to display a custom loader.\n *\n * @default false\n */\n readonly loading = input(false, { transform: booleanAttribute })\n\n /**\n * Disables element\n */\n readonly disabled = input(false, { transform: booleanAttribute })\n}\n","import { isDevMode } from '@angular/core'\n\nexport const logIfDevMode = ({\n component,\n message,\n}: {\n component: string\n message: string\n}) => {\n if (isDevMode()) {\n console.log(`[${component}] ${message}`)\n }\n}\n","import { computed, Injectable, signal } from '@angular/core'\n\n@Injectable()\nexport class FieldState {\n /**\n * Whether the field counter has exceeded its limit\n */\n hasExceededCounter = signal(false)\n\n /**\n * Whether the field has errors projected from the outside\n */\n hasProjectedErrors = signal(false)\n\n /**\n * Whether the field has any errors associated with it\n */\n hasError = computed(\n () => this.hasExceededCounter() || this.hasProjectedErrors(),\n )\n}\n","import {\n booleanAttribute,\n Directive,\n inject,\n input,\n numberAttribute,\n signal,\n} from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\nimport { FieldState } from '../field/field-state'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'input[ksd-input], textarea[ksd-input], select[ksd-input]',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n host: {\n class: 'ds-input',\n '[attr.readonly]': 'readonly() ? true : null',\n '[attr.disabled]': 'disabled() ? true : null',\n '[attr.aria-invalid]':\n 'ariaInvalid() ? true : (fieldState?.hasError() ? true: null)',\n '(click)': 'onClick($event)',\n '(input)': 'value.set($event.target.value)',\n },\n})\nexport class Input {\n /**\n * The value of the input\n */\n value = signal('')\n\n /**\n * Whether the input is readonly\n */\n readonly readonly = input(false, { transform: booleanAttribute })\n\n /**\n * Disables element\n */\n readonly disabled = input(false, { transform: booleanAttribute })\n\n /**\n * Whether the element is invalid.\n */\n readonly ariaInvalid = input(false, {\n transform: booleanAttribute,\n alias: 'aria-invalid',\n })\n\n /**\n * Displays a character counter. pass a number to set a limit.\n */\n counter = input(0, { transform: numberAttribute })\n\n protected fieldState = inject(FieldState, { optional: true })\n\n onClick(event: Event) {\n if (this.readonly()) {\n event.preventDefault()\n }\n }\n}\n","import { Component } from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\n\n@Component({\n selector: 'ksd-label',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n template: `\n <!-- eslint-disable @angular-eslint/template/label-has-associated-control -- Fieldobserver handles binding the label to the input -->\n <label class=\"ds-label\"><ng-content /></label>\n `,\n})\nexport class Label {}\n","import { Directive } from '@angular/core'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[ksd-validation-message]',\n host: {\n class: 'ds-validation-message',\n 'data-field': 'validation',\n },\n})\nexport class ValidationMessage {}\n","import { Component, computed, effect, inject, input } from '@angular/core'\nimport { ValidationMessage } from '../validation-message'\nimport { FieldState } from './field-state'\n\n@Component({\n selector: 'ksd-field-counter',\n imports: [ValidationMessage],\n template: `\n <div data-field=\"description\" class=\"ds-sr-only\" aria-live=\"polite\">\n @if (hasExceededLimit()) {\n {{ excessCount() }} tegn for mye\n }\n </div>\n @if (hasExceededLimit()) {\n <p ksd-validation-message>{{ excessCount() }} tegn for mye</p>\n } @else {\n <p data-field=\"validation\">{{ remainder() }} tegn igjen</p>\n }\n `,\n\n /**\n * Apply custom styles here to get correct spacing because\n * the rendered host element from Angular is getting in the way\n */\n styles: `\n :host > * {\n margin-top: var(--dsc-field-content-spacing);\n }\n `,\n})\nexport class FieldCounter {\n /**\n * The maximum allowed characters.\n *\n **/\n readonly limit = input.required<number>()\n\n /**\n * How many characters have been typed.\n *\n **/\n readonly count = input.required<number>()\n protected readonly remainder = computed(() => this.limit() - this.count())\n protected readonly excessCount = computed(() => Math.abs(this.remainder()))\n protected readonly hasExceededLimit = computed(\n () => this.count() > this.limit(),\n )\n\n private fieldState = inject(FieldState)\n\n constructor() {\n effect(() => {\n this.fieldState.hasExceededCounter.set(this.hasExceededLimit())\n })\n }\n}\n","/**\n * Lifted from Designsystemet core repo.\n * Takes care of binding ids, labels and aria-describedby attributes\n *\n * @param fieldElement - The field element to observe\n * @returns A function to disconnect the observer\n * */\nexport function fieldObserver(fieldElement: HTMLElement | null) {\n if (!fieldElement) return\n\n const elements = new Map<Element, string | null>()\n const typeCounter = new Map<string, number>() // Track count for each data-field type\n const uuid = `:${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`\n let input: Element | null = null\n let describedby = ''\n\n const process = (mutations: Partial<MutationRecord>[]) => {\n const changed: Node[] = []\n const removed: Node[] = []\n\n // Merge MutationRecords\n for (const mutation of mutations) {\n if (mutation.attributeName) changed.push(mutation.target ?? fieldElement)\n // @ts-expect-error - addedNodes is not typed\n changed.push(...(mutation.addedNodes || []))\n removed.push(...(mutation.removedNodes || []))\n }\n\n // Register elements\n for (const el of changed) {\n if (!isElement(el)) continue\n\n if (isLabel(el)) elements.set(el, el.htmlFor)\n else if (el.hasAttribute('data-field')) elements.set(el, el.id)\n else if (isInputLike(el)) {\n input = el\n describedby = el.getAttribute('aria-describedby') || ''\n }\n }\n\n // Reset removed elements\n for (const el of removed) {\n if (!isElement(el)) continue\n\n if (input === el) input = null\n if (elements.has(el)) {\n setAttr(el, isLabel(el) ? 'for' : 'id', elements.get(el))\n elements.delete(el)\n }\n }\n\n // Connect elements\n const describedbyIds = [describedby] // Keep original aria-describedby\n const inputId = input?.id || uuid\n\n // Reset type counters since we reprocess all elements\n typeCounter.clear()\n\n for (const [el, value] of elements) {\n const descriptionType = el.getAttribute('data-field')\n let id: string\n\n if (descriptionType) {\n // Increment type counter for this type\n const count = (typeCounter.get(descriptionType) || 0) + 1\n typeCounter.set(descriptionType, count)\n id = `${inputId}:${descriptionType}:${count}`\n } else {\n id = inputId\n }\n\n if (!value) setAttr(el, isLabel(el) ? 'for' : 'id', id) // Ensure we have a value\n if (descriptionType === 'validation')\n describedbyIds.unshift(el.id) // Validations to the front\n else if (descriptionType) describedbyIds.push(el.id) // Other descriptions to the back\n }\n\n setAttr(input, 'id', inputId)\n setAttr(input, 'aria-describedby', describedbyIds.join(' ').trim())\n }\n\n const observer = createOptimizedMutationObserver(process)\n observer.observe(fieldElement, {\n attributeFilter: ['id', 'for', 'aria-describedby'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n\n process([{ addedNodes: fieldElement.querySelectorAll('*') }]) // Initial setup\n observer.takeRecords() // Clear initial setup queue\n return () => observer.disconnect()\n}\n\n// Utilities\nexport const isElement = (node: Node) => node instanceof Element\nexport const isLabel = (node: Node) => node instanceof HTMLLabelElement\nexport const isInputLike = (node: unknown): node is HTMLInputElement =>\n node instanceof HTMLElement &&\n 'validity' in node &&\n !(node instanceof HTMLButtonElement) // Matches input, textarea, select and form accosiated custom elements\n\nconst setAttr = (el: Element | null, name: string, value?: string | null) =>\n value ? el?.setAttribute(name, value) : el?.removeAttribute(name)\n\n// Speed up MutationObserver by debouncing, clearing internal queue after changes and only running when page is visible\nfunction createOptimizedMutationObserver(callback: MutationCallback) {\n const queue: MutationRecord[] = []\n const observer = new MutationObserver((mutations) => {\n if (!queue.length) requestAnimationFrame(process)\n queue.push(...mutations)\n })\n\n const process = () => {\n callback(queue, observer)\n queue.length = 0 // Reset queue\n observer.takeRecords() // Clear queue due to DOM changes in callback\n }\n\n return observer\n}\n","import {\n afterNextRender,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core'\nimport { logIfDevMode } from '../../utils/log-if-devmode'\nimport { CommonInputs } from '../common-inputs'\nimport { Input } from '../input/input'\nimport { Label } from '../label/label'\nimport { ValidationMessage } from '../validation-message'\nimport { FieldCounter } from './field-counter'\nimport { fieldObserver } from './field-observer'\nimport { FieldState } from './field-state'\n\n/**\n * Use the Field component to connect inputs and labels\n */\n@Component({\n selector: 'ksd-field',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n host: {\n class: 'ds-field',\n '[attr.dataPosition]': 'position()',\n },\n template: `\n <ng-content />\n @if (hasCounter()) {\n <ksd-field-counter [limit]=\"limit() ?? 0\" [count]=\"count() ?? 0\" />\n }\n `,\n imports: [FieldCounter],\n providers: [FieldState],\n})\nexport class Field {\n /**\n * Position of toggle inputs (radio, checkbox, switch) in field\n * @default start\n */\n position = input<'start' | 'end'>('start')\n\n private readonly fieldState = inject(FieldState)\n private readonly input = contentChild(Input)\n private readonly label = contentChild(Label)\n private readonly projectedErrors = contentChildren(ValidationMessage)\n\n private readonly el = inject(ElementRef)\n protected readonly count = computed(() => this.input()?.value().length)\n protected readonly limit = computed(() => this.input()?.counter())\n protected readonly hasCounter = computed(() => this.limit())\n\n constructor() {\n afterNextRender(() => {\n if (!this.label() || !this.input()) {\n logIfDevMode({\n component: 'Field',\n message:\n 'Missing required elements: ksd-label and ksd-input must be provided as children. Check imports and markup.',\n })\n }\n\n fieldObserver(this.el.nativeElement)\n })\n\n effect(() => {\n this.fieldState.hasProjectedErrors.set(this.projectedErrors().length > 0)\n })\n }\n}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: '[ksd-field-description]',\n host: {\n 'data-field': 'description',\n },\n template: `<ng-content />`,\n})\nexport class FieldDescription {}\n","import { Component } from '@angular/core'\nimport { ValidationMessage } from '../validation-message'\n\n@Component({\n selector: '[ksd-error]',\n template: `<ng-content />`,\n hostDirectives: [\n {\n directive: ValidationMessage,\n },\n ],\n})\nexport class FieldError {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'fieldset[ksd-fieldset]',\n host: {\n role: 'fieldset',\n class: 'ds-fieldset',\n },\n template: ` <ng-content /> `,\n})\nexport class Fieldset {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'p[ksd-fieldset-description]',\n template: `<ng-content />`,\n host: {},\n})\nexport class FieldsetDescription {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'legend[ksd-fieldset-legend]',\n host: {\n role: 'legend',\n class: 'ds-label',\n },\n template: ` <ng-content /> `,\n})\nexport class FieldsetLegend {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'p[ksd-paragraph]',\n template: `<ng-content />`,\n host: {\n class: 'ds-paragraph',\n },\n})\nexport class Paragraph {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.CommonInputs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ks-digital-designsystem-angular.mjs","sources":["../../src/components/common-inputs.ts","../../src/components/spinner/spinner.ts","../../src/components/button/button.ts","../../src/utils/log-if-devmode.ts","../../src/components/field/field-state.ts","../../src/components/input/input.ts","../../src/components/label/label.ts","../../src/components/validation-message/validation-message.ts","../../src/components/field/field-counter.ts","../../src/components/field/field-observer.ts","../../src/components/field/field.ts","../../src/components/field/field-description.ts","../../src/components/field/field-error.ts","../../src/components/fieldset/fieldset.ts","../../src/components/fieldset/fieldset-description.ts","../../src/components/fieldset/fieldset-legend.ts","../../src/components/paragraph/paragraph.ts","../../src/components/popover/popover.ts","../../src/ks-digital-designsystem-angular.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-input-rename */\n\n/**\n * We use input aliasing to bridge the gap between Angular's camelCase property naming convention and our HTML data attributes.\n * This approach allows us to use valid HTML data attributes as documented by Designsystemet while maintaining\n * proper TypeScript intellisense support.\n */\n\nimport { Directive, input } from '@angular/core'\nimport { Color } from './colors'\n\nexport type Size = 'sm' | 'md' | 'lg'\n\n@Directive()\nexport class CommonInputs {\n /**\n * Changes size for descendant Designsystemet components. Select from predefined sizes.\n * @attribute data-size\n */\n dataSize = input<Size>(undefined, { alias: 'data-size' })\n\n /**\n * Changes color for descendant Designsystemet components.\n * Select from predefined colors and colors defined using theme.designsystemet.no.\n * @attribute data-color\n */\n dataColor = input<Color>(undefined, { alias: 'data-color' })\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport { booleanAttribute, Component, input } from '@angular/core'\nimport { Size } from '../common-inputs'\n\n@Component({\n selector: 'ksd-spinner',\n styles: `\n :host {\n display: contents;\n }\n `,\n template: `\n <svg\n class=\"ds-spinner\"\n role=\"img\"\n viewBox=\"0 0 50 50\"\n [attr.data-size]=\"dataSize()\"\n [attr.data-color]=\"dataColor()\"\n >\n <circle\n class=\"ds-spinner__background\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"5\"\n />\n <circle\n class=\"ds-spinner__circle\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"5\"\n />\n </svg>\n `,\n})\nexport class Spinner {\n /**\n * Aria-label for the spinner\n */\n readonly ariaLabel = input<string>(undefined, { alias: 'aria-label' })\n\n /**\n * Aria-label for the spinner\n */\n readonly dataSize = input<Size>(undefined, { alias: 'data-size' })\n\n /**\n * Aria-label for the spinner\n */\n readonly dataColor = input<Size>(undefined, { alias: 'data-color' })\n\n /**\n * Aria-hidden for the spinner\n */\n readonly ariaHidden = input(undefined, {\n transform: booleanAttribute,\n alias: 'aria-hidden',\n })\n}\n","import { booleanAttribute, Component, input } from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\nimport { Spinner } from '../spinner/spinner'\n\n@Component({\n selector: 'button[ksd-button], a[ksd-button]',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n imports: [Spinner],\n host: {\n class: 'ds-button',\n type: 'button',\n '[attr.data-variant]': 'variant()',\n '[attr.data-icon]': 'icon() || null',\n '[attr.disabled]': 'disabled() ? true : null',\n '[attr.aria-busy]': 'loading() ? true : null',\n },\n styles: `\n /* Ensure transcluded icons are aligned properly */\n :host ::ng-deep > * {\n display: inline-flex;\n }\n `,\n\n template: `\n @if (loading()) {\n <ksd-spinner aria-hidden=\"true\" />\n }\n <ng-content />\n `,\n})\nexport class Button {\n /**\n * Specify which variant to use\n * @default 'primary'\n */\n readonly variant = input<'primary' | 'secondary' | 'tertiary'>('primary')\n\n /**\n * Toggle loading state.\n * Pass an element if you want to display a custom loader.\n *\n * @default false\n */\n readonly loading = input(false, { transform: booleanAttribute })\n\n /**\n * Disables element\n */\n readonly disabled = input(false, { transform: booleanAttribute })\n\n /**\n * If this is a button with only an icon\n */\n readonly icon = input(false, { transform: booleanAttribute })\n}\n","import { isDevMode } from '@angular/core'\n\nexport const logIfDevMode = ({\n component,\n message,\n}: {\n component: string\n message: string\n}) => {\n if (isDevMode()) {\n console.log(`[${component}] ${message}`)\n }\n}\n","import { computed, Injectable, signal } from '@angular/core'\n\n@Injectable()\nexport class FieldState {\n /**\n * Whether the field counter has exceeded its limit\n */\n hasExceededCounter = signal(false)\n\n /**\n * Whether the field has errors projected from the outside\n */\n hasProjectedErrors = signal(false)\n\n /**\n * Whether the field has any errors associated with it\n */\n hasError = computed(\n () => this.hasExceededCounter() || this.hasProjectedErrors(),\n )\n}\n","import {\n booleanAttribute,\n Directive,\n inject,\n input,\n numberAttribute,\n signal,\n} from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\nimport { FieldState } from '../field/field-state'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'input[ksd-input], textarea[ksd-input], select[ksd-input]',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n host: {\n class: 'ds-input',\n '[attr.readonly]': 'readonly() ? true : null',\n '[attr.disabled]': 'disabled() ? true : null',\n '[attr.aria-invalid]':\n 'ariaInvalid() ? true : (fieldState?.hasError() ? true: null)',\n '(click)': 'onClick($event)',\n '(input)': 'value.set($event.target.value)',\n },\n})\nexport class Input {\n /**\n * The value of the input\n */\n value = signal('')\n\n /**\n * Whether the input is readonly\n */\n readonly readonly = input(false, { transform: booleanAttribute })\n\n /**\n * Disables element\n */\n readonly disabled = input(false, { transform: booleanAttribute })\n\n /**\n * Whether the element is invalid.\n */\n readonly ariaInvalid = input(false, {\n transform: booleanAttribute,\n alias: 'aria-invalid',\n })\n\n /**\n * Displays a character counter. pass a number to set a limit.\n */\n counter = input(0, { transform: numberAttribute })\n\n protected fieldState = inject(FieldState, { optional: true })\n\n onClick(event: Event) {\n if (this.readonly()) {\n event.preventDefault()\n }\n }\n}\n","import { Component } from '@angular/core'\nimport { CommonInputs } from '../common-inputs'\n\n@Component({\n selector: 'ksd-label',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n template: `\n <!-- eslint-disable @angular-eslint/template/label-has-associated-control -- Fieldobserver handles binding the label to the input -->\n <label class=\"ds-label\"><ng-content /></label>\n `,\n})\nexport class Label {}\n","import { Directive } from '@angular/core'\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[ksd-validation-message]',\n host: {\n class: 'ds-validation-message',\n 'data-field': 'validation',\n },\n})\nexport class ValidationMessage {}\n","import { Component, computed, effect, inject, input } from '@angular/core'\nimport { ValidationMessage } from '../validation-message'\nimport { FieldState } from './field-state'\n\n@Component({\n selector: 'ksd-field-counter',\n imports: [ValidationMessage],\n template: `\n <div data-field=\"description\" class=\"ds-sr-only\" aria-live=\"polite\">\n @if (hasExceededLimit()) {\n {{ excessCount() }} tegn for mye\n }\n </div>\n @if (hasExceededLimit()) {\n <p ksd-validation-message>{{ excessCount() }} tegn for mye</p>\n } @else {\n <p data-field=\"validation\">{{ remainder() }} tegn igjen</p>\n }\n `,\n\n /**\n * Apply custom styles here to get correct spacing because\n * the rendered host element from Angular is getting in the way\n */\n styles: `\n :host > * {\n margin-top: var(--dsc-field-content-spacing);\n }\n `,\n})\nexport class FieldCounter {\n /**\n * The maximum allowed characters.\n *\n **/\n readonly limit = input.required<number>()\n\n /**\n * How many characters have been typed.\n *\n **/\n readonly count = input.required<number>()\n protected readonly remainder = computed(() => this.limit() - this.count())\n protected readonly excessCount = computed(() => Math.abs(this.remainder()))\n protected readonly hasExceededLimit = computed(\n () => this.count() > this.limit(),\n )\n\n private fieldState = inject(FieldState)\n\n constructor() {\n effect(() => {\n this.fieldState.hasExceededCounter.set(this.hasExceededLimit())\n })\n }\n}\n","/**\n * Lifted from Designsystemet core repo.\n * Takes care of binding ids, labels and aria-describedby attributes\n *\n * @param fieldElement - The field element to observe\n * @returns A function to disconnect the observer\n * */\nexport function fieldObserver(fieldElement: HTMLElement | null) {\n if (!fieldElement) return\n\n const elements = new Map<Element, string | null>()\n const typeCounter = new Map<string, number>() // Track count for each data-field type\n const uuid = `:${Date.now().toString(36)}${Math.random().toString(36).slice(2, 5)}`\n let input: Element | null = null\n let describedby = ''\n\n const process = (mutations: Partial<MutationRecord>[]) => {\n const changed: Node[] = []\n const removed: Node[] = []\n\n // Merge MutationRecords\n for (const mutation of mutations) {\n if (mutation.attributeName) changed.push(mutation.target ?? fieldElement)\n // @ts-expect-error - addedNodes is not typed\n changed.push(...(mutation.addedNodes || []))\n removed.push(...(mutation.removedNodes || []))\n }\n\n // Register elements\n for (const el of changed) {\n if (!isElement(el)) continue\n\n if (isLabel(el)) elements.set(el, el.htmlFor)\n else if (el.hasAttribute('data-field')) elements.set(el, el.id)\n else if (isInputLike(el)) {\n input = el\n describedby = el.getAttribute('aria-describedby') || ''\n }\n }\n\n // Reset removed elements\n for (const el of removed) {\n if (!isElement(el)) continue\n\n if (input === el) input = null\n if (elements.has(el)) {\n setAttr(el, isLabel(el) ? 'for' : 'id', elements.get(el))\n elements.delete(el)\n }\n }\n\n // Connect elements\n const describedbyIds = [describedby] // Keep original aria-describedby\n const inputId = input?.id || uuid\n\n // Reset type counters since we reprocess all elements\n typeCounter.clear()\n\n for (const [el, value] of elements) {\n const descriptionType = el.getAttribute('data-field')\n let id: string\n\n if (descriptionType) {\n // Increment type counter for this type\n const count = (typeCounter.get(descriptionType) || 0) + 1\n typeCounter.set(descriptionType, count)\n id = `${inputId}:${descriptionType}:${count}`\n } else {\n id = inputId\n }\n\n if (!value) setAttr(el, isLabel(el) ? 'for' : 'id', id) // Ensure we have a value\n if (descriptionType === 'validation')\n describedbyIds.unshift(el.id) // Validations to the front\n else if (descriptionType) describedbyIds.push(el.id) // Other descriptions to the back\n }\n\n setAttr(input, 'id', inputId)\n setAttr(input, 'aria-describedby', describedbyIds.join(' ').trim())\n }\n\n const observer = createOptimizedMutationObserver(process)\n observer.observe(fieldElement, {\n attributeFilter: ['id', 'for', 'aria-describedby'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n\n process([{ addedNodes: fieldElement.querySelectorAll('*') }]) // Initial setup\n observer.takeRecords() // Clear initial setup queue\n return () => observer.disconnect()\n}\n\n// Utilities\nexport const isElement = (node: Node) => node instanceof Element\nexport const isLabel = (node: Node) => node instanceof HTMLLabelElement\nexport const isInputLike = (node: unknown): node is HTMLInputElement =>\n node instanceof HTMLElement &&\n 'validity' in node &&\n !(node instanceof HTMLButtonElement) // Matches input, textarea, select and form accosiated custom elements\n\nconst setAttr = (el: Element | null, name: string, value?: string | null) =>\n value ? el?.setAttribute(name, value) : el?.removeAttribute(name)\n\n// Speed up MutationObserver by debouncing, clearing internal queue after changes and only running when page is visible\nfunction createOptimizedMutationObserver(callback: MutationCallback) {\n const queue: MutationRecord[] = []\n const observer = new MutationObserver((mutations) => {\n if (!queue.length) requestAnimationFrame(process)\n queue.push(...mutations)\n })\n\n const process = () => {\n callback(queue, observer)\n queue.length = 0 // Reset queue\n observer.takeRecords() // Clear queue due to DOM changes in callback\n }\n\n return observer\n}\n","import {\n afterNextRender,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core'\nimport { logIfDevMode } from '../../utils/log-if-devmode'\nimport { CommonInputs } from '../common-inputs'\nimport { Input } from '../input/input'\nimport { Label } from '../label/label'\nimport { ValidationMessage } from '../validation-message'\nimport { FieldCounter } from './field-counter'\nimport { fieldObserver } from './field-observer'\nimport { FieldState } from './field-state'\n\n/**\n * Use the Field component to connect inputs and labels\n */\n@Component({\n selector: 'ksd-field',\n hostDirectives: [\n {\n directive: CommonInputs,\n inputs: ['data-size', 'data-color'],\n },\n ],\n host: {\n class: 'ds-field',\n '[attr.dataPosition]': 'position()',\n },\n template: `\n <ng-content />\n @if (hasCounter()) {\n <ksd-field-counter [limit]=\"limit() ?? 0\" [count]=\"count() ?? 0\" />\n }\n `,\n imports: [FieldCounter],\n providers: [FieldState],\n})\nexport class Field {\n /**\n * Position of toggle inputs (radio, checkbox, switch) in field\n * @default start\n */\n position = input<'start' | 'end'>('start')\n\n private readonly fieldState = inject(FieldState)\n private readonly input = contentChild(Input)\n private readonly label = contentChild(Label)\n private readonly projectedErrors = contentChildren(ValidationMessage)\n\n private readonly el = inject(ElementRef)\n protected readonly count = computed(() => this.input()?.value().length)\n protected readonly limit = computed(() => this.input()?.counter())\n protected readonly hasCounter = computed(() => this.limit())\n\n constructor() {\n afterNextRender(() => {\n if (!this.label() || !this.input()) {\n logIfDevMode({\n component: 'Field',\n message:\n 'Missing required elements: ksd-label and ksd-input must be provided as children. Check imports and markup.',\n })\n }\n\n fieldObserver(this.el.nativeElement)\n })\n\n effect(() => {\n this.fieldState.hasProjectedErrors.set(this.projectedErrors().length > 0)\n })\n }\n}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: '[ksd-field-description]',\n host: {\n 'data-field': 'description',\n },\n template: `<ng-content />`,\n})\nexport class FieldDescription {}\n","import { Component } from '@angular/core'\nimport { ValidationMessage } from '../validation-message'\n\n@Component({\n selector: '[ksd-error]',\n template: `<ng-content />`,\n hostDirectives: [\n {\n directive: ValidationMessage,\n },\n ],\n})\nexport class FieldError {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'fieldset[ksd-fieldset]',\n host: {\n role: 'fieldset',\n class: 'ds-fieldset',\n },\n template: ` <ng-content /> `,\n})\nexport class Fieldset {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'p[ksd-fieldset-description]',\n template: `<ng-content />`,\n host: {},\n})\nexport class FieldsetDescription {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'legend[ksd-fieldset-legend]',\n host: {\n role: 'legend',\n class: 'ds-label',\n },\n template: ` <ng-content /> `,\n})\nexport class FieldsetLegend {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'p[ksd-paragraph]',\n template: `<ng-content />`,\n host: {\n class: 'ds-paragraph',\n },\n})\nexport class Paragraph {}\n","/* eslint-disable @angular-eslint/no-input-rename */\n\nimport {\n booleanAttribute,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core'\nimport {\n autoUpdate,\n computePosition,\n flip,\n MiddlewareState,\n offset,\n Placement,\n shift,\n} from '@floating-ui/dom'\nimport { Color, SeverityColors } from '../colors'\nimport { Size } from '../common-inputs'\n\n@Component({\n selector: 'ksd-popover',\n\n template: `\n <div\n #myPopover\n popover=\"manual\"\n class=\"ds-popover\"\n data-testid=\"popover\"\n [id]=\"popoverId()\"\n [attr.data-size]=\"dataSize()\"\n [attr.data-color]=\"dataColor()\"\n [attr.data-variant]=\"variant()\"\n >\n @if (controlledOpen()) {\n <ng-content />\n }\n </div>\n `,\n imports: [],\n})\nexport class Popover {\n // use popoverId instead of id since id will be put on the angular element and not the popover-div\n readonly popoverId = input.required<string>()\n readonly placement = input<Placement>('top')\n readonly autoPlacement = input(true, { transform: booleanAttribute })\n\n // for controlled component\n readonly open = input(undefined, { transform: booleanAttribute })\n /*\n the naming here is different from Designsystemet\n since we need to use outputs for onOpen and onClose\n */\n readonly triggeredClose = output()\n readonly triggeredOpen = output()\n\n protected readonly internalOpen = signal(false)\n protected readonly controlledOpen = computed(\n () => this.open() ?? this.internalOpen(),\n )\n\n readonly variant = input<'tinted' | 'default'>('default')\n readonly dataSize = input<Size>('md', { alias: 'data-size' })\n readonly dataColor = input<Color | SeverityColors>('neutral', {\n alias: 'data-color',\n })\n\n private popoverRef = viewChild<ElementRef>('myPopover')\n\n // enable controlled component\n controlledComponent = effect((onCleanup) => {\n const popover = this.popoverRef()?.nativeElement\n const handleClick = (event: MouseEvent) => {\n const el = event.target as Element | null\n const isTrigger = el?.closest?.(`[popovertarget=\"${this.popoverId()}\"]`)\n const isOutside = !isTrigger && !popover?.contains(el as Node)\n\n if (isTrigger) {\n event.preventDefault() // Prevent native Popover API\n this.internalOpen.update((open) => !open)\n this.triggeredOpen.emit()\n }\n if (isOutside) {\n this.internalOpen.set(false)\n this.triggeredClose.emit()\n }\n }\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this.controlledOpen()) return\n event.preventDefault() // Prevent closing fullscreen in Safari\n this.internalOpen.set(false)\n this.triggeredClose.emit()\n }\n\n popover?.togglePopover?.(this.controlledOpen())\n document.addEventListener('click', handleClick, true) // Use capture to execute before React event API\n document.addEventListener('keydown', handleKeydown)\n\n onCleanup(() => {\n document.removeEventListener('click', handleClick, true)\n document.removeEventListener('keydown', handleKeydown)\n })\n }, {})\n\n positionPopover = effect(() => {\n const popover = this.popoverRef()?.nativeElement\n\n const trigger = document.querySelector(\n `[popovertarget=\"${this.popoverId()}\"]`,\n )\n const placement = this.placement()\n\n if (popover && trigger && this.controlledOpen()) {\n autoUpdate(trigger, popover, () => {\n computePosition(trigger, popover, {\n placement,\n strategy: 'fixed',\n middleware: [\n offset((data) => {\n // get pseudo element arrow size\n const styles = getComputedStyle(\n data.elements.floating,\n '::before',\n )\n return parseFloat(styles.height)\n }),\n ...(this.autoPlacement()\n ? [flip({ fallbackAxisSideDirection: 'start' }), shift()]\n : []),\n this.arrowPseudoElement,\n ],\n }).then(({ x, y }) => {\n popover.style.translate = `${x}px ${y}px`\n })\n })\n }\n }, {})\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrowPseudoElement: any = {\n name: 'ArrowPseudoElement',\n fn(data: MiddlewareState) {\n const { elements, rects, placement } = data\n\n let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`\n let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`\n\n if (rects.reference.width > rects.floating.width) {\n arrowX = `${Math.round(rects.floating.width / 2)}px`\n }\n\n if (rects.reference.height > rects.floating.height) {\n arrowY = `${Math.round(rects.floating.height / 2)}px`\n }\n\n switch (placement.split('-')[0]) {\n case 'top':\n arrowY = '100%'\n break\n case 'right':\n arrowX = '0'\n break\n case 'bottom':\n arrowY = '0'\n break\n case 'left':\n arrowX = '100%'\n break\n }\n\n elements.floating.setAttribute(\n 'data-placement',\n placement.split('-')[0] as string,\n ) // We only need top/left/right/bottom\n elements.floating.style.setProperty('--ds-popover-arrow-x', arrowX)\n elements.floating.style.setProperty('--ds-popover-arrow-y', arrowY)\n return data\n },\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.CommonInputs"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Placement } from '@floating-ui/dom';
|
|
2
3
|
|
|
3
4
|
type Size = 'sm' | 'md' | 'lg';
|
|
4
5
|
declare class CommonInputs {
|
|
@@ -6,15 +7,15 @@ declare class CommonInputs {
|
|
|
6
7
|
* Changes size for descendant Designsystemet components. Select from predefined sizes.
|
|
7
8
|
* @attribute data-size
|
|
8
9
|
*/
|
|
9
|
-
dataSize:
|
|
10
|
+
dataSize: _angular_core.InputSignal<Size>;
|
|
10
11
|
/**
|
|
11
12
|
* Changes color for descendant Designsystemet components.
|
|
12
13
|
* Select from predefined colors and colors defined using theme.designsystemet.no.
|
|
13
14
|
* @attribute data-color
|
|
14
15
|
*/
|
|
15
|
-
dataColor:
|
|
16
|
-
static ɵfac:
|
|
17
|
-
static ɵdir:
|
|
16
|
+
dataColor: _angular_core.InputSignal<string>;
|
|
17
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommonInputs, never>;
|
|
18
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommonInputs, never, never, { "dataSize": { "alias": "data-size"; "required": false; "isSignal": true; }; "dataColor": { "alias": "data-color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
declare class Button {
|
|
@@ -22,20 +23,24 @@ declare class Button {
|
|
|
22
23
|
* Specify which variant to use
|
|
23
24
|
* @default 'primary'
|
|
24
25
|
*/
|
|
25
|
-
readonly variant:
|
|
26
|
+
readonly variant: _angular_core.InputSignal<"primary" | "secondary" | "tertiary">;
|
|
26
27
|
/**
|
|
27
28
|
* Toggle loading state.
|
|
28
29
|
* Pass an element if you want to display a custom loader.
|
|
29
30
|
*
|
|
30
31
|
* @default false
|
|
31
32
|
*/
|
|
32
|
-
readonly loading:
|
|
33
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
33
34
|
/**
|
|
34
35
|
* Disables element
|
|
35
36
|
*/
|
|
36
|
-
readonly disabled:
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
38
|
+
/**
|
|
39
|
+
* If this is a button with only an icon
|
|
40
|
+
*/
|
|
41
|
+
readonly icon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
42
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
|
|
43
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "button[ksd-button], a[ksd-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof CommonInputs; inputs: { "data-size": "data-size"; "data-color": "data-color"; }; outputs: {}; }]>;
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
/**
|
|
@@ -46,103 +51,123 @@ declare class Field {
|
|
|
46
51
|
* Position of toggle inputs (radio, checkbox, switch) in field
|
|
47
52
|
* @default start
|
|
48
53
|
*/
|
|
49
|
-
position:
|
|
54
|
+
position: _angular_core.InputSignal<"start" | "end">;
|
|
50
55
|
private readonly fieldState;
|
|
51
56
|
private readonly input;
|
|
52
57
|
private readonly label;
|
|
53
58
|
private readonly projectedErrors;
|
|
54
59
|
private readonly el;
|
|
55
|
-
protected readonly count:
|
|
56
|
-
protected readonly limit:
|
|
57
|
-
protected readonly hasCounter:
|
|
60
|
+
protected readonly count: _angular_core.Signal<number>;
|
|
61
|
+
protected readonly limit: _angular_core.Signal<number>;
|
|
62
|
+
protected readonly hasCounter: _angular_core.Signal<number>;
|
|
58
63
|
constructor();
|
|
59
|
-
static ɵfac:
|
|
60
|
-
static ɵcmp:
|
|
64
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Field, never>;
|
|
65
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Field, "ksd-field", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, ["input", "label", "projectedErrors"], ["*"], true, [{ directive: typeof CommonInputs; inputs: { "data-size": "data-size"; "data-color": "data-color"; }; outputs: {}; }]>;
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
declare class FieldDescription {
|
|
64
|
-
static ɵfac:
|
|
65
|
-
static ɵcmp:
|
|
69
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldDescription, never>;
|
|
70
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldDescription, "[ksd-field-description]", never, {}, {}, never, ["*"], true, never>;
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
declare class ValidationMessage {
|
|
69
|
-
static ɵfac:
|
|
70
|
-
static ɵdir:
|
|
74
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ValidationMessage, never>;
|
|
75
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ValidationMessage, "[ksd-validation-message]", never, {}, {}, never, never, true, never>;
|
|
71
76
|
}
|
|
72
77
|
|
|
73
78
|
declare class FieldError {
|
|
74
|
-
static ɵfac:
|
|
75
|
-
static ɵcmp:
|
|
79
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldError, never>;
|
|
80
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldError, "[ksd-error]", never, {}, {}, never, ["*"], true, [{ directive: typeof ValidationMessage; inputs: {}; outputs: {}; }]>;
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
declare class Fieldset {
|
|
79
|
-
static ɵfac:
|
|
80
|
-
static ɵcmp:
|
|
84
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Fieldset, never>;
|
|
85
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Fieldset, "fieldset[ksd-fieldset]", never, {}, {}, never, ["*"], true, never>;
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
declare class FieldsetDescription {
|
|
84
|
-
static ɵfac:
|
|
85
|
-
static ɵcmp:
|
|
89
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldsetDescription, never>;
|
|
90
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldsetDescription, "p[ksd-fieldset-description]", never, {}, {}, never, ["*"], true, never>;
|
|
86
91
|
}
|
|
87
92
|
|
|
88
93
|
declare class FieldsetLegend {
|
|
89
|
-
static ɵfac:
|
|
90
|
-
static ɵcmp:
|
|
94
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldsetLegend, never>;
|
|
95
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldsetLegend, "legend[ksd-fieldset-legend]", never, {}, {}, never, ["*"], true, never>;
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
declare class FieldState {
|
|
94
99
|
/**
|
|
95
100
|
* Whether the field counter has exceeded its limit
|
|
96
101
|
*/
|
|
97
|
-
hasExceededCounter:
|
|
102
|
+
hasExceededCounter: _angular_core.WritableSignal<boolean>;
|
|
98
103
|
/**
|
|
99
104
|
* Whether the field has errors projected from the outside
|
|
100
105
|
*/
|
|
101
|
-
hasProjectedErrors:
|
|
106
|
+
hasProjectedErrors: _angular_core.WritableSignal<boolean>;
|
|
102
107
|
/**
|
|
103
108
|
* Whether the field has any errors associated with it
|
|
104
109
|
*/
|
|
105
|
-
hasError:
|
|
106
|
-
static ɵfac:
|
|
107
|
-
static ɵprov:
|
|
110
|
+
hasError: _angular_core.Signal<boolean>;
|
|
111
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldState, never>;
|
|
112
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FieldState>;
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
declare class Input {
|
|
111
116
|
/**
|
|
112
117
|
* The value of the input
|
|
113
118
|
*/
|
|
114
|
-
value:
|
|
119
|
+
value: _angular_core.WritableSignal<string>;
|
|
115
120
|
/**
|
|
116
121
|
* Whether the input is readonly
|
|
117
122
|
*/
|
|
118
|
-
readonly readonly:
|
|
123
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
119
124
|
/**
|
|
120
125
|
* Disables element
|
|
121
126
|
*/
|
|
122
|
-
readonly disabled:
|
|
127
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
123
128
|
/**
|
|
124
129
|
* Whether the element is invalid.
|
|
125
130
|
*/
|
|
126
|
-
readonly ariaInvalid:
|
|
131
|
+
readonly ariaInvalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
127
132
|
/**
|
|
128
133
|
* Displays a character counter. pass a number to set a limit.
|
|
129
134
|
*/
|
|
130
|
-
counter:
|
|
135
|
+
counter: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
131
136
|
protected fieldState: FieldState;
|
|
132
137
|
onClick(event: Event): void;
|
|
133
|
-
static ɵfac:
|
|
134
|
-
static ɵdir:
|
|
138
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Input, never>;
|
|
139
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Input, "input[ksd-input], textarea[ksd-input], select[ksd-input]", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "aria-invalid"; "required": false; "isSignal": true; }; "counter": { "alias": "counter"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof CommonInputs; inputs: { "data-size": "data-size"; "data-color": "data-color"; }; outputs: {}; }]>;
|
|
135
140
|
}
|
|
136
141
|
|
|
137
142
|
declare class Label {
|
|
138
|
-
static ɵfac:
|
|
139
|
-
static ɵcmp:
|
|
143
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Label, never>;
|
|
144
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Label, "ksd-label", never, {}, {}, never, ["*"], true, [{ directive: typeof CommonInputs; inputs: { "data-size": "data-size"; "data-color": "data-color"; }; outputs: {}; }]>;
|
|
140
145
|
}
|
|
141
146
|
|
|
142
147
|
declare class Paragraph {
|
|
143
|
-
static ɵfac:
|
|
144
|
-
static ɵcmp:
|
|
148
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Paragraph, never>;
|
|
149
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Paragraph, "p[ksd-paragraph]", never, {}, {}, never, ["*"], true, never>;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
declare class Popover {
|
|
153
|
+
readonly popoverId: _angular_core.InputSignal<string>;
|
|
154
|
+
readonly placement: _angular_core.InputSignal<Placement>;
|
|
155
|
+
readonly autoPlacement: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
156
|
+
readonly open: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
157
|
+
readonly triggeredClose: _angular_core.OutputEmitterRef<void>;
|
|
158
|
+
readonly triggeredOpen: _angular_core.OutputEmitterRef<void>;
|
|
159
|
+
protected readonly internalOpen: _angular_core.WritableSignal<boolean>;
|
|
160
|
+
protected readonly controlledOpen: _angular_core.Signal<boolean>;
|
|
161
|
+
readonly variant: _angular_core.InputSignal<"tinted" | "default">;
|
|
162
|
+
readonly dataSize: _angular_core.InputSignal<Size>;
|
|
163
|
+
readonly dataColor: _angular_core.InputSignal<string>;
|
|
164
|
+
private popoverRef;
|
|
165
|
+
controlledComponent: _angular_core.EffectRef;
|
|
166
|
+
positionPopover: _angular_core.EffectRef;
|
|
167
|
+
arrowPseudoElement: any;
|
|
168
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Popover, never>;
|
|
169
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Popover, "ksd-popover", never, { "popoverId": { "alias": "popoverId"; "required": true; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "autoPlacement": { "alias": "autoPlacement"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "dataSize": { "alias": "data-size"; "required": false; "isSignal": true; }; "dataColor": { "alias": "data-color"; "required": false; "isSignal": true; }; }, { "triggeredClose": "triggeredClose"; "triggeredOpen": "triggeredOpen"; }, never, ["*"], true, never>;
|
|
145
170
|
}
|
|
146
171
|
|
|
147
|
-
export { Button, CommonInputs, Field, FieldDescription, FieldError, Fieldset, FieldsetDescription, FieldsetLegend, Input, Label, Paragraph, ValidationMessage };
|
|
172
|
+
export { Button, CommonInputs, Field, FieldDescription, FieldError, Fieldset, FieldsetDescription, FieldsetLegend, Input, Label, Paragraph, Popover, ValidationMessage };
|
|
148
173
|
export type { Size };
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "https://github.com/ks-no/designsystem.git",
|
|
6
6
|
"directory": "packages/angular"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.0.1-alpha.
|
|
8
|
+
"version": "0.0.1-alpha.13",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"private": false,
|
|
11
11
|
"publishConfig": {
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
],
|
|
18
18
|
"main": "./dist/fesm2022/ks-digital-designsystem-angular.mjs",
|
|
19
19
|
"types": "./dist/index.d.ts",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@floating-ui/dom": "^1.7.3"
|
|
22
|
+
},
|
|
20
23
|
"peerDependencies": {
|
|
21
24
|
"@angular/common": ">=20.0.0",
|
|
22
25
|
"@angular/core": ">=20.0.0",
|
|
@@ -24,7 +27,7 @@
|
|
|
24
27
|
"@angular/platform-server": ">=20.0.0"
|
|
25
28
|
},
|
|
26
29
|
"devDependencies": {
|
|
27
|
-
"@analogjs/storybook-angular": "^1.
|
|
30
|
+
"@analogjs/storybook-angular": "^1.19.4",
|
|
28
31
|
"@analogjs/vite-plugin-angular": "~1.17.1",
|
|
29
32
|
"@analogjs/vitest-angular": "~1.17.1",
|
|
30
33
|
"@angular-eslint/builder": "^20.0.0",
|