@helsevestikt/hviktor-angular 0.0.15 → 0.0.16
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/package.json
CHANGED
|
@@ -970,6 +970,92 @@ declare class HviList {
|
|
|
970
970
|
static ɵdir: i0.ɵɵDirectiveDeclaration<HviList, "ol[hviList], ul[hviList]", never, {}, {}, never, never, true, never>;
|
|
971
971
|
}
|
|
972
972
|
|
|
973
|
+
/** Type for hvert element i pagineringslisten */
|
|
974
|
+
type PaginationItem = {
|
|
975
|
+
type: 'page';
|
|
976
|
+
page: number;
|
|
977
|
+
} | {
|
|
978
|
+
type: 'ellipsis';
|
|
979
|
+
} | {
|
|
980
|
+
type: 'previous';
|
|
981
|
+
} | {
|
|
982
|
+
type: 'next';
|
|
983
|
+
};
|
|
984
|
+
/** Event som emitteres ved sideendring */
|
|
985
|
+
interface PageChangeEvent {
|
|
986
|
+
page: number;
|
|
987
|
+
previousPage: number;
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* @summary
|
|
991
|
+
* Pagination er en liste med knapper som brukes for å navigere mellom
|
|
992
|
+
* ulike sider med innhold, for eksempel søkeresultater eller tabeller.
|
|
993
|
+
*
|
|
994
|
+
* @example
|
|
995
|
+
* ```html
|
|
996
|
+
* <hvi-pagination
|
|
997
|
+
* [totalItems]="100"
|
|
998
|
+
* [pageSize]="10"
|
|
999
|
+
* [(currentPage)]="currentPage"
|
|
1000
|
+
* />
|
|
1001
|
+
* ```
|
|
1002
|
+
*
|
|
1003
|
+
* @see {@link https://designsystemet.no/no/components/docs/pagination/code}
|
|
1004
|
+
*/
|
|
1005
|
+
declare class HviPagination {
|
|
1006
|
+
/** Totalt antall elementer som pagineres */
|
|
1007
|
+
set totalItems(value: number);
|
|
1008
|
+
/** Antall elementer per side */
|
|
1009
|
+
set pageSize(value: number);
|
|
1010
|
+
/** Nåværende side (1-indeksert) */
|
|
1011
|
+
set currentPage(value: number);
|
|
1012
|
+
/** Antall sider som skal vises rundt nåværende side */
|
|
1013
|
+
siblingCount: number;
|
|
1014
|
+
/** Vis alltid første og siste side */
|
|
1015
|
+
showEdges: boolean;
|
|
1016
|
+
/** Vis "Forrige" og "Neste" tekst på knappene */
|
|
1017
|
+
showPreviousNextLabels: boolean;
|
|
1018
|
+
/** Aria-label for hele navigasjonen */
|
|
1019
|
+
ariaLabel: string;
|
|
1020
|
+
/** Tekst for forrige-knappen */
|
|
1021
|
+
previousLabel: string;
|
|
1022
|
+
/** Tekst for neste-knappen */
|
|
1023
|
+
nextLabel: string;
|
|
1024
|
+
/** Event som emitteres når siden endres */
|
|
1025
|
+
currentPageChange: EventEmitter<number>;
|
|
1026
|
+
/** Event som emitteres med mer detaljer om sideendring */
|
|
1027
|
+
pageChange: EventEmitter<PageChangeEvent>;
|
|
1028
|
+
readonly _totalItems: i0.WritableSignal<number>;
|
|
1029
|
+
readonly _pageSize: i0.WritableSignal<number>;
|
|
1030
|
+
readonly _currentPage: i0.WritableSignal<number>;
|
|
1031
|
+
/** Beregnet totalt antall sider */
|
|
1032
|
+
readonly totalPages: i0.Signal<number>;
|
|
1033
|
+
/** Er vi på første side? */
|
|
1034
|
+
readonly isFirstPage: i0.Signal<boolean>;
|
|
1035
|
+
/** Er vi på siste side? */
|
|
1036
|
+
readonly isLastPage: i0.Signal<boolean>;
|
|
1037
|
+
/** Beregner hvilke elementer som skal vises i pagineringen */
|
|
1038
|
+
readonly paginationItems: i0.Signal<PaginationItem[]>;
|
|
1039
|
+
/** Gå til en spesifikk side */
|
|
1040
|
+
goToPage(page: number): void;
|
|
1041
|
+
/** Gå til forrige side */
|
|
1042
|
+
goToPrevious(): void;
|
|
1043
|
+
/** Gå til neste side */
|
|
1044
|
+
goToNext(): void;
|
|
1045
|
+
/** Gå til første side */
|
|
1046
|
+
goToFirst(): void;
|
|
1047
|
+
/** Gå til siste side */
|
|
1048
|
+
goToLast(): void;
|
|
1049
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HviPagination, never>;
|
|
1050
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HviPagination, "hvi-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; }; "pageSize": { "alias": "pageSize"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "siblingCount": { "alias": "siblingCount"; "required": false; }; "showEdges": { "alias": "showEdges"; "required": false; }; "showPreviousNextLabels": { "alias": "showPreviousNextLabels"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "previousLabel": { "alias": "previousLabel"; "required": false; }; "nextLabel": { "alias": "nextLabel"; "required": false; }; }, { "currentPageChange": "currentPageChange"; "pageChange": "pageChange"; }, never, never, true, never>;
|
|
1051
|
+
static ngAcceptInputType_totalItems: unknown;
|
|
1052
|
+
static ngAcceptInputType_pageSize: unknown;
|
|
1053
|
+
static ngAcceptInputType_currentPage: unknown;
|
|
1054
|
+
static ngAcceptInputType_siblingCount: unknown;
|
|
1055
|
+
static ngAcceptInputType_showEdges: unknown;
|
|
1056
|
+
static ngAcceptInputType_showPreviousNextLabels: unknown;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
973
1059
|
/**
|
|
974
1060
|
* Paragraph is used for continuous text and is typically applied in articles, components, help text, and similar content.
|
|
975
1061
|
*
|
|
@@ -1216,6 +1302,222 @@ declare class HviSpinner {
|
|
|
1216
1302
|
static ɵcmp: i0.ɵɵComponentDeclaration<HviSpinner, "hvi-spinner", never, { "label": { "alias": "label"; "required": true; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
1217
1303
|
}
|
|
1218
1304
|
|
|
1305
|
+
/** Sorteringsretninger for tabell-kolonner */
|
|
1306
|
+
type SortDirection = 'none' | 'ascending' | 'descending';
|
|
1307
|
+
/** Event som emitteres ved sorteringsendring */
|
|
1308
|
+
interface TableSortEvent {
|
|
1309
|
+
field: string;
|
|
1310
|
+
direction: SortDirection;
|
|
1311
|
+
}
|
|
1312
|
+
/** Event som emitteres ved sideendring */
|
|
1313
|
+
interface TablePageEvent {
|
|
1314
|
+
first: number;
|
|
1315
|
+
rows: number;
|
|
1316
|
+
page: number;
|
|
1317
|
+
pageCount: number;
|
|
1318
|
+
}
|
|
1319
|
+
/**
|
|
1320
|
+
* @summary
|
|
1321
|
+
* Table brukes for å vise strukturert informasjon på en ryddig og oversiktlig måte.
|
|
1322
|
+
* Tabeller kan gjøre det enklere for brukerne å skanne og sammenligne informasjon.
|
|
1323
|
+
*
|
|
1324
|
+
* @example
|
|
1325
|
+
* ```html
|
|
1326
|
+
* <!-- Enkel bruk med innebygd sortering og søk -->
|
|
1327
|
+
* <table hviTable [value]="persons" [globalFilterFields]="['navn', 'epost']" #table="hviTable">
|
|
1328
|
+
* <caption>
|
|
1329
|
+
* <input type="search" (input)="table.filterGlobal($event.target.value)" />
|
|
1330
|
+
* </caption>
|
|
1331
|
+
* <thead>
|
|
1332
|
+
* <tr>
|
|
1333
|
+
* <th hviSortableColumn="navn">
|
|
1334
|
+
* <button>Navn</button>
|
|
1335
|
+
* </th>
|
|
1336
|
+
* <th>Epost</th>
|
|
1337
|
+
* </tr>
|
|
1338
|
+
* </thead>
|
|
1339
|
+
* <tbody>
|
|
1340
|
+
* @for (person of table.filteredValue(); track person.id) {
|
|
1341
|
+
* <tr>
|
|
1342
|
+
* <td>{{ person.navn }}</td>
|
|
1343
|
+
* <td>{{ person.epost }}</td>
|
|
1344
|
+
* </tr>
|
|
1345
|
+
* }
|
|
1346
|
+
* </tbody>
|
|
1347
|
+
* </table>
|
|
1348
|
+
* ```
|
|
1349
|
+
*
|
|
1350
|
+
* @see {@link https://designsystemet.no/no/components/docs/table/code}
|
|
1351
|
+
*/
|
|
1352
|
+
declare class HviTable<T = unknown> {
|
|
1353
|
+
/** Gir tabellen zebrastriper (annenhver rad har alternativ bakgrunn) */
|
|
1354
|
+
zebra: boolean;
|
|
1355
|
+
/** Gir tabellen en avrundet kant rundt */
|
|
1356
|
+
border: boolean;
|
|
1357
|
+
/** Gir tabellen hover-effekt på rader */
|
|
1358
|
+
hover: boolean;
|
|
1359
|
+
/** Gjør tabellens header sticky (fester seg til toppen ved scrolling) */
|
|
1360
|
+
stickyHeader: boolean;
|
|
1361
|
+
/** Data som skal vises i tabellen */
|
|
1362
|
+
set value(data: T[] | null | undefined);
|
|
1363
|
+
/** Felt som data skal sorteres etter (valgfri initial verdi) */
|
|
1364
|
+
set sortField(field: string | null | undefined);
|
|
1365
|
+
/** Sorteringsretning: 1 = ascending, -1 = descending, 0 = none */
|
|
1366
|
+
set sortOrder(order: number);
|
|
1367
|
+
/** Felt som global søk skal søke i */
|
|
1368
|
+
globalFilterFields: string[];
|
|
1369
|
+
/** Aktiver paginering */
|
|
1370
|
+
paginator: boolean;
|
|
1371
|
+
/** Antall rader per side (når paginator er aktivert) */
|
|
1372
|
+
set rows(value: number);
|
|
1373
|
+
/** Indeks for første rad som vises (0-basert) */
|
|
1374
|
+
set first(value: number);
|
|
1375
|
+
/** Event som emitteres når sortering endres */
|
|
1376
|
+
sortChange: EventEmitter<TableSortEvent>;
|
|
1377
|
+
/** Event som emitteres når side endres */
|
|
1378
|
+
pageChange: EventEmitter<TablePageEvent>;
|
|
1379
|
+
/** Event som emitteres med nåværende side (1-basert, for two-way binding) */
|
|
1380
|
+
currentPageChange: EventEmitter<number>;
|
|
1381
|
+
private _value;
|
|
1382
|
+
private _sortField;
|
|
1383
|
+
private _sortOrder;
|
|
1384
|
+
private _globalFilter;
|
|
1385
|
+
private _rows;
|
|
1386
|
+
private _first;
|
|
1387
|
+
/** Kun sortert data (uten søk) - for bakoverkompatibilitet */
|
|
1388
|
+
readonly sortedValue: i0.Signal<T[]>;
|
|
1389
|
+
/** Filtrert og sortert data - bruk denne i template */
|
|
1390
|
+
readonly filteredValue: i0.Signal<T[]>;
|
|
1391
|
+
/** Paginert, filtrert og sortert data - bruk denne når paginator er aktivert */
|
|
1392
|
+
readonly paginatedValue: i0.Signal<T[]>;
|
|
1393
|
+
/** Antall rader etter søk */
|
|
1394
|
+
readonly totalFilteredRecords: i0.Signal<number>;
|
|
1395
|
+
/** Antall rader totalt (før søk) */
|
|
1396
|
+
readonly totalRecords: i0.Signal<number>;
|
|
1397
|
+
/** Totalt antall sider */
|
|
1398
|
+
readonly pageCount: i0.Signal<number>;
|
|
1399
|
+
/** Nåværende side (1-basert) */
|
|
1400
|
+
readonly currentPage: i0.Signal<number>;
|
|
1401
|
+
/** Er vi på første side? */
|
|
1402
|
+
readonly isFirstPage: i0.Signal<boolean>;
|
|
1403
|
+
/** Er vi på siste side? */
|
|
1404
|
+
readonly isLastPage: i0.Signal<boolean>;
|
|
1405
|
+
/** Nåværende sorteringsfelt */
|
|
1406
|
+
readonly currentSortField: i0.Signal<string | null>;
|
|
1407
|
+
/** Nåværende sorteringsretning som SortDirection */
|
|
1408
|
+
readonly currentSortDirection: i0.Signal<SortDirection>;
|
|
1409
|
+
/** Nåværende søkeverdi */
|
|
1410
|
+
readonly currentGlobalFilter: i0.Signal<string | null>;
|
|
1411
|
+
/**
|
|
1412
|
+
* Global søk - søker på tvers av alle felt i globalFilterFields.
|
|
1413
|
+
* @param value Søkeverdi
|
|
1414
|
+
*/
|
|
1415
|
+
filterGlobal(value: string | null): void;
|
|
1416
|
+
/**
|
|
1417
|
+
* Nullstiller søk.
|
|
1418
|
+
*/
|
|
1419
|
+
clearFilter(): void;
|
|
1420
|
+
/**
|
|
1421
|
+
* Nullstiller hele tabellen (sortering og søk).
|
|
1422
|
+
*/
|
|
1423
|
+
clear(): void;
|
|
1424
|
+
/**
|
|
1425
|
+
* Gå til en spesifikk side (1-basert).
|
|
1426
|
+
*/
|
|
1427
|
+
goToPage(page: number): void;
|
|
1428
|
+
/**
|
|
1429
|
+
* Gå til første side.
|
|
1430
|
+
*/
|
|
1431
|
+
goToFirstPage(): void;
|
|
1432
|
+
/**
|
|
1433
|
+
* Gå til siste side.
|
|
1434
|
+
*/
|
|
1435
|
+
goToLastPage(): void;
|
|
1436
|
+
/**
|
|
1437
|
+
* Gå til forrige side.
|
|
1438
|
+
*/
|
|
1439
|
+
goToPreviousPage(): void;
|
|
1440
|
+
/**
|
|
1441
|
+
* Gå til neste side.
|
|
1442
|
+
*/
|
|
1443
|
+
goToNextPage(): void;
|
|
1444
|
+
/**
|
|
1445
|
+
* Endre antall rader per side.
|
|
1446
|
+
*/
|
|
1447
|
+
setRows(rows: number): void;
|
|
1448
|
+
private emitPageEvent;
|
|
1449
|
+
/**
|
|
1450
|
+
* Sorterer tabellen etter et felt.
|
|
1451
|
+
* Kalles av hviSortableColumn directive.
|
|
1452
|
+
*/
|
|
1453
|
+
sort(field: string): void;
|
|
1454
|
+
/**
|
|
1455
|
+
* Henter sorteringsretning for et spesifikt felt.
|
|
1456
|
+
* Brukes av hviSortableColumn for å vise riktig aria-sort.
|
|
1457
|
+
*/
|
|
1458
|
+
getSortDirection(field: string): SortDirection;
|
|
1459
|
+
private applyGlobalFilter;
|
|
1460
|
+
private applySorting;
|
|
1461
|
+
/**
|
|
1462
|
+
* Henter verdi fra et objekt basert på felt-path (støtter nested: "user.name")
|
|
1463
|
+
*/
|
|
1464
|
+
private getFieldValue;
|
|
1465
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HviTable<any>, never>;
|
|
1466
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HviTable<any>, "[hviTable]", ["hviTable"], { "zebra": { "alias": "zebra"; "required": false; }; "border": { "alias": "border"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "value": { "alias": "value"; "required": false; }; "sortField": { "alias": "sortField"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "first": { "alias": "first"; "required": false; }; }, { "sortChange": "sortChange"; "pageChange": "pageChange"; "currentPageChange": "currentPageChange"; }, never, never, true, never>;
|
|
1467
|
+
static ngAcceptInputType_zebra: unknown;
|
|
1468
|
+
static ngAcceptInputType_border: unknown;
|
|
1469
|
+
static ngAcceptInputType_hover: unknown;
|
|
1470
|
+
static ngAcceptInputType_stickyHeader: unknown;
|
|
1471
|
+
static ngAcceptInputType_paginator: unknown;
|
|
1472
|
+
static ngAcceptInputType_rows: unknown;
|
|
1473
|
+
static ngAcceptInputType_first: unknown;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
/**
|
|
1477
|
+
* @summary
|
|
1478
|
+
* Directive for sorterbare tabell-header celler.
|
|
1479
|
+
* Kommuniserer automatisk med parent HviTable for å håndtere sortering.
|
|
1480
|
+
*
|
|
1481
|
+
* @example
|
|
1482
|
+
* ```html
|
|
1483
|
+
* <table hviTable [value]="persons" #table>
|
|
1484
|
+
* <thead>
|
|
1485
|
+
* <tr>
|
|
1486
|
+
* <th hviSortableColumn="navn">
|
|
1487
|
+
* <button>Navn</button>
|
|
1488
|
+
* </th>
|
|
1489
|
+
* <th>Epost</th>
|
|
1490
|
+
* </tr>
|
|
1491
|
+
* </thead>
|
|
1492
|
+
* <tbody>
|
|
1493
|
+
* @for (person of table.sortedValue(); track person.id) {
|
|
1494
|
+
* <tr>
|
|
1495
|
+
* <td>{{ person.navn }}</td>
|
|
1496
|
+
* <td>{{ person.epost }}</td>
|
|
1497
|
+
* </tr>
|
|
1498
|
+
* }
|
|
1499
|
+
* </tbody>
|
|
1500
|
+
* </table>
|
|
1501
|
+
* ```
|
|
1502
|
+
*
|
|
1503
|
+
* @see {@link https://designsystemet.no/no/components/docs/table/code}
|
|
1504
|
+
*/
|
|
1505
|
+
declare class HviSortableColumn {
|
|
1506
|
+
private table;
|
|
1507
|
+
/**
|
|
1508
|
+
* Feltet som denne kolonnen sorterer etter.
|
|
1509
|
+
* Må matche property-navn i data-objektene.
|
|
1510
|
+
*/
|
|
1511
|
+
field: string;
|
|
1512
|
+
/**
|
|
1513
|
+
* Henter sorteringsretning fra parent table.
|
|
1514
|
+
*/
|
|
1515
|
+
get sortDirection(): SortDirection;
|
|
1516
|
+
onClick(event: MouseEvent): void;
|
|
1517
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HviSortableColumn, never>;
|
|
1518
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HviSortableColumn, "th[hviSortableColumn]", never, { "field": { "alias": "hviSortableColumn"; "required": true; }; }, {}, never, never, true, never>;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1219
1521
|
/**
|
|
1220
1522
|
* TabPanel inneholder innholdet som vises når en tilhørende Tab er aktiv.
|
|
1221
1523
|
*
|
|
@@ -1464,5 +1766,5 @@ declare class HviTooltip implements OnInit, OnDestroy {
|
|
|
1464
1766
|
static ɵdir: i0.ɵɵDirectiveDeclaration<HviTooltip, "[hviTooltip]", never, { "hviTooltip": { "alias": "hviTooltip"; "required": true; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; }; "tooltipAutoPlacement": { "alias": "tooltipAutoPlacement"; "required": false; }; "tooltipType": { "alias": "tooltipType"; "required": false; }; "tooltipShowDelay": { "alias": "tooltipShowDelay"; "required": false; }; "tooltipHideDelay": { "alias": "tooltipHideDelay"; "required": false; }; }, {}, never, never, true, never>;
|
|
1465
1767
|
}
|
|
1466
1768
|
|
|
1467
|
-
export { HviAlert, HviAvatar, HviBadge, HviBadgePosition, HviBreadcrumbs, HviButton, HviCard, HviCardBlock, HviChipButton, HviChipLabel, HviControlInvalid, HviDetails, HviDetailsContent, HviDetailsSummary, HviDialog, HviDialogBlock, HviDivider, HviErrorSummary, HviField, HviFieldAffix, HviFieldAffixes, HviFieldCounter, HviFieldDescription, HviFieldKit, HviFieldOptional, HviFieldValidation, HviFieldset, HviForm, HviForms, HviHeading, HviIcon, HviInput, HviLabel, HviLink, HviList, HviParagraph, HviPopover, HviSearch, HviSearchClear, HviSelect, HviSkeleton, HviSkipLink, HviSpinner, HviTab, HviTabPanel, HviTabs, HviTag, HviToggleGroup, HviToggleGroupItem, HviToggleGroupItemToken, HviTooltip, HviValidationKit, HviValidationMessage, fieldObserver, hviCustom, hviEmail, hviExtractMessages, hviExtractValidators, hviMax, hviMaxLength, hviMin, hviMinLength, hviNullValidator, hviPattern, hviRequired, hviRequiredTrue, hviValidators, isElement, isInputLike, isLabel };
|
|
1468
|
-
export type { HviErrorSummaryItem, HviErrorSummaryMessages, HviValidationMessages, HviValidatorBundle, HviValidatorConfig, SpinnerSize };
|
|
1769
|
+
export { HviAlert, HviAvatar, HviBadge, HviBadgePosition, HviBreadcrumbs, HviButton, HviCard, HviCardBlock, HviChipButton, HviChipLabel, HviControlInvalid, HviDetails, HviDetailsContent, HviDetailsSummary, HviDialog, HviDialogBlock, HviDivider, HviErrorSummary, HviField, HviFieldAffix, HviFieldAffixes, HviFieldCounter, HviFieldDescription, HviFieldKit, HviFieldOptional, HviFieldValidation, HviFieldset, HviForm, HviForms, HviHeading, HviIcon, HviInput, HviLabel, HviLink, HviList, HviPagination, HviParagraph, HviPopover, HviSearch, HviSearchClear, HviSelect, HviSkeleton, HviSkipLink, HviSortableColumn, HviSpinner, HviTab, HviTabPanel, HviTable, HviTabs, HviTag, HviToggleGroup, HviToggleGroupItem, HviToggleGroupItemToken, HviTooltip, HviValidationKit, HviValidationMessage, fieldObserver, hviCustom, hviEmail, hviExtractMessages, hviExtractValidators, hviMax, hviMaxLength, hviMin, hviMinLength, hviNullValidator, hviPattern, hviRequired, hviRequiredTrue, hviValidators, isElement, isInputLike, isLabel };
|
|
1770
|
+
export type { HviErrorSummaryItem, HviErrorSummaryMessages, HviValidationMessages, HviValidatorBundle, HviValidatorConfig, PageChangeEvent, PaginationItem, SortDirection, SpinnerSize, TablePageEvent, TableSortEvent };
|