@nanahoshi/mona-ui 0.15.2 → 0.15.3
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,6 +1,6 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive, inject, DestroyRef, ElementRef, computed, contentChild, TemplateRef, input, output, effect, untracked, afterRenderEffect, Optional, SkipSelf, Component, afterNextRender } from '@angular/core';
|
|
3
|
+
import { Directive, inject, DestroyRef, ElementRef, computed, contentChild, TemplateRef, input, output, effect, untracked, afterRenderEffect, Optional, SkipSelf, Component, model, afterNextRender } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { ListService, ListComponent, ListHeaderTemplateDirective, ListFooterTemplateDirective, ListGroupHeaderTemplateDirective, ListItemTemplateDirective, ListNoDataTemplateDirective } from '@nanahoshi/mona-ui/internal/list';
|
|
6
6
|
import { PagerComponent } from '@nanahoshi/mona-ui/pager';
|
|
@@ -390,35 +390,54 @@ class ListViewPageableDirective {
|
|
|
390
390
|
firstLast: false,
|
|
391
391
|
type: "numeric",
|
|
392
392
|
previousNext: true,
|
|
393
|
+
pageSize: 10,
|
|
393
394
|
pageSizeValues: [5, 10, 20, 25, 50, 100],
|
|
394
395
|
visiblePages: 5
|
|
395
396
|
};
|
|
396
397
|
this.#listService = inject(ListService);
|
|
397
398
|
this.options = input("", { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), alias: "monaListViewPageable" });
|
|
399
|
+
/**
|
|
400
|
+
* @description The current page. Supports two-way binding via `[(page)]`; updates when the user navigates the pager and can be set to navigate programmatically.
|
|
401
|
+
* @default 1
|
|
402
|
+
*/
|
|
403
|
+
this.page = model(1, /* @ts-ignore */
|
|
404
|
+
...(ngDevMode ? [{ debugName: "page" }] : /* istanbul ignore next */ []));
|
|
398
405
|
effect(() => {
|
|
399
406
|
const options = this.options();
|
|
400
407
|
untracked(() => {
|
|
401
|
-
|
|
402
|
-
|
|
408
|
+
const mergedOptions = options === "" ? this.#defaultOptions : { ...this.#defaultOptions, ...options };
|
|
409
|
+
this.#listService.setPageableOptions(mergedOptions);
|
|
410
|
+
this.#listService.pageState.update(s => ({ ...s, take: mergedOptions.pageSize }));
|
|
411
|
+
});
|
|
412
|
+
});
|
|
413
|
+
effect(() => {
|
|
414
|
+
const page = this.page();
|
|
415
|
+
untracked(() => {
|
|
416
|
+
const pageState = this.#listService.pageState();
|
|
417
|
+
if (pageState.page === page) {
|
|
418
|
+
return;
|
|
403
419
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
420
|
+
this.#listService.pageState.set({ page, skip: (page - 1) * pageState.take, take: pageState.take });
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
effect(() => {
|
|
424
|
+
const pageState = this.#listService.pageState();
|
|
425
|
+
untracked(() => {
|
|
426
|
+
if (this.page() !== pageState.page) {
|
|
427
|
+
this.page.set(pageState.page);
|
|
409
428
|
}
|
|
410
429
|
});
|
|
411
430
|
});
|
|
412
431
|
}
|
|
413
432
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListViewPageableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
414
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: ListViewPageableDirective, isStandalone: true, selector: "mona-list-view[monaListViewPageable]", inputs: { options: { classPropertyName: "options", publicName: "monaListViewPageable", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
433
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: ListViewPageableDirective, isStandalone: true, selector: "mona-list-view[monaListViewPageable]", inputs: { options: { classPropertyName: "options", publicName: "monaListViewPageable", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange" }, ngImport: i0 }); }
|
|
415
434
|
}
|
|
416
435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListViewPageableDirective, decorators: [{
|
|
417
436
|
type: Directive,
|
|
418
437
|
args: [{
|
|
419
438
|
selector: "mona-list-view[monaListViewPageable]"
|
|
420
439
|
}]
|
|
421
|
-
}], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "monaListViewPageable", required: false }] }] } });
|
|
440
|
+
}], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "monaListViewPageable", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }] } });
|
|
422
441
|
|
|
423
442
|
class ListViewSelectableDirective {
|
|
424
443
|
#defaultOptions;
|
package/package.json
CHANGED
|
@@ -159,10 +159,15 @@ declare class ListViewNoDataTemplateDirective {
|
|
|
159
159
|
|
|
160
160
|
declare class ListViewPageableDirective {
|
|
161
161
|
#private;
|
|
162
|
-
options: _angular_core.InputSignal<"" | Partial<PagerSettings>>;
|
|
162
|
+
readonly options: _angular_core.InputSignal<"" | Partial<PagerSettings>>;
|
|
163
|
+
/**
|
|
164
|
+
* @description The current page. Supports two-way binding via `[(page)]`; updates when the user navigates the pager and can be set to navigate programmatically.
|
|
165
|
+
* @default 1
|
|
166
|
+
*/
|
|
167
|
+
readonly page: _angular_core.ModelSignal<number>;
|
|
163
168
|
constructor();
|
|
164
169
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListViewPageableDirective, never>;
|
|
165
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListViewPageableDirective, "mona-list-view[monaListViewPageable]", never, { "options": { "alias": "monaListViewPageable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
170
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListViewPageableDirective, "mona-list-view[monaListViewPageable]", never, { "options": { "alias": "monaListViewPageable"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; }, never, never, true, never>;
|
|
166
171
|
}
|
|
167
172
|
|
|
168
173
|
declare class ListViewSelectableDirective<T, K = unknown> {
|