UNPKG

@agnos-ui/angular

Version:

Bootstrap-based widget library for Angular.

624 lines 69.8 kB
import { BaseWidgetDirective, ComponentTemplate, SlotDirective, auBooleanAttribute, auNumberAttribute, callWidgetFactory, createPagination, } from '@agnos-ui/angular-headless'; import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, inject, } from '@angular/core'; import * as i0 from "@angular/core"; const _c0 = ["pages"]; const _c1 = ["structure"]; function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_ng_template_1_Template(rf, ctx) { } const _c2 = (a0, a1) => ({ state: a0, widget: a1 }); function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "a", 6); i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_ng_template_1_Template, 0, 0, "ng-template", 7); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r15 = i0.ɵɵnextContext(2); const state_r4 = ctx_r15.state; const widget_r5 = ctx_r15.widget; i0.ɵɵadvance(); i0.ɵɵproperty("auSlot", state_r4.slotEllipsis)("auSlotProps", i0.ɵɵpureFunction2(2, _c2, state_r4, widget_r5)); } } function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_ng_template_1_Template(rf, ctx) { } function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 10); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const state_r4 = i0.ɵɵnextContext(3).state; i0.ɵɵadvance(); i0.ɵɵtextInterpolate(state_r4.activeLabel); } } const _c3 = (a0, a1, a2) => ({ state: a0, widget: a1, displayedPage: a2 }); function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) { const _r21 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "a", 8); i0.ɵɵlistener("click", function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r21); const page_r7 = i0.ɵɵnextContext().$implicit; const widget_r5 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r5.actions.select(page_r7, $event)); }); i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_ng_template_1_Template, 0, 0, "ng-template", 7)(2, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Conditional_2_Template, 2, 1, "span", 9); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r24 = i0.ɵɵnextContext(); const i_r8 = ctx_r24.$index; const page_r7 = ctx_r24.$implicit; const ctx_r23 = i0.ɵɵnextContext(); const state_r4 = ctx_r23.state; const widget_r5 = ctx_r23.widget; i0.ɵɵattribute("aria-label", state_r4.pagesLabel[i_r8])("href", state_r4.pagesHrefs[i_r8], i0.ɵɵsanitizeUrl)("tabindex", state_r4.disabled ? "-1" : null)("aria-disabled", state_r4.disabled ? "true" : null); i0.ɵɵadvance(); i0.ɵɵproperty("auSlot", state_r4.slotNumberLabel)("auSlotProps", i0.ɵɵpureFunction3(7, _c3, state_r4, widget_r5, page_r7)); i0.ɵɵadvance(); i0.ɵɵconditional(2, state_r4.page === page_r7 ? 2 : -1); } } function PaginationDefaultSlotsComponent_ng_template_0_For_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "li", 4); i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Template, 2, 5, "a", 5)(2, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Template, 3, 11); i0.ɵɵelementEnd(); } if (rf & 2) { const page_r7 = ctx.$implicit; const ctx_r25 = i0.ɵɵnextContext(); const state_r4 = ctx_r25.state; const widget_r5 = ctx_r25.widget; i0.ɵɵclassProp("active", page_r7 === state_r4.page)("disabled", widget_r5.api.isEllipsis(page_r7) || state_r4.disabled); i0.ɵɵattribute("aria-current", page_r7 === state_r4.page ? "page" : null); i0.ɵɵadvance(); i0.ɵɵconditional(1, widget_r5.api.isEllipsis(page_r7) ? 1 : 2); } } function PaginationDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵrepeaterCreate(0, PaginationDefaultSlotsComponent_ng_template_0_For_1_Template, 3, 6, "li", 11, i0.ɵɵrepeaterTrackByIdentity); } if (rf & 2) { const state_r4 = ctx.state; i0.ɵɵrepeater(state_r4.pages); } } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_ng_template_3_Template(rf, ctx) { } const _c4 = (a0, a1) => ({ widget: a0, state: a1 }); function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) { const _r36 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "li", 4)(1, "a", 14); i0.ɵɵlistener("click", function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r36); const widget_r27 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r27.actions.first($event)); }); i0.ɵɵelementStart(2, "span", 15); i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_ng_template_3_Template, 0, 0, "ng-template", 7); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r37 = i0.ɵɵnextContext(); const state_r26 = ctx_r37.state; const widget_r27 = ctx_r37.widget; i0.ɵɵclassProp("disabled", state_r26.previousDisabled); i0.ɵɵadvance(); i0.ɵɵattribute("aria-label", state_r26.ariaFirstLabel)("href", state_r26.pagesHrefs[0], i0.ɵɵsanitizeUrl)("tabindex", state_r26.previousDisabled ? "-1" : null)("aria-disabled", state_r26.previousDisabled ? "true" : null); i0.ɵɵadvance(2); i0.ɵɵproperty("auSlot", state_r26.slotFirst)("auSlotProps", i0.ɵɵpureFunction2(8, _c4, widget_r27, state_r26)); } } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_ng_template_3_Template(rf, ctx) { } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) { const _r41 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "li", 4)(1, "a", 16); i0.ɵɵlistener("click", function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r41); const widget_r27 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r27.actions.previous($event)); }); i0.ɵɵelementStart(2, "span", 15); i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_ng_template_3_Template, 0, 0, "ng-template", 7); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r42 = i0.ɵɵnextContext(); const state_r26 = ctx_r42.state; const widget_r27 = ctx_r42.widget; i0.ɵɵclassProp("disabled", state_r26.previousDisabled); i0.ɵɵadvance(); i0.ɵɵattribute("aria-label", state_r26.ariaPreviousLabel)("href", state_r26.directionsHrefs.previous, i0.ɵɵsanitizeUrl)("tabindex", state_r26.previousDisabled ? "-1" : null)("aria-disabled", state_r26.previousDisabled ? "true" : null); i0.ɵɵadvance(2); i0.ɵɵproperty("auSlot", state_r26.slotPrevious)("auSlotProps", i0.ɵɵpureFunction2(8, _c4, widget_r27, state_r26)); } } function PaginationDefaultSlotsComponent_ng_template_2_ng_template_3_Template(rf, ctx) { } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_ng_template_3_Template(rf, ctx) { } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) { const _r46 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "li", 4)(1, "a", 17); i0.ɵɵlistener("click", function PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r46); const widget_r27 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r27.actions.next($event)); }); i0.ɵɵelementStart(2, "span", 15); i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_ng_template_3_Template, 0, 0, "ng-template", 7); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r47 = i0.ɵɵnextContext(); const state_r26 = ctx_r47.state; const widget_r27 = ctx_r47.widget; i0.ɵɵclassProp("disabled", state_r26.nextDisabled); i0.ɵɵadvance(); i0.ɵɵattribute("aria-label", state_r26.ariaNextLabel)("href", state_r26.directionsHrefs.next, i0.ɵɵsanitizeUrl)("tabindex", state_r26.nextDisabled ? "-1" : null)("aria-disabled", state_r26.nextDisabled ? "true" : null); i0.ɵɵadvance(2); i0.ɵɵproperty("auSlot", state_r26.slotNext)("auSlotProps", i0.ɵɵpureFunction2(8, _c4, widget_r27, state_r26)); } } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_ng_template_3_Template(rf, ctx) { } function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) { const _r51 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "li", 4)(1, "a", 18); i0.ɵɵlistener("click", function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r51); const widget_r27 = i0.ɵɵnextContext().widget; return i0.ɵɵresetView(widget_r27.actions.last($event)); }); i0.ɵɵelementStart(2, "span", 15); i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_ng_template_3_Template, 0, 0, "ng-template", 7); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r52 = i0.ɵɵnextContext(); const state_r26 = ctx_r52.state; const widget_r27 = ctx_r52.widget; i0.ɵɵclassProp("disabled", state_r26.nextDisabled); i0.ɵɵadvance(); i0.ɵɵattribute("aria-label", state_r26.ariaLastLabel)("href", state_r26.pagesHrefs.at(-1), i0.ɵɵsanitizeUrl)("tabindex", state_r26.nextDisabled ? "-1" : null)("aria-disabled", state_r26.nextDisabled ? "true" : null); i0.ɵɵadvance(2); i0.ɵɵproperty("auSlot", state_r26.slotLast)("auSlotProps", i0.ɵɵpureFunction2(8, _c4, widget_r27, state_r26)); } } function PaginationDefaultSlotsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "ul"); i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template, 4, 11, "li", 12)(2, PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template, 4, 11, "li", 12)(3, PaginationDefaultSlotsComponent_ng_template_2_ng_template_3_Template, 0, 0, "ng-template", 7)(4, PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_Template, 4, 11, "li", 12)(5, PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template, 4, 11, "li", 12); i0.ɵɵelementEnd(); i0.ɵɵelementStart(6, "div", 13); i0.ɵɵtext(7); i0.ɵɵelementEnd(); } if (rf & 2) { const state_r26 = ctx.state; const widget_r27 = ctx.widget; i0.ɵɵclassMap("au-pagination pagination" + (state_r26.size ? " pagination-" + state_r26.size : "") + " " + state_r26.className); i0.ɵɵadvance(); i0.ɵɵconditional(1, state_r26.boundaryLinks ? 1 : -1); i0.ɵɵadvance(); i0.ɵɵconditional(2, state_r26.directionLinks ? 2 : -1); i0.ɵɵadvance(); i0.ɵɵproperty("auSlot", state_r26.slotPages)("auSlotProps", i0.ɵɵpureFunction2(9, _c4, widget_r27, state_r26)); i0.ɵɵadvance(); i0.ɵɵconditional(4, state_r26.directionLinks ? 4 : -1); i0.ɵɵadvance(); i0.ɵɵconditional(5, state_r26.boundaryLinks ? 5 : -1); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate1("Current page is ", state_r26.page, ""); } } const _c5 = ["auPagination", ""]; function PaginationComponent_ng_template_0_Template(rf, ctx) { } /** * A directive to use to give the 'ellipsis' link template to the pagination component */ export class PaginationEllipsisDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationEllipsisDirective_Factory(t) { return new (t || PaginationEllipsisDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationEllipsisDirective, selectors: [["ng-template", "auPaginationEllipsis", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationEllipsisDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationEllipsis]', standalone: true }] }], null, null); })(); /** * A directive to use to give the 'first' link template to the pagination component */ export class PaginationFirstDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationFirstDirective_Factory(t) { return new (t || PaginationFirstDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationFirstDirective, selectors: [["ng-template", "auPaginationFirst", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationFirstDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationFirst]', standalone: true }] }], null, null); })(); /** * A directive to use to give the 'last' link template to the pagination component */ export class PaginationLastDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationLastDirective_Factory(t) { return new (t || PaginationLastDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationLastDirective, selectors: [["ng-template", "auPaginationLast", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationLastDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationLast]', standalone: true }] }], null, null); })(); /** * A directive to use to give the 'next' link template to the pagination component */ export class PaginationNextDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationNextDirective_Factory(t) { return new (t || PaginationNextDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationNextDirective, selectors: [["ng-template", "auPaginationNext", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationNextDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationNext]', standalone: true }] }], null, null); })(); /** * A directive to use to give the page 'number' template to the pagination component */ export class PaginationNumberDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationNumberDirective_Factory(t) { return new (t || PaginationNumberDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationNumberDirective, selectors: [["ng-template", "auPaginationNumber", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationNumberDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationNumber]', standalone: true }] }], null, null); })(); /** * A directive to use to give the 'previous' link template to the pagination component */ export class PaginationPreviousDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationPreviousDirective_Factory(t) { return new (t || PaginationPreviousDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationPreviousDirective, selectors: [["ng-template", "auPaginationPrevious", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationPreviousDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationPrevious]', standalone: true }] }], null, null); })(); /** * A directive to use to give the 'Pages' template for the Pages slot */ export class PaginationPagesDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(_dir, context) { return true; } static { this.ɵfac = function PaginationPagesDirective_Factory(t) { return new (t || PaginationPagesDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationPagesDirective, selectors: [["ng-template", "auPaginationPages", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationPagesDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationPages]', standalone: true }] }], null, null); })(); /** * Directive to provide the slot structure for the pagination widget. */ export class PaginationStructureDirective { constructor() { this.templateRef = inject((TemplateRef)); } static ngTemplateContextGuard(dir, context) { return true; } static { this.ɵfac = function PaginationStructureDirective_Factory(t) { return new (t || PaginationStructureDirective)(); }; } static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationStructureDirective, selectors: [["ng-template", "auPaginationStructure", ""]], standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStructureDirective, [{ type: Directive, args: [{ selector: 'ng-template[auPaginationStructure]', standalone: true }] }], null, null); })(); export class PaginationDefaultSlotsComponent { static { this.ɵfac = function PaginationDefaultSlotsComponent_Factory(t) { return new (t || PaginationDefaultSlotsComponent)(); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationDefaultSlotsComponent, selectors: [["ng-component"]], viewQuery: function PaginationDefaultSlotsComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 7); i0.ɵɵviewQuery(_c1, 7); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pages = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structure = _t.first); } }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["auPaginationPages", ""], ["pages", ""], ["auPaginationStructure", ""], ["structure", ""], [1, "page-item"], ["class", "page-link au-ellipsis", "tabindex", "-1", "aria-disabled", "true"], ["tabindex", "-1", "aria-disabled", "true", 1, "page-link", "au-ellipsis"], [3, "auSlot", "auSlotProps"], [1, "page-link", "au-page", 3, "click"], ["class", "visually-hidden"], [1, "visually-hidden"], ["class", "page-item", 3, "active", "disabled"], ["class", "page-item", 3, "disabled"], ["aria-live", "polite", 1, "visually-hidden"], [1, "page-link", "au-first", 3, "click"], ["aria-hidden", "true"], [1, "page-link", "au-previous", 3, "click"], [1, "page-link", "au-next", 3, "click"], [1, "page-link", "au-last", 3, "click"]], template: function PaginationDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, PaginationDefaultSlotsComponent_ng_template_0_Template, 2, 0, "ng-template", 0, 1, i0.ɵɵtemplateRefExtractor)(2, PaginationDefaultSlotsComponent_ng_template_2_Template, 8, 12, "ng-template", 2, 3, i0.ɵɵtemplateRefExtractor); } }, dependencies: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective], encapsulation: 2, changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationDefaultSlotsComponent, [{ type: Component, args: [{ standalone: true, imports: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: ` <ng-template auPaginationPages #pages let-state="state" let-widget="widget"> @for (page of state.pages; track page; let i = $index) { <li class="page-item" [class.active]="page === state.page" [class.disabled]="widget.api.isEllipsis(page) || state.disabled" [attr.aria-current]="page === state.page ? 'page' : null" > @if (widget.api.isEllipsis(page)) { <a class="page-link au-ellipsis" tabindex="-1" aria-disabled="true"> <ng-template [auSlot]="state.slotEllipsis" [auSlotProps]="{state, widget}"></ng-template> </a> } @else { <a [attr.aria-label]="state.pagesLabel[i]" class="page-link au-page" [attr.href]="state.pagesHrefs[i]" (click)="widget.actions.select(page, $event)" [attr.tabindex]="state.disabled ? '-1' : null" [attr.aria-disabled]="state.disabled ? 'true' : null" > <ng-template [auSlot]="state.slotNumberLabel" [auSlotProps]="{state, widget, displayedPage: page}"></ng-template> @if (state.page === page) { <span class="visually-hidden">{{ state.activeLabel }}</span> } </a> } </li> } </ng-template> <ng-template auPaginationStructure #structure let-state="state" let-widget="widget"> <ul [class]="'au-pagination pagination' + (state.size ? ' pagination-' + state.size : '') + ' ' + state.className"> @if (state.boundaryLinks) { <li class="page-item" [class.disabled]="state.previousDisabled"> <a [attr.aria-label]="state.ariaFirstLabel" class="page-link au-first" [attr.href]="state.pagesHrefs[0]" (click)="widget.actions.first($event)" [attr.tabindex]="state.previousDisabled ? '-1' : null" [attr.aria-disabled]="state.previousDisabled ? 'true' : null" > <span aria-hidden="true"> <ng-template [auSlot]="state.slotFirst" [auSlotProps]="{widget, state}"></ng-template> </span> </a> </li> } @if (state.directionLinks) { <li class="page-item" [class.disabled]="state.previousDisabled"> <a [attr.aria-label]="state.ariaPreviousLabel" class="page-link au-previous" [attr.href]="state.directionsHrefs.previous" (click)="widget.actions.previous($event)" [attr.tabindex]="state.previousDisabled ? '-1' : null" [attr.aria-disabled]="state.previousDisabled ? 'true' : null" > <span aria-hidden="true"> <ng-template [auSlot]="state.slotPrevious" [auSlotProps]="{widget, state}"></ng-template> </span> </a> </li> } <ng-template [auSlot]="state.slotPages" [auSlotProps]="{widget, state}"></ng-template> @if (state.directionLinks) { <li class="page-item" [class.disabled]="state.nextDisabled"> <a [attr.aria-label]="state.ariaNextLabel" class="page-link au-next" [attr.href]="state.directionsHrefs.next" (click)="widget.actions.next($event)" [attr.tabindex]="state.nextDisabled ? '-1' : null" [attr.aria-disabled]="state.nextDisabled ? 'true' : null" > <span aria-hidden="true"> <ng-template [auSlot]="state.slotNext" [auSlotProps]="{widget, state}"></ng-template> </span> </a> </li> } @if (state.boundaryLinks) { <li class="page-item" [class.disabled]="state.nextDisabled"> <a [attr.aria-label]="state.ariaLastLabel" class="page-link au-last" [attr.href]="state.pagesHrefs.at(-1)" (click)="widget.actions.last($event)" [attr.tabindex]="state.nextDisabled ? '-1' : null" [attr.aria-disabled]="state.nextDisabled ? 'true' : null" > <span aria-hidden="true"> <ng-template [auSlot]="state.slotLast" [auSlotProps]="{widget, state}"></ng-template> </span> </a> </li> } </ul> <div aria-live="polite" class="visually-hidden">Current page is {{ state.page }}</div> </ng-template> `, }] }], null, { pages: [{ type: ViewChild, args: ['pages', { static: true }] }], structure: [{ type: ViewChild, args: ['structure', { static: true }] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationDefaultSlotsComponent, { className: "PaginationDefaultSlotsComponent", filePath: "components/pagination/pagination.component.ts", lineNumber: 221 }); })(); /** * The default slot for the pages */ export const paginationDefaultSlotPages = new ComponentTemplate(PaginationDefaultSlotsComponent, 'pages'); /** * The default slot for the structure */ export const paginationDefaultSlotStructure = new ComponentTemplate(PaginationDefaultSlotsComponent, 'structure'); const defaultConfig = { slotStructure: paginationDefaultSlotStructure, slotPages: paginationDefaultSlotPages, }; export class PaginationComponent extends BaseWidgetDirective { constructor() { super(...arguments); this._widget = callWidgetFactory({ factory: createPagination, widgetName: 'pagination', defaultConfig, events: { onPageChange: (page) => this.pageChange.emit(page), }, }); /** * An event fired when the page is changed. * * Event payload is the number of the newly selected page. * * Page numbers start with `1`. */ this.pageChange = new EventEmitter(); } ngAfterContentChecked() { this._widget.patchSlots({ slotEllipsis: this.slotEllipsisFromContent?.templateRef, slotFirst: this.slotFirstFromContent?.templateRef, slotLast: this.slotLastFromContent?.templateRef, slotNext: this.slotNextFromContent?.templateRef, slotNumberLabel: this.slotNumberLabelFromContent?.templateRef, slotPages: this.slotPagesFromContent?.templateRef, slotPrevious: this.slotPreviousFromContent?.templateRef, slotStructure: this.slotStructureFromContent?.templateRef, }); } static { this.ɵfac = /*@__PURE__*/ (() => { let ɵPaginationComponent_BaseFactory; return function PaginationComponent_Factory(t) { return (ɵPaginationComponent_BaseFactory || (ɵPaginationComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PaginationComponent)))(t || PaginationComponent); }; })(); } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationComponent, selectors: [["", "auPagination", ""]], contentQueries: function PaginationComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, PaginationEllipsisDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationFirstDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationPreviousDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationNextDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationLastDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationPagesDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationNumberDirective, 5); i0.ɵɵcontentQuery(dirIndex, PaginationStructureDirective, 5); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotEllipsisFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotFirstFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotPreviousFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotNextFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotLastFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotPagesFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotNumberLabelFromContent = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotStructureFromContent = _t.first); } }, hostVars: 1, hostBindings: function PaginationComponent_HostBindings(rf, ctx) { if (rf & 2) { i0.ɵɵattribute("aria-label", ctx.state().ariaLabel); } }, inputs: { ariaPageLabel: [i0.ɵɵInputFlags.None, "auAriaPageLabel", "ariaPageLabel"], ariaLabel: [i0.ɵɵInputFlags.None, "auAriaLabel", "ariaLabel"], activeLabel: [i0.ɵɵInputFlags.None, "auActiveLabel", "activeLabel"], ariaFirstLabel: [i0.ɵɵInputFlags.None, "auAriaFirstLabel", "ariaFirstLabel"], ariaPreviousLabel: [i0.ɵɵInputFlags.None, "auAriaPreviousLabel", "ariaPreviousLabel"], ariaNextLabel: [i0.ɵɵInputFlags.None, "auAriaNextLabel", "ariaNextLabel"], ariaLastLabel: [i0.ɵɵInputFlags.None, "auAriaLastLabel", "ariaLastLabel"], pageLink: [i0.ɵɵInputFlags.None, "auPageLink", "pageLink"], slotEllipsis: [i0.ɵɵInputFlags.None, "auSlotEllipsis", "slotEllipsis"], slotFirst: [i0.ɵɵInputFlags.None, "auSlotFirst", "slotFirst"], slotPrevious: [i0.ɵɵInputFlags.None, "auSlotPrevious", "slotPrevious"], slotNext: [i0.ɵɵInputFlags.None, "auSlotNext", "slotNext"], slotLast: [i0.ɵɵInputFlags.None, "auSlotLast", "slotLast"], slotPages: [i0.ɵɵInputFlags.None, "auSlotPages", "slotPages"], slotNumberLabel: [i0.ɵɵInputFlags.None, "auSlotNumberLabel", "slotNumberLabel"], slotStructure: [i0.ɵɵInputFlags.None, "auSlotStructure", "slotStructure"], disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auDisabled", "disabled", auBooleanAttribute], boundaryLinks: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auBoundaryLinks", "boundaryLinks", auBooleanAttribute], directionLinks: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auDirectionLinks", "directionLinks", auBooleanAttribute], collectionSize: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auCollectionSize", "collectionSize", auNumberAttribute], page: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auPage", "page", auNumberAttribute], pageSize: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "auPageSize", "pageSize", auNumberAttribute], size: [i0.ɵɵInputFlags.None, "auSize", "size"], pagesFactory: [i0.ɵɵInputFlags.None, "auPagesFactory", "pagesFactory"], className: [i0.ɵɵInputFlags.None, "auClassName", "className"] }, outputs: { pageChange: "auPageChange" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c5, decls: 1, vars: 5, consts: [[3, "auSlotProps", "auSlot"]], template: function PaginationComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, PaginationComponent_ng_template_0_Template, 0, 0, "ng-template", 0); } if (rf & 2) { i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction2(2, _c2, ctx.state(), ctx.widget))("auSlot", ctx.state().slotStructure); } }, dependencies: [SlotDirective], encapsulation: 2, changeDetection: 0 }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationComponent, [{ type: Component, args: [{ selector: '[auPagination]', standalone: true, imports: [SlotDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.aria-label]': 'state().ariaLabel', }, encapsulation: ViewEncapsulation.None, template: `<ng-template [auSlotProps]="{state: state(), widget}" [auSlot]="state().slotStructure"></ng-template>`, }] }], null, { ariaPageLabel: [{ type: Input, args: ['auAriaPageLabel'] }], ariaLabel: [{ type: Input, args: ['auAriaLabel'] }], activeLabel: [{ type: Input, args: ['auActiveLabel'] }], ariaFirstLabel: [{ type: Input, args: ['auAriaFirstLabel'] }], ariaPreviousLabel: [{ type: Input, args: ['auAriaPreviousLabel'] }], ariaNextLabel: [{ type: Input, args: ['auAriaNextLabel'] }], ariaLastLabel: [{ type: Input, args: ['auAriaLastLabel'] }], pageLink: [{ type: Input, args: ['auPageLink'] }], slotEllipsis: [{ type: Input, args: ['auSlotEllipsis'] }], slotEllipsisFromContent: [{ type: ContentChild, args: [PaginationEllipsisDirective, { static: false }] }], slotFirst: [{ type: Input, args: ['auSlotFirst'] }], slotFirstFromContent: [{ type: ContentChild, args: [PaginationFirstDirective, { static: false }] }], slotPrevious: [{ type: Input, args: ['auSlotPrevious'] }], slotPreviousFromContent: [{ type: ContentChild, args: [PaginationPreviousDirective, { static: false }] }], slotNext: [{ type: Input, args: ['auSlotNext'] }], slotNextFromContent: [{ type: ContentChild, args: [PaginationNextDirective, { static: false }] }], slotLast: [{ type: Input, args: ['auSlotLast'] }], slotLastFromContent: [{ type: ContentChild, args: [PaginationLastDirective, { static: false }] }], slotPages: [{ type: Input, args: ['auSlotPages'] }], slotPagesFromContent: [{ type: ContentChild, args: [PaginationPagesDirective, { static: false }] }], slotNumberLabel: [{ type: Input, args: ['auSlotNumberLabel'] }], slotNumberLabelFromContent: [{ type: ContentChild, args: [PaginationNumberDirective, { static: false }] }], slotStructure: [{ type: Input, args: ['auSlotStructure'] }], slotStructureFromContent: [{ type: ContentChild, args: [PaginationStructureDirective, { static: false }] }], disabled: [{ type: Input, args: [{ alias: 'auDisabled', transform: auBooleanAttribute }] }], boundaryLinks: [{ type: Input, args: [{ alias: 'auBoundaryLinks', transform: auBooleanAttribute }] }], directionLinks: [{ type: Input, args: [{ alias: 'auDirectionLinks', transform: auBooleanAttribute }] }], collectionSize: [{ type: Input, args: [{ alias: 'auCollectionSize', transform: auNumberAttribute }] }], page: [{ type: Input, args: [{ alias: 'auPage', transform: auNumberAttribute }] }], pageSize: [{ type: Input, args: [{ alias: 'auPageSize', transform: auNumberAttribute }] }], size: [{ type: Input, args: ['auSize'] }], pagesFactory: [{ type: Input, args: ['auPagesFactory'] }], pageChange: [{ type: Output, args: ['auPageChange'] }], className: [{ type: Input, args: ['auClassName'] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "components/pagination/pagination.component.ts", lineNumber: 250 }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDaEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQXdHakIsNEJBQW9FO0lBQ25FLGtJQUF5RjtJQUMxRixpQkFBSTs7Ozs7SUFEVSxjQUE2QjtJQUE3Qiw4Q0FBNkIsZ0VBQUE7Ozs7SUFhekMsZ0NBQThCO0lBQUEsWUFBdUI7SUFBQSxpQkFBTzs7O0lBQTlCLGNBQXVCO0lBQXZCLDBDQUF1Qjs7Ozs7SUFWdkQsNEJBT0M7SUFIQSxrUUFBUyxlQUFBLHlDQUFtQyxDQUFBLElBQUM7SUFJN0Msa0lBQWlILDhHQUFBO0lBSWxILGlCQUFJOzs7Ozs7OztJQVhILHVEQUF1QyxxREFBQSw2Q0FBQSxvREFBQTtJQU8xQixjQUFnQztJQUFoQyxpREFBZ0MseUVBQUE7SUFDN0MsY0FFQztJQUZELHVEQUVDOzs7SUF0QkosNkJBS0M7SUFDQSwwR0FJQyxzRkFBQTtJQWVGLGlCQUFLOzs7Ozs7SUF2QkosbURBQW9DLG9FQUFBO0lBRXBDLHlFQUF5RDtJQUV6RCxjQUlDO0lBSkQsOERBSUM7OztJQVhILGtJQTJCQzs7O0lBM0JELDZCQTJCQzs7Ozs7O0lBS0MsNkJBQWdFLFlBQUE7SUFLOUQs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O2tCQUF0QyxLQUFLO21CQUFDLGlCQUFpQjtZQUV4Qix3QkFBd0I7a0JBRHZCLFlBQVk7bUJBQUMsNEJBQTRCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBTUUsUUFBUTtrQkFBcEUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBS08sYUFBYTtrQkFBOUUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFLRyxjQUFjO2tCQUFoRixLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQVdDLGNBQWM7a0JBQS9FLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDO1lBUVIsSUFBSTtrQkFBM0QsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDO1lBTU0sUUFBUTtrQkFBbkUsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDO1lBUXpDLElBQUk7a0JBQXBCLEtBQUs7bUJBQUMsUUFBUTtZQU9VLFlBQVk7a0JBQXBDLEtBQUs7bUJBQUMsZ0JBQWdCO1lBU0MsVUFBVTtrQkFBakMsTUFBTTttQkFBQyxjQUFjO1lBS0EsU0FBUztrQkFBOUIsS0FBSzttQkFBQyxhQUFhOztrRkFoTFIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1BhZ2luYXRpb25Db250ZXh0LCBQYWdpbmF0aW9uTnVtYmVyQ29udGV4dCwgUGFnaW5hdGlvblByb3BzLCBQYWdpbmF0aW9uV2lkZ2V0LCBTbG90Q29udGVudH0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtcblx0QmFzZVdpZGdldERpcmVjdGl2ZSxcblx0Q29tcG9uZW50VGVtcGxhdGUsXG5cdFNsb3REaXJlY3RpdmUsXG5cdGF1Qm9vbGVhbkF0dHJpYnV0ZSxcblx0YXVOdW1iZXJBdHRyaWJ1dGUsXG5cdGNhbGxXaWRnZXRGYWN0b3J5LFxuXHRjcmVhdGVQYWdpbmF0aW9uLFxufSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQgdHlwZSB7QWZ0ZXJDb250ZW50Q2hlY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0aW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0byB1c2UgdG8gZ2l2ZSB0aGUgJ2VsbGlwc2lzJyBsaW5rIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbkVsbGlwc2lzXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25FbGxpcHNpc0RpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxQYWdpbmF0aW9uQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyOiBQYWdpbmF0aW9uRWxsaXBzaXNEaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25Db250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAnZmlyc3QnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uRmlyc3RdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkZpcnN0RGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25GaXJzdERpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICdsYXN0JyBsaW5rIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbkxhc3RdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25Db250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAnbmV4dCcgbGluayB0ZW1wbGF0ZSB0byB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdVBhZ2luYXRpb25OZXh0XScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBQYWdpbmF0aW9uQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0byB1c2UgdG8gZ2l2ZSB0aGUgcGFnZSAnbnVtYmVyJyB0ZW1wbGF0ZSB0byB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdVBhZ2luYXRpb25OdW1iZXJdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk51bWJlckRpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxQYWdpbmF0aW9uTnVtYmVyQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyOiBQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBQYWdpbmF0aW9uTnVtYmVyQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0byB1c2UgdG8gZ2l2ZSB0aGUgJ3ByZ