valtech-components 2.0.510 → 2.0.511
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/esm2022/lib/components/molecules/refresher/refresher.component.mjs +254 -0
- package/esm2022/lib/components/molecules/refresher/types.mjs +15 -0
- package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +618 -0
- package/esm2022/lib/components/organisms/infinite-list/types.mjs +15 -0
- package/esm2022/lib/components/templates/page-template/page-template.component.mjs +3 -3
- package/esm2022/lib/services/pagination/index.mjs +5 -0
- package/esm2022/lib/services/pagination/pagination.service.mjs +218 -0
- package/esm2022/lib/services/pagination/types.mjs +14 -0
- package/esm2022/lib/services/skeleton/config.mjs +79 -0
- package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +215 -0
- package/esm2022/lib/services/skeleton/index.mjs +16 -0
- package/esm2022/lib/services/skeleton/skeleton.service.mjs +198 -0
- package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +223 -0
- package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +127 -0
- package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +154 -0
- package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +110 -0
- package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +207 -0
- package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +116 -0
- package/esm2022/lib/services/skeleton/types.mjs +11 -0
- package/esm2022/public-api.mjs +12 -1
- package/fesm2022/valtech-components.mjs +3467 -950
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/refresher/refresher.component.d.ts +79 -0
- package/lib/components/molecules/refresher/types.d.ts +86 -0
- package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +111 -0
- package/lib/components/organisms/infinite-list/types.d.ts +197 -0
- package/lib/services/pagination/index.d.ts +2 -0
- package/lib/services/pagination/pagination.service.d.ts +43 -0
- package/lib/services/pagination/types.d.ts +113 -0
- package/lib/services/skeleton/config.d.ts +30 -0
- package/lib/services/skeleton/directives/loading.directive.d.ts +71 -0
- package/lib/services/skeleton/index.d.ts +10 -0
- package/lib/services/skeleton/skeleton.service.d.ts +127 -0
- package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +18 -0
- package/lib/services/skeleton/templates/form-skeleton.component.d.ts +22 -0
- package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +18 -0
- package/lib/services/skeleton/templates/list-skeleton.component.d.ts +17 -0
- package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +20 -0
- package/lib/services/skeleton/templates/table-skeleton.component.d.ts +17 -0
- package/lib/services/skeleton/types.d.ts +111 -0
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Valores por defecto para infinite list.
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_INFINITE_LIST_METADATA = {
|
|
5
|
+
direction: 'bottom',
|
|
6
|
+
pageSize: 20,
|
|
7
|
+
threshold: '100px',
|
|
8
|
+
debounceTime: 300,
|
|
9
|
+
autoLoad: true,
|
|
10
|
+
spinnerType: 'crescent',
|
|
11
|
+
useLoadMoreButton: false,
|
|
12
|
+
showDividers: false,
|
|
13
|
+
enableRefresh: false,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2luZmluaXRlLWxpc3QvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNk5BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQWtDO0lBQzNFLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLE9BQU87SUFDbEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsUUFBUSxFQUFFLElBQUk7SUFDZCxXQUFXLEVBQUUsVUFBVTtJQUN2QixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLFlBQVksRUFBRSxLQUFLO0lBQ25CLGFBQWEsRUFBRSxLQUFLO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTa2VsZXRvblRlbXBsYXRlTmFtZSwgU2tlbGV0b25UZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NrZWxldG9uL3R5cGVzJztcbmltcG9ydCB7IFJlZnJlc2hlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JlZnJlc2hlci90eXBlcyc7XG5cbi8qKlxuICogRGlyZWNjaW9uIGRlIGNhcmdhIGRlIG1hcyBpdGVtcy5cbiAqL1xuZXhwb3J0IHR5cGUgTG9hZERpcmVjdGlvbiA9ICdib3R0b20nIHwgJ3RvcCcgfCAnYm90aCc7XG5cbi8qKlxuICogRXN0YWRvIGRlIGxhIGxpc3RhIGluZmluaXRhLlxuICovXG5leHBvcnQgdHlwZSBJbmZpbml0ZUxpc3RTdGF0ZSA9ICdpZGxlJyB8ICdsb2FkaW5nJyB8ICdlcnJvcicgfCAnY29tcGxldGUnO1xuXG4vKipcbiAqIFBhcmFtZXRyb3MgcGFzYWRvcyBhIGxhIGZ1bmNpb24gZGUgY2FyZ2EuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZFBhcmFtcyB7XG4gIC8qKiBEaXJlY2Npb24gZGUgY2FyZ2EgKi9cbiAgZGlyZWN0aW9uOiAnYm90dG9tJyB8ICd0b3AnO1xuICAvKiogUGFnaW5hIGFjdHVhbCAocGFyYSBwYWdpbmFjaW9uIGJhc2FkYSBlbiBvZmZzZXQpICovXG4gIHBhZ2U6IG51bWJlcjtcbiAgLyoqIEl0ZW1zIHBvciBwYWdpbmEgKi9cbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgLyoqIFVsdGltbyBpdGVtIChwYXJhIHBhZ2luYWNpb24gYmFzYWRhIGVuIGN1cnNvcikgKi9cbiAgbGFzdEl0ZW0/OiB1bmtub3duO1xuICAvKiogUHJpbWVyIGl0ZW0gKHBhcmEgY2FyZ2EgdG9wIGNvbiBjdXJzb3IpICovXG4gIGZpcnN0SXRlbT86IHVua25vd247XG4gIC8qKiBDdXJzb3IgcGVyc29uYWxpemFkbyAoZGVsIExvYWRSZXN1bHQgYW50ZXJpb3IpICovXG4gIGN1cnNvcj86IHVua25vd247XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIGxhIGZ1bmNpb24gZGUgY2FyZ2EuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZFJlc3VsdDxUPiB7XG4gIC8qKiBJdGVtcyBjYXJnYWRvcyAqL1xuICBpdGVtczogVFtdO1xuICAvKiogU2kgaGF5IG1hcyBpdGVtcyBkaXNwb25pYmxlcyAqL1xuICBoYXNNb3JlOiBib29sZWFuO1xuICAvKiogQ3Vyc29yIHBlcnNvbmFsaXphZG8gcGFyYSBwcm94aW1hIGNhcmdhIChvcGNpb25hbCkgKi9cbiAgY3Vyc29yPzogdW5rbm93bjtcbiAgLyoqIEFjdHVhbGl6YWNpb24gZGUgY29udGVvIHRvdGFsIChvcGNpb25hbCkgKi9cbiAgdG90YWxDb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlbCBkYXRhIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmZpbml0ZUxpc3REYXRhU291cmNlPFQ+IHtcbiAgLyoqIEl0ZW1zIGluaWNpYWxlcyAob3BjaW9uYWwgc2kgdXNhIGxvYWRGbikgKi9cbiAgaXRlbXM/OiBUW107XG4gIC8qKiBGdW5jaW9uIHBhcmEgY2FyZ2FyIG1hcyBpdGVtcyAqL1xuICBsb2FkRm4/OiAocGFyYW1zOiBMb2FkUGFyYW1zKSA9PiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHwgUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PjtcbiAgLyoqIEZ1bmNpb24gdHJhY2sgcGFyYSBuZ0ZvciAoZGVmYXVsdDogaW5kZXgpICovXG4gIHRyYWNrQnk/OiAoaW5kZXg6IG51bWJlciwgaXRlbTogVCkgPT4gdW5rbm93bjtcbiAgLyoqIENvbnRlbyB0b3RhbCBzaSBzZSBjb25vY2UgKGhhYmlsaXRhIGluZGljYWRvciBkZSBwcm9ncmVzbykgKi9cbiAgdG90YWxDb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFdmVudG8gZW1pdGlkbyBhbCBjYXJnYXIgbWFzIGl0ZW1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRNb3JlRXZlbnQge1xuICAvKiogUGFyYW1ldHJvcyBkZSBjYXJnYSAqL1xuICBwYXJhbXM6IExvYWRQYXJhbXM7XG4gIC8qKiBMbGFtYXIgY3VhbmRvIGxhIGNhcmdhIGNvbXBsZXRhICovXG4gIGNvbXBsZXRlOiAocmVzdWx0OiBMb2FkUmVzdWx0PHVua25vd24+KSA9PiB2b2lkO1xuICAvKiogTGxhbWFyIGN1YW5kbyBsYSBjYXJnYSBmYWxsYSAqL1xuICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlIGVzdGFkbyB2YWNpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmZpbml0ZUxpc3RFbXB0eVN0YXRlIHtcbiAgLyoqIE5vbWJyZSBkZWwgaWNvbm8gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIFRleHRvIGRlbCB0aXR1bG8gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBUZXh0byBkZWwgbWVuc2FqZSAqL1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICAvKiogVGVtcGxhdGUgcGVyc29uYWxpemFkbyAqL1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICAvLyBTb3BvcnRlIGkxOG5cbiAgdGl0bGVLZXk/OiBzdHJpbmc7XG4gIG1lc3NhZ2VLZXk/OiBzdHJpbmc7XG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlIGVzdGFkbyBkZSBlcnJvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmZpbml0ZUxpc3RFcnJvclN0YXRlIHtcbiAgLyoqIEljb25vIGRlIGVycm9yICovXG4gIGljb24/OiBzdHJpbmc7XG4gIC8qKiBUaXR1bG8gZGVsIGVycm9yICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogTWVuc2FqZSBkZWwgZXJyb3IgKi9cbiAgbWVzc2FnZT86IHN0cmluZztcbiAgLyoqIE1vc3RyYXIgYm90b24gZGUgcmVpbnRlbnRhciAqL1xuICBzaG93UmV0cnk/OiBib29sZWFuO1xuICAvKiogVGV4dG8gZGVsIGJvdG9uIGRlIHJlaW50ZW50YXIgKi9cbiAgcmV0cnlUZXh0Pzogc3RyaW5nO1xuICAvKiogVGVtcGxhdGUgcGVyc29uYWxpemFkbyAqL1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgZXJyb3I6IEVycm9yOyByZXRyeTogKCkgPT4gdm9pZCB9PjtcbiAgLy8gU29wb3J0ZSBpMThuXG4gIHRpdGxlS2V5Pzogc3RyaW5nO1xuICBtZXNzYWdlS2V5Pzogc3RyaW5nO1xuICByZXRyeVRleHRLZXk/OiBzdHJpbmc7XG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmFjaW9uIGRlIHNrZWxldG9uIHBhcmEgY2FyZ2EuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5maW5pdGVMaXN0U2tlbGV0b25Db25maWcge1xuICAvKiogVGVtcGxhdGUgZGUgc2tlbGV0b24gYSB1c2FyICovXG4gIHRlbXBsYXRlPzogU2tlbGV0b25UZW1wbGF0ZU5hbWUgfCBzdHJpbmc7XG4gIC8qKiBOdW1lcm8gZGUgaXRlbXMgc2tlbGV0b24gYSBtb3N0cmFyICovXG4gIGNvdW50PzogbnVtYmVyO1xuICAvKiogVGVtcGxhdGUgcGVyc29uYWxpemFkbyAqL1xuICBjdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICAvKiogQ29uZmlndXJhY2lvbiBhZGljaW9uYWwgKi9cbiAgY29uZmlnPzogU2tlbGV0b25UZW1wbGF0ZUNvbmZpZztcbn1cblxuLyoqXG4gKiBDb250ZXh0byBwYXJhIGVsIHRlbXBsYXRlIGRlIGl0ZW1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZmluaXRlTGlzdEl0ZW1Db250ZXh0PFQ+IHtcbiAgLyoqIEVsIGl0ZW0gYWN0dWFsICovXG4gICRpbXBsaWNpdDogVDtcbiAgLyoqIEluZGljZSBkZWwgaXRlbSAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogU2kgZXMgZWwgcHJpbWVyIGl0ZW0gKi9cbiAgZmlyc3Q6IGJvb2xlYW47XG4gIC8qKiBTaSBlcyBlbCB1bHRpbW8gaXRlbSAqL1xuICBsYXN0OiBib29sZWFuO1xuICAvKiogSXRlbXMgdG90YWxlcyAqL1xuICBjb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIHBhcmEgZWwgY29tcG9uZW50ZSB2YWwtaW5maW5pdGUtbGlzdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmZpbml0ZUxpc3RNZXRhZGF0YTxUID0gdW5rbm93bj4ge1xuICAvKiogQ29uZmlndXJhY2lvbiBkZWwgZGF0YSBzb3VyY2UgKi9cbiAgZGF0YVNvdXJjZTogSW5maW5pdGVMaXN0RGF0YVNvdXJjZTxUPjtcblxuICAvLyA9PT0gQ29tcG9ydGFtaWVudG8gZGUgY2FyZ2EgPT09XG4gIC8qKiBEaXJlY2Npb24gZGUgY2FyZ2EgKi9cbiAgZGlyZWN0aW9uPzogTG9hZERpcmVjdGlvbjtcbiAgLyoqIEl0ZW1zIHBvciBwYWdpbmEgKGRlZmF1bHQ6IDIwKSAqL1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIERpc3RhbmNpYSBkZWwgYm9yZGUgcGFyYSBhY3RpdmFyIGNhcmdhIChkZWZhdWx0OiAnMTAwcHgnKSAqL1xuICB0aHJlc2hvbGQ/OiBzdHJpbmc7XG4gIC8qKiBUaWVtcG8gZGUgZGVib3VuY2UgcGFyYSBldmVudG9zIGRlIGNhcmdhIGVuIG1zIChkZWZhdWx0OiAzMDApICovXG4gIGRlYm91bmNlVGltZT86IG51bWJlcjtcbiAgLyoqIENhcmdhciBwcmltZXJhIHBhZ2luYSBhdXRvbWF0aWNhbWVudGUgYWwgaW5pY2lhbGl6YXIgKGRlZmF1bHQ6IHRydWUpICovXG4gIGF1dG9Mb2FkPzogYm9vbGVhbjtcblxuICAvLyA9PT0gQ29udGVudCBwcm9qZWN0aW9uID09PVxuICAvKiogVGVtcGxhdGUgcGFyYSByZW5kZXJpemFyIGNhZGEgaXRlbSAocmVxdWVyaWRvKSAqL1xuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEluZmluaXRlTGlzdEl0ZW1Db250ZXh0PFQ+PjtcbiAgLyoqIFRlbXBsYXRlIHBhcmEgZWwgaW5kaWNhZG9yIGRlIGNhcmdhIGVuIGJvdHRvbSAqL1xuICBsb2FkaW5nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgLyoqIFRlbXBsYXRlIHBhcmEgZWwgaW5kaWNhZG9yIGRlIGNhcmdhIGVuIHRvcCAqL1xuICB0b3BMb2FkaW5nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvLyA9PT0gRXN0YWRvcyA9PT1cbiAgLyoqIENvbmZpZ3VyYWNpb24gZGUgZXN0YWRvIHZhY2lvICovXG4gIGVtcHR5U3RhdGU/OiBJbmZpbml0ZUxpc3RFbXB0eVN0YXRlO1xuICAvKiogQ29uZmlndXJhY2lvbiBkZSBlc3RhZG8gZGUgZXJyb3IgKi9cbiAgZXJyb3JTdGF0ZT86IEluZmluaXRlTGlzdEVycm9yU3RhdGU7XG4gIC8qKiBDb25maWd1cmFjaW9uIGRlIHNrZWxldG9uIHBhcmEgY2FyZ2EgaW5pY2lhbCAqL1xuICBza2VsZXRvbj86IEluZmluaXRlTGlzdFNrZWxldG9uQ29uZmlnO1xuXG4gIC8vID09PSBJbmRpY2Fkb3JlcyBkZSBjYXJnYSA9PT1cbiAgLyoqIFRpcG8gZGUgc3Bpbm5lciAqL1xuICBzcGlubmVyVHlwZT86ICdjaXJjdWxhcicgfCAnY3Jlc2NlbnQnIHwgJ2RvdHMnIHwgJ2xpbmVzLXNoYXJwJztcbiAgLyoqIENvbG9yIGRlbCBzcGlubmVyICovXG4gIGNvbG9yPzogQ29sb3I7XG4gIC8qKiBVc2FyIGJvdG9uIFwiQ2FyZ2FyIG1hc1wiIGVuIGx1Z2FyIGRlIGF1dG8tY2FyZ2EgKi9cbiAgdXNlTG9hZE1vcmVCdXR0b24/OiBib29sZWFuO1xuICAvKiogVGV4dG8gZGVsIGJvdG9uIFwiQ2FyZ2FyIG1hc1wiICovXG4gIGxvYWRNb3JlVGV4dD86IHN0cmluZztcbiAgLyoqIFRleHRvIGN1YW5kbyBubyBoYXkgbWFzIGl0ZW1zICovXG4gIG5vTW9yZVRleHQ/OiBzdHJpbmc7XG5cbiAgLy8gPT09IEludGVncmFjaW9uIGNvbiBwdWxsIHRvIHJlZnJlc2ggPT09XG4gIC8qKiBIYWJpbGl0YXIgcHVsbC10by1yZWZyZXNoICovXG4gIGVuYWJsZVJlZnJlc2g/OiBib29sZWFuO1xuICAvKiogQ29uZmlndXJhY2lvbiBkZWwgcmVmcmVzaGVyICovXG4gIHJlZnJlc2hDb25maWc/OiBSZWZyZXNoZXJNZXRhZGF0YTtcblxuICAvLyA9PT0gRXN0aWxvcyA9PT1cbiAgLyoqIENsYXNlIENTUyBwYXJhIGVsIGNvbnRlbmVkb3IgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBBbHR1cmEgbWF4aW1hIChoYWJpbGl0YSBzY3JvbGwgaW50ZXJubykgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICAvKiogTW9zdHJhciBkaXZpc29yZXMgZW50cmUgaXRlbXMgKi9cbiAgc2hvd0RpdmlkZXJzPzogYm9vbGVhbjtcblxuICAvLyA9PT0gQWNjZXNpYmlsaWRhZCA9PT1cbiAgLyoqIEFSSUEgbGFiZWwgcGFyYSBsYSBsaXN0YSAqL1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBBUklBIGRlc2NyaXB0aW9uICovXG4gIGFyaWFEZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKiogSWRlbnRpZmljYWRvciB1bmljbyAqL1xuICB0b2tlbj86IHN0cmluZztcblxuICAvLyBTb3BvcnRlIGkxOG5cbiAgbG9hZE1vcmVUZXh0S2V5Pzogc3RyaW5nO1xuICBub01vcmVUZXh0S2V5Pzogc3RyaW5nO1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVmFsb3JlcyBwb3IgZGVmZWN0byBwYXJhIGluZmluaXRlIGxpc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lORklOSVRFX0xJU1RfTUVUQURBVEE6IFBhcnRpYWw8SW5maW5pdGVMaXN0TWV0YWRhdGE+ID0ge1xuICBkaXJlY3Rpb246ICdib3R0b20nLFxuICBwYWdlU2l6ZTogMjAsXG4gIHRocmVzaG9sZDogJzEwMHB4JyxcbiAgZGVib3VuY2VUaW1lOiAzMDAsXG4gIGF1dG9Mb2FkOiB0cnVlLFxuICBzcGlubmVyVHlwZTogJ2NyZXNjZW50JyxcbiAgdXNlTG9hZE1vcmVCdXR0b246IGZhbHNlLFxuICBzaG93RGl2aWRlcnM6IGZhbHNlLFxuICBlbmFibGVSZWZyZXNoOiBmYWxzZSxcbn07XG4iXX0=
|
|
@@ -58,7 +58,7 @@ export class PageTemplateComponent {
|
|
|
58
58
|
@if (props.pageTitle) {
|
|
59
59
|
<ion-header [class.ion-no-border]="true">
|
|
60
60
|
<ion-toolbar style="--background: transparent;">
|
|
61
|
-
<ion-title class="page-title" size="large">{{ props.pageTitle }}</ion-title>
|
|
61
|
+
<ion-title class="page-title" size="large" style="--padding-start: 0; --padding-end: 0;">{{ props.pageTitle }}</ion-title>
|
|
62
62
|
</ion-toolbar>
|
|
63
63
|
</ion-header>
|
|
64
64
|
}
|
|
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
123
123
|
@if (props.pageTitle) {
|
|
124
124
|
<ion-header [class.ion-no-border]="true">
|
|
125
125
|
<ion-toolbar style="--background: transparent;">
|
|
126
|
-
<ion-title class="page-title" size="large">{{ props.pageTitle }}</ion-title>
|
|
126
|
+
<ion-title class="page-title" size="large" style="--padding-start: 0; --padding-end: 0;">{{ props.pageTitle }}</ion-title>
|
|
127
127
|
</ion-toolbar>
|
|
128
128
|
</ion-header>
|
|
129
129
|
}
|
|
@@ -176,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
176
176
|
}], onBack: [{
|
|
177
177
|
type: Output
|
|
178
178
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBb0dILE1BQU0sT0FBTyxxQkFBcUI7SUFuR2xDO1FBb0dVLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUUxQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzdDO0lBUEM7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7K0dBbkJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdJQXJGdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVCxxWEE3REMsWUFBWSwrQkFDWixTQUFTLG9HQUNULFVBQVUsbUZBQ1YsUUFBUSxpRkFDUix1QkFBdUIsbUZBQ3ZCLE9BQU8sd0VBQ1AsTUFBTSxvREFDTixNQUFNLGtUQUNOLGVBQWU7OzRGQXVGTixxQkFBcUI7a0JBbkdqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsUUFBUTt3QkFDUix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixNQUFNO3dCQUNOLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVDs4QkF3Q1EsS0FBSztzQkFBYixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSW9uQ29sLCBJb25HcmlkLCBJb25IZWFkZXIsIElvblJvdywgSW9uVGl0bGUsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEV4cGFuZGFibGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2V4cGFuZGFibGUtdGV4dC9leHBhbmRhYmxlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VUZW1wbGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLXBhZ2UtdGVtcGxhdGVcbiAqXG4gKiBBIHBhZ2UgdGVtcGxhdGUgY29tcG9uZW50IHdpdGggdGl0bGUsIGV4cGFuZGFibGUgZGVzY3JpcHRpb24sXG4gKiBjb250ZW50IHByb2plY3Rpb24sIGFuZCBvcHRpb25hbCBiYWNrIG5hdmlnYXRpb24gYnV0dG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2UtdGVtcGxhdGVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBwYWdlVGl0bGU6ICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICogICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0xlYXJuIGhvdyB0byB1c2Ugb3VyIGNvbXBvbmVudHMuLi4nLFxuICogICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlXG4gKiAgIH1cIlxuICogPlxuICogICA8ZGl2IGV4dHJhLWRlc2NyaXB0aW9uPlxuICogICAgIDxwPkFkZGl0aW9uYWwgaW5mbyBoZXJlPC9wPlxuICogICA8L2Rpdj5cbiAqXG4gKiAgIDwhLS0gTWFpbiBjb250ZW50IC0tPlxuICogICA8bXktY29udGVudD48L215LWNvbnRlbnQ+XG4gKlxuICogICA8ZGl2IGV4dHJhLWZvb3Rlcj5cbiAqICAgICA8cD5Gb290ZXIgY29udGVudDwvcD5cbiAqICAgPC9kaXY+
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBb0dILE1BQU0sT0FBTyxxQkFBcUI7SUFuR2xDO1FBb0dVLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUUxQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzdDO0lBUEM7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7K0dBbkJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdJQXJGdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVCxxWEE3REMsWUFBWSwrQkFDWixTQUFTLG9HQUNULFVBQVUsbUZBQ1YsUUFBUSxpRkFDUix1QkFBdUIsbUZBQ3ZCLE9BQU8sd0VBQ1AsTUFBTSxvREFDTixNQUFNLGtUQUNOLGVBQWU7OzRGQXVGTixxQkFBcUI7a0JBbkdqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsUUFBUTt3QkFDUix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixNQUFNO3dCQUNOLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVDs4QkF3Q1EsS0FBSztzQkFBYixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSW9uQ29sLCBJb25HcmlkLCBJb25IZWFkZXIsIElvblJvdywgSW9uVGl0bGUsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEV4cGFuZGFibGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2V4cGFuZGFibGUtdGV4dC9leHBhbmRhYmxlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VUZW1wbGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLXBhZ2UtdGVtcGxhdGVcbiAqXG4gKiBBIHBhZ2UgdGVtcGxhdGUgY29tcG9uZW50IHdpdGggdGl0bGUsIGV4cGFuZGFibGUgZGVzY3JpcHRpb24sXG4gKiBjb250ZW50IHByb2plY3Rpb24sIGFuZCBvcHRpb25hbCBiYWNrIG5hdmlnYXRpb24gYnV0dG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2UtdGVtcGxhdGVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBwYWdlVGl0bGU6ICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICogICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0xlYXJuIGhvdyB0byB1c2Ugb3VyIGNvbXBvbmVudHMuLi4nLFxuICogICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlXG4gKiAgIH1cIlxuICogPlxuICogICA8ZGl2IGV4dHJhLWRlc2NyaXB0aW9uPlxuICogICAgIDxwPkFkZGl0aW9uYWwgaW5mbyBoZXJlPC9wPlxuICogICA8L2Rpdj5cbiAqXG4gKiAgIDwhLS0gTWFpbiBjb250ZW50IC0tPlxuICogICA8bXktY29udGVudD48L215LWNvbnRlbnQ+XG4gKlxuICogICA8ZGl2IGV4dHJhLWZvb3Rlcj5cbiAqICAgICA8cD5Gb290ZXIgY29udGVudDwvcD5cbiAqICAgPC9kaXY+XG4gKiA8L3ZhbC1wYWdlLXRlbXBsYXRlPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2UgdGVtcGxhdGUgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkJhY2sgLSBFbWl0cyB3aGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2UtdGVtcGxhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvblRpdGxlLFxuICAgIEV4cGFuZGFibGVUZXh0Q29tcG9uZW50LFxuICAgIElvbkdyaWQsXG4gICAgSW9uUm93LFxuICAgIElvbkNvbCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChwcm9wcy5wYWdlVGl0bGUpIHtcbiAgICAgIDxpb24taGVhZGVyIFtjbGFzcy5pb24tbm8tYm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgPGlvbi10b29sYmFyIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcIj5cbiAgICAgICAgICA8aW9uLXRpdGxlIGNsYXNzPVwicGFnZS10aXRsZVwiIHNpemU9XCJsYXJnZVwiIHN0eWxlPVwiLS1wYWRkaW5nLXN0YXJ0OiAwOyAtLXBhZGRpbmctZW5kOiAwO1wiPnt7IHByb3BzLnBhZ2VUaXRsZSB9fTwvaW9uLXRpdGxlPlxuICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgPC9pb24taGVhZGVyPlxuICAgIH1cbiAgICA8aW9uLWdyaWQ+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGRlc2NyaXB0aW9uLXJvd1wiPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTBcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgIEBpZiAocHJvcHMucGFnZURlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx2YWwtZXhwYW5kYWJsZS10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxpbWl0OiBwcm9wcy5kZXNjcmlwdGlvbkxpbWl0IHx8IDE4MCxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnBhZ2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBwcm9wcy5kZXNjcmlwdGlvbkNvbG9yIHx8ICdkYXJrJyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0JhY2tCdXR0b24pIHtcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlciBiYWNrLXJvd1wiPlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbWQ9XCIxMFwiIHNpemUtbGc9XCI4XCI+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0ZXh0OiBwcm9wcy5iYWNrQnV0dG9uVGV4dCB8fCAnVm9sdmVyJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ2Fycm93LWJhY2stb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICBzbG90OiAnc3RhcnQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQmFjaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICB9XG4gICAgPC9pb24tZ3JpZD5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLnBhZ2UtdGl0bGUge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmFjay1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuYmFjay1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xuXG4gIC8qKlxuICAgKiBQYWdlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZVRlbXBsYXRlTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYmFjayBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgaGFuZGxlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmFjay5lbWl0KCk7XG4gICAgdGhpcy5uYXYuYmFjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Types
|
|
2
|
+
export { createInitialPaginationState, } from './types';
|
|
3
|
+
// Service
|
|
4
|
+
export { PaginationService } from './pagination.service';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3BhZ2luYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBUTtBQUNSLE9BQU8sRUFPTCw0QkFBNEIsR0FDN0IsTUFBTSxTQUFTLENBQUM7QUFFakIsVUFBVTtBQUNWLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcbmV4cG9ydCB7XG4gIFBhZ2luYXRpb25TdHJhdGVneSxcbiAgUGFnaW5hdGlvblN0YXRlLFxuICBQYWdpbmF0aW9uTG9hZFBhcmFtcyxcbiAgUGFnaW5hdGlvbkxvYWRSZXN1bHQsXG4gIFBhZ2luYXRpb25Db25maWcsXG4gIFBhZ2luYXRpb25Db250cm9sbGVyLFxuICBjcmVhdGVJbml0aWFsUGFnaW5hdGlvblN0YXRlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLy8gU2VydmljZVxuZXhwb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { Injectable, signal, computed } from '@angular/core';
|
|
2
|
+
import { firstValueFrom, isObservable } from 'rxjs';
|
|
3
|
+
import { createInitialPaginationState, } from './types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Implementacion del controlador de paginacion.
|
|
7
|
+
*/
|
|
8
|
+
class PaginationControllerImpl {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this._state = signal(createInitialPaginationState(this.config.pageSize ?? 20, this.config.initialItems));
|
|
12
|
+
this.state = this._state.asReadonly();
|
|
13
|
+
this.items = computed(() => this._state().items);
|
|
14
|
+
this.isLoading = computed(() => this._state().isLoading);
|
|
15
|
+
this.hasMore = computed(() => this._state().hasMore);
|
|
16
|
+
this.error = computed(() => this._state().error ?? null);
|
|
17
|
+
this.currentPage = computed(() => this._state().page);
|
|
18
|
+
this.total = computed(() => this._state().total);
|
|
19
|
+
}
|
|
20
|
+
async loadNext() {
|
|
21
|
+
const currentState = this._state();
|
|
22
|
+
if (currentState.isLoading || !currentState.hasMore)
|
|
23
|
+
return;
|
|
24
|
+
this._state.update((s) => ({ ...s, isLoading: true, error: undefined }));
|
|
25
|
+
try {
|
|
26
|
+
const params = {
|
|
27
|
+
strategy: this.config.strategy,
|
|
28
|
+
page: currentState.page,
|
|
29
|
+
pageSize: currentState.pageSize,
|
|
30
|
+
cursor: currentState.nextCursor,
|
|
31
|
+
direction: 'forward',
|
|
32
|
+
};
|
|
33
|
+
const result = await this.executeLoad(params);
|
|
34
|
+
this._state.update((s) => ({
|
|
35
|
+
...s,
|
|
36
|
+
items: [...s.items, ...result.items],
|
|
37
|
+
page: s.page + 1,
|
|
38
|
+
hasMore: result.hasMore,
|
|
39
|
+
total: result.total ?? s.total,
|
|
40
|
+
nextCursor: result.nextCursor,
|
|
41
|
+
prevCursor: result.prevCursor ?? s.prevCursor,
|
|
42
|
+
isLoading: false,
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
this._state.update((s) => ({
|
|
47
|
+
...s,
|
|
48
|
+
isLoading: false,
|
|
49
|
+
error: err,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async loadPrevious() {
|
|
54
|
+
const currentState = this._state();
|
|
55
|
+
if (currentState.isLoading || currentState.page <= 0)
|
|
56
|
+
return;
|
|
57
|
+
this._state.update((s) => ({ ...s, isLoading: true, error: undefined }));
|
|
58
|
+
try {
|
|
59
|
+
const params = {
|
|
60
|
+
strategy: this.config.strategy,
|
|
61
|
+
page: currentState.page - 1,
|
|
62
|
+
pageSize: currentState.pageSize,
|
|
63
|
+
cursor: currentState.prevCursor,
|
|
64
|
+
direction: 'backward',
|
|
65
|
+
};
|
|
66
|
+
const result = await this.executeLoad(params);
|
|
67
|
+
this._state.update((s) => ({
|
|
68
|
+
...s,
|
|
69
|
+
items: [...result.items, ...s.items],
|
|
70
|
+
page: s.page - 1,
|
|
71
|
+
prevCursor: result.prevCursor,
|
|
72
|
+
isLoading: false,
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
this._state.update((s) => ({
|
|
77
|
+
...s,
|
|
78
|
+
isLoading: false,
|
|
79
|
+
error: err,
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async refresh() {
|
|
84
|
+
this._state.update((s) => ({
|
|
85
|
+
...s,
|
|
86
|
+
items: [],
|
|
87
|
+
page: 0,
|
|
88
|
+
hasMore: true,
|
|
89
|
+
nextCursor: undefined,
|
|
90
|
+
prevCursor: undefined,
|
|
91
|
+
isLoading: true,
|
|
92
|
+
error: undefined,
|
|
93
|
+
}));
|
|
94
|
+
try {
|
|
95
|
+
const params = {
|
|
96
|
+
strategy: this.config.strategy,
|
|
97
|
+
page: 0,
|
|
98
|
+
pageSize: this._state().pageSize,
|
|
99
|
+
direction: 'forward',
|
|
100
|
+
};
|
|
101
|
+
const result = await this.executeLoad(params);
|
|
102
|
+
this._state.update((s) => ({
|
|
103
|
+
...s,
|
|
104
|
+
items: result.items,
|
|
105
|
+
page: 1,
|
|
106
|
+
hasMore: result.hasMore,
|
|
107
|
+
total: result.total,
|
|
108
|
+
nextCursor: result.nextCursor,
|
|
109
|
+
isLoading: false,
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
this._state.update((s) => ({
|
|
114
|
+
...s,
|
|
115
|
+
isLoading: false,
|
|
116
|
+
error: err,
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
reset() {
|
|
121
|
+
this._state.set(createInitialPaginationState(this.config.pageSize ?? 20, this.config.initialItems));
|
|
122
|
+
}
|
|
123
|
+
updateItem(predicate, updates) {
|
|
124
|
+
this._state.update((s) => ({
|
|
125
|
+
...s,
|
|
126
|
+
items: s.items.map((item) => (predicate(item) ? { ...item, ...updates } : item)),
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
removeItem(predicate) {
|
|
130
|
+
this._state.update((s) => ({
|
|
131
|
+
...s,
|
|
132
|
+
items: s.items.filter((item) => !predicate(item)),
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
prependItems(items) {
|
|
136
|
+
this._state.update((s) => ({
|
|
137
|
+
...s,
|
|
138
|
+
items: [...items, ...s.items],
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
appendItems(items) {
|
|
142
|
+
this._state.update((s) => ({
|
|
143
|
+
...s,
|
|
144
|
+
items: [...s.items, ...items],
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
async executeLoad(params) {
|
|
148
|
+
const result = this.config.loadFn(params);
|
|
149
|
+
if (isObservable(result)) {
|
|
150
|
+
return await firstValueFrom(result);
|
|
151
|
+
}
|
|
152
|
+
return await result;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Servicio para crear controladores de paginacion reutilizables.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // En un componente
|
|
160
|
+
* pagination = inject(PaginationService);
|
|
161
|
+
*
|
|
162
|
+
* usersController = this.pagination.createController<User>({
|
|
163
|
+
* strategy: 'offset',
|
|
164
|
+
* pageSize: 20,
|
|
165
|
+
* loadFn: (params) => this.userService.getUsers(params.page, params.pageSize)
|
|
166
|
+
* });
|
|
167
|
+
*
|
|
168
|
+
* // En el template
|
|
169
|
+
* @for (user of usersController.items(); track user.id) {
|
|
170
|
+
* <app-user-card [user]="user"></app-user-card>
|
|
171
|
+
* }
|
|
172
|
+
*
|
|
173
|
+
* @if (usersController.hasMore()) {
|
|
174
|
+
* <ion-button (click)="usersController.loadNext()">Cargar mas</ion-button>
|
|
175
|
+
* }
|
|
176
|
+
*/
|
|
177
|
+
export class PaginationService {
|
|
178
|
+
/**
|
|
179
|
+
* Crea un controlador de paginacion para una fuente de datos.
|
|
180
|
+
*
|
|
181
|
+
* @param config Configuracion del controlador
|
|
182
|
+
* @returns Controlador de paginacion
|
|
183
|
+
*/
|
|
184
|
+
createController(config) {
|
|
185
|
+
return new PaginationControllerImpl(config);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Crea un controlador simple para arrays estaticos con paginacion local.
|
|
189
|
+
*
|
|
190
|
+
* @param items Array completo de items
|
|
191
|
+
* @param pageSize Tamano de pagina
|
|
192
|
+
* @returns Controlador de paginacion
|
|
193
|
+
*/
|
|
194
|
+
createLocalController(items, pageSize = 20) {
|
|
195
|
+
let currentIndex = 0;
|
|
196
|
+
return this.createController({
|
|
197
|
+
strategy: 'offset',
|
|
198
|
+
pageSize,
|
|
199
|
+
loadFn: async (params) => {
|
|
200
|
+
const start = params.page * params.pageSize;
|
|
201
|
+
const end = start + params.pageSize;
|
|
202
|
+
const pageItems = items.slice(start, end);
|
|
203
|
+
return {
|
|
204
|
+
items: pageItems,
|
|
205
|
+
hasMore: end < items.length,
|
|
206
|
+
total: items.length,
|
|
207
|
+
};
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
212
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationService, providedIn: 'root' }); }
|
|
213
|
+
}
|
|
214
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationService, decorators: [{
|
|
215
|
+
type: Injectable,
|
|
216
|
+
args: [{ providedIn: 'root' }]
|
|
217
|
+
}] });
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQU1MLDRCQUE0QixHQUM3QixNQUFNLFNBQVMsQ0FBQzs7QUFFakI7O0dBRUc7QUFDSCxNQUFNLHdCQUF3QjtJQWE1QixZQUE2QixNQUEyQjtRQUEzQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVp2QyxXQUFNLEdBQUcsTUFBTSxDQUM5Qiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FDbkYsQ0FBQztRQUVPLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFTSxDQUFDO0lBRTVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLElBQUksWUFBWSxDQUFDLFNBQVMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU1RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBeUI7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzlCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtnQkFDdkIsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO2dCQUMvQixNQUFNLEVBQUUsWUFBWSxDQUFDLFVBQVU7Z0JBQy9CLFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQztnQkFDSixLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUNoQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLO2dCQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7Z0JBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVO2dCQUM3QyxTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQztnQkFDSixTQUFTLEVBQUUsS0FBSztnQkFDaEIsS0FBSyxFQUFFLEdBQVk7YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxJQUFJLFlBQVksQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQUUsT0FBTztRQUU3RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBeUI7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzlCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQzNCLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtnQkFDL0IsTUFBTSxFQUFFLFlBQVksQ0FBQyxVQUFVO2dCQUMvQixTQUFTLEVBQUUsVUFBVTthQUN0QixDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QixHQUFHLENBQUM7Z0JBQ0osS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDcEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2dCQUM3QixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQztnQkFDSixTQUFTLEVBQUUsS0FBSztnQkFDaEIsS0FBSyxFQUFFLEdBQVk7YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsR0FBRyxDQUFDO1lBQ0osS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsQ0FBQztZQUNQLE9BQU8sRUFBRSxJQUFJO1lBQ2IsVUFBVSxFQUFFLFNBQVM7WUFDckIsVUFBVSxFQUFFLFNBQVM7WUFDckIsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUF5QjtnQkFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtnQkFDOUIsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRO2dCQUNoQyxTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QixHQUFHLENBQUM7Z0JBQ0osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2dCQUM3QixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQztnQkFDSixTQUFTLEVBQUUsS0FBSztnQkFDaEIsS0FBSyxFQUFFLEdBQVk7YUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FDbkYsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBK0IsRUFBRSxPQUFtQjtRQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUErQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEdBQUcsQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUM5QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUE0QjtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sTUFBTSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sTUFBTSxNQUFNLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBSSxNQUEyQjtRQUM3QyxPQUFPLElBQUksd0JBQXdCLENBQUksTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFJLEtBQVUsRUFBRSxRQUFRLEdBQUcsRUFBRTtRQUNoRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUk7WUFDOUIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUTtZQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDNUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUUxQyxPQUFPO29CQUNMLEtBQUssRUFBRSxTQUFTO29CQUNoQixPQUFPLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNO29CQUMzQixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07aUJBQ3BCLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FwQ1UsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgY29tcHV0ZWQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUGFnaW5hdGlvbkNvbmZpZyxcbiAgUGFnaW5hdGlvbkNvbnRyb2xsZXIsXG4gIFBhZ2luYXRpb25Mb2FkUGFyYW1zLFxuICBQYWdpbmF0aW9uTG9hZFJlc3VsdCxcbiAgUGFnaW5hdGlvblN0YXRlLFxuICBjcmVhdGVJbml0aWFsUGFnaW5hdGlvblN0YXRlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBJbXBsZW1lbnRhY2lvbiBkZWwgY29udHJvbGFkb3IgZGUgcGFnaW5hY2lvbi5cbiAqL1xuY2xhc3MgUGFnaW5hdGlvbkNvbnRyb2xsZXJJbXBsPFQ+IGltcGxlbWVudHMgUGFnaW5hdGlvbkNvbnRyb2xsZXI8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IHNpZ25hbDxQYWdpbmF0aW9uU3RhdGU8VD4+KFxuICAgIGNyZWF0ZUluaXRpYWxQYWdpbmF0aW9uU3RhdGUodGhpcy5jb25maWcucGFnZVNpemUgPz8gMjAsIHRoaXMuY29uZmlnLmluaXRpYWxJdGVtcylcbiAgKTtcblxuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zdGF0ZSgpLml0ZW1zKTtcbiAgcmVhZG9ubHkgaXNMb2FkaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5pc0xvYWRpbmcpO1xuICByZWFkb25seSBoYXNNb3JlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5oYXNNb3JlKTtcbiAgcmVhZG9ubHkgZXJyb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zdGF0ZSgpLmVycm9yID8/IG51bGwpO1xuICByZWFkb25seSBjdXJyZW50UGFnZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkucGFnZSk7XG4gIHJlYWRvbmx5IHRvdGFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS50b3RhbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb25maWc6IFBhZ2luYXRpb25Db25maWc8VD4pIHt9XG5cbiAgYXN5bmMgbG9hZE5leHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5fc3RhdGUoKTtcbiAgICBpZiAoY3VycmVudFN0YXRlLmlzTG9hZGluZyB8fCAhY3VycmVudFN0YXRlLmhhc01vcmUpIHJldHVybjtcblxuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHsgLi4ucywgaXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogdW5kZWZpbmVkIH0pKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJhbXM6IFBhZ2luYXRpb25Mb2FkUGFyYW1zID0ge1xuICAgICAgICBzdHJhdGVneTogdGhpcy5jb25maWcuc3RyYXRlZ3ksXG4gICAgICAgIHBhZ2U6IGN1cnJlbnRTdGF0ZS5wYWdlLFxuICAgICAgICBwYWdlU2l6ZTogY3VycmVudFN0YXRlLnBhZ2VTaXplLFxuICAgICAgICBjdXJzb3I6IGN1cnJlbnRTdGF0ZS5uZXh0Q3Vyc29yLFxuICAgICAgICBkaXJlY3Rpb246ICdmb3J3YXJkJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZUxvYWQocGFyYW1zKTtcblxuICAgICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoe1xuICAgICAgICAuLi5zLFxuICAgICAgICBpdGVtczogWy4uLnMuaXRlbXMsIC4uLnJlc3VsdC5pdGVtc10sXG4gICAgICAgIHBhZ2U6IHMucGFnZSArIDEsXG4gICAgICAgIGhhc01vcmU6IHJlc3VsdC5oYXNNb3JlLFxuICAgICAgICB0b3RhbDogcmVzdWx0LnRvdGFsID8/IHMudG90YWwsXG4gICAgICAgIG5leHRDdXJzb3I6IHJlc3VsdC5uZXh0Q3Vyc29yLFxuICAgICAgICBwcmV2Q3Vyc29yOiByZXN1bHQucHJldkN1cnNvciA/PyBzLnByZXZDdXJzb3IsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICB9KSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLl9zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAgIC4uLnMsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnIgYXMgRXJyb3IsXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZFByZXZpb3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuX3N0YXRlKCk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5pc0xvYWRpbmcgfHwgY3VycmVudFN0YXRlLnBhZ2UgPD0gMCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoeyAuLi5zLCBpc0xvYWRpbmc6IHRydWUsIGVycm9yOiB1bmRlZmluZWQgfSkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcmFtczogUGFnaW5hdGlvbkxvYWRQYXJhbXMgPSB7XG4gICAgICAgIHN0cmF0ZWd5OiB0aGlzLmNvbmZpZy5zdHJhdGVneSxcbiAgICAgICAgcGFnZTogY3VycmVudFN0YXRlLnBhZ2UgLSAxLFxuICAgICAgICBwYWdlU2l6ZTogY3VycmVudFN0YXRlLnBhZ2VTaXplLFxuICAgICAgICBjdXJzb3I6IGN1cnJlbnRTdGF0ZS5wcmV2Q3Vyc29yLFxuICAgICAgICBkaXJlY3Rpb246ICdiYWNrd2FyZCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVMb2FkKHBhcmFtcyk7XG5cbiAgICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXRlbXM6IFsuLi5yZXN1bHQuaXRlbXMsIC4uLnMuaXRlbXNdLFxuICAgICAgICBwYWdlOiBzLnBhZ2UgLSAxLFxuICAgICAgICBwcmV2Q3Vyc29yOiByZXN1bHQucHJldkN1cnNvcixcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVyciBhcyBFcnJvcixcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBpdGVtczogW10sXG4gICAgICBwYWdlOiAwLFxuICAgICAgaGFzTW9yZTogdHJ1ZSxcbiAgICAgIG5leHRDdXJzb3I6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZDdXJzb3I6IHVuZGVmaW5lZCxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiB1bmRlZmluZWQsXG4gICAgfSkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcmFtczogUGFnaW5hdGlvbkxvYWRQYXJhbXMgPSB7XG4gICAgICAgIHN0cmF0ZWd5OiB0aGlzLmNvbmZpZy5zdHJhdGVneSxcbiAgICAgICAgcGFnZTogMCxcbiAgICAgICAgcGFnZVNpemU6IHRoaXMuX3N0YXRlKCkucGFnZVNpemUsXG4gICAgICAgIGRpcmVjdGlvbjogJ2ZvcndhcmQnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5leGVjdXRlTG9hZChwYXJhbXMpO1xuXG4gICAgICB0aGlzLl9zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAgIC4uLnMsXG4gICAgICAgIGl0ZW1zOiByZXN1bHQuaXRlbXMsXG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIGhhc01vcmU6IHJlc3VsdC5oYXNNb3JlLFxuICAgICAgICB0b3RhbDogcmVzdWx0LnRvdGFsLFxuICAgICAgICBuZXh0Q3Vyc29yOiByZXN1bHQubmV4dEN1cnNvcixcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVyciBhcyBFcnJvcixcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS5zZXQoXG4gICAgICBjcmVhdGVJbml0aWFsUGFnaW5hdGlvblN0YXRlKHRoaXMuY29uZmlnLnBhZ2VTaXplID8/IDIwLCB0aGlzLmNvbmZpZy5pbml0aWFsSXRlbXMpXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUl0ZW0ocHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbiwgdXBkYXRlczogUGFydGlhbDxUPik6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBpdGVtczogcy5pdGVtcy5tYXAoKGl0ZW0pID0+IChwcmVkaWNhdGUoaXRlbSkgPyB7IC4uLml0ZW0sIC4uLnVwZGF0ZXMgfSA6IGl0ZW0pKSxcbiAgICB9KSk7XG4gIH1cblxuICByZW1vdmVJdGVtKHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgaXRlbXM6IHMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhcHJlZGljYXRlKGl0ZW0pKSxcbiAgICB9KSk7XG4gIH1cblxuICBwcmVwZW5kSXRlbXMoaXRlbXM6IFRbXSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBpdGVtczogWy4uLml0ZW1zLCAuLi5zLml0ZW1zXSxcbiAgICB9KSk7XG4gIH1cblxuICBhcHBlbmRJdGVtcyhpdGVtczogVFtdKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIGl0ZW1zOiBbLi4ucy5pdGVtcywgLi4uaXRlbXNdLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXhlY3V0ZUxvYWQocGFyYW1zOiBQYWdpbmF0aW9uTG9hZFBhcmFtcyk6IFByb21pc2U8UGFnaW5hdGlvbkxvYWRSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNvbmZpZy5sb2FkRm4ocGFyYW1zKTtcblxuICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCByZXN1bHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIGNyZWFyIGNvbnRyb2xhZG9yZXMgZGUgcGFnaW5hY2lvbiByZXV0aWxpemFibGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbiB1biBjb21wb25lbnRlXG4gKiBwYWdpbmF0aW9uID0gaW5qZWN0KFBhZ2luYXRpb25TZXJ2aWNlKTtcbiAqXG4gKiB1c2Vyc0NvbnRyb2xsZXIgPSB0aGlzLnBhZ2luYXRpb24uY3JlYXRlQ29udHJvbGxlcjxVc2VyPih7XG4gKiAgIHN0cmF0ZWd5OiAnb2Zmc2V0JyxcbiAqICAgcGFnZVNpemU6IDIwLFxuICogICBsb2FkRm46IChwYXJhbXMpID0+IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlcnMocGFyYW1zLnBhZ2UsIHBhcmFtcy5wYWdlU2l6ZSlcbiAqIH0pO1xuICpcbiAqIC8vIEVuIGVsIHRlbXBsYXRlXG4gKiBAZm9yICh1c2VyIG9mIHVzZXJzQ29udHJvbGxlci5pdGVtcygpOyB0cmFjayB1c2VyLmlkKSB7XG4gKiAgIDxhcHAtdXNlci1jYXJkIFt1c2VyXT1cInVzZXJcIj48L2FwcC11c2VyLWNhcmQ+XG4gKiB9XG4gKlxuICogQGlmICh1c2Vyc0NvbnRyb2xsZXIuaGFzTW9yZSgpKSB7XG4gKiAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ1c2Vyc0NvbnRyb2xsZXIubG9hZE5leHQoKVwiPkNhcmdhciBtYXM8L2lvbi1idXR0b24+XG4gKiB9XG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblNlcnZpY2Uge1xuICAvKipcbiAgICogQ3JlYSB1biBjb250cm9sYWRvciBkZSBwYWdpbmFjaW9uIHBhcmEgdW5hIGZ1ZW50ZSBkZSBkYXRvcy5cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmFjaW9uIGRlbCBjb250cm9sYWRvclxuICAgKiBAcmV0dXJucyBDb250cm9sYWRvciBkZSBwYWdpbmFjaW9uXG4gICAqL1xuICBjcmVhdGVDb250cm9sbGVyPFQ+KGNvbmZpZzogUGFnaW5hdGlvbkNvbmZpZzxUPik6IFBhZ2luYXRpb25Db250cm9sbGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IFBhZ2luYXRpb25Db250cm9sbGVySW1wbDxUPihjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWEgdW4gY29udHJvbGFkb3Igc2ltcGxlIHBhcmEgYXJyYXlzIGVzdGF0aWNvcyBjb24gcGFnaW5hY2lvbiBsb2NhbC5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1zIEFycmF5IGNvbXBsZXRvIGRlIGl0ZW1zXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSBUYW1hbm8gZGUgcGFnaW5hXG4gICAqIEByZXR1cm5zIENvbnRyb2xhZG9yIGRlIHBhZ2luYWNpb25cbiAgICovXG4gIGNyZWF0ZUxvY2FsQ29udHJvbGxlcjxUPihpdGVtczogVFtdLCBwYWdlU2l6ZSA9IDIwKTogUGFnaW5hdGlvbkNvbnRyb2xsZXI8VD4ge1xuICAgIGxldCBjdXJyZW50SW5kZXggPSAwO1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29udHJvbGxlcjxUPih7XG4gICAgICBzdHJhdGVneTogJ29mZnNldCcsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGxvYWRGbjogYXN5bmMgKHBhcmFtcykgPT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IHBhcmFtcy5wYWdlICogcGFyYW1zLnBhZ2VTaXplO1xuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIHBhcmFtcy5wYWdlU2l6ZTtcbiAgICAgICAgY29uc3QgcGFnZUl0ZW1zID0gaXRlbXMuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpdGVtczogcGFnZUl0ZW1zLFxuICAgICAgICAgIGhhc01vcmU6IGVuZCA8IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICB0b3RhbDogaXRlbXMubGVuZ3RoLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado inicial para controladores de paginacion.
|
|
3
|
+
*/
|
|
4
|
+
export function createInitialPaginationState(pageSize, initialItems = []) {
|
|
5
|
+
return {
|
|
6
|
+
items: initialItems,
|
|
7
|
+
page: 0,
|
|
8
|
+
pageSize,
|
|
9
|
+
hasMore: true,
|
|
10
|
+
isLoading: false,
|
|
11
|
+
error: undefined,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3BhZ2luYXRpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUhBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUMxQyxRQUFnQixFQUNoQixlQUFvQixFQUFFO0lBRXRCLE9BQU87UUFDTCxLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsQ0FBQztRQUNQLFFBQVE7UUFDUixPQUFPLEVBQUUsSUFBSTtRQUNiLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxTQUFTO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogRXN0cmF0ZWdpYSBkZSBwYWdpbmFjaW9uLlxuICovXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uU3RyYXRlZ3kgPSAnb2Zmc2V0JyB8ICdjdXJzb3InIHwgJ3BhZ2UnO1xuXG4vKipcbiAqIEVzdGFkbyBkZSBwYWdpbmFjaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25TdGF0ZTxUPiB7XG4gIC8qKiBJdGVtcyBhY3R1YWxlcyAqL1xuICBpdGVtczogVFtdO1xuICAvKiogUGFnaW5hIGFjdHVhbCAocGFyYSBlc3RyYXRlZ2lhIG9mZnNldC9wYWdlKSAqL1xuICBwYWdlOiBudW1iZXI7XG4gIC8qKiBUYW1hbm8gZGUgcGFnaW5hICovXG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIC8qKiBDb250ZW8gdG90YWwgKHNpIHNlIGNvbm9jZSkgKi9cbiAgdG90YWw/OiBudW1iZXI7XG4gIC8qKiBDdXJzb3IgcGFyYSBzaWd1aWVudGUgcGFnaW5hIChwYXJhIGVzdHJhdGVnaWEgY3Vyc29yKSAqL1xuICBuZXh0Q3Vyc29yPzogdW5rbm93bjtcbiAgLyoqIEN1cnNvciBwYXJhIHBhZ2luYSBhbnRlcmlvciAqL1xuICBwcmV2Q3Vyc29yPzogdW5rbm93bjtcbiAgLyoqIFNpIGV4aXN0ZW4gbWFzIGl0ZW1zICovXG4gIGhhc01vcmU6IGJvb2xlYW47XG4gIC8qKiBFc3RhZG8gZGUgY2FyZ2EgKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogRXN0YWRvIGRlIGVycm9yICovXG4gIGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogUGFyYW1ldHJvcyBwYXJhIGZ1bmNpb24gZGUgY2FyZ2EuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkxvYWRQYXJhbXMge1xuICAvKiogRXN0cmF0ZWdpYSBkZSBwYWdpbmFjaW9uICovXG4gIHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3k7XG4gIC8qKiBOdW1lcm8gZGUgcGFnaW5hICovXG4gIHBhZ2U6IG51bWJlcjtcbiAgLyoqIFRhbWFubyBkZSBwYWdpbmEgKi9cbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgLyoqIEN1cnNvciAocGFyYSBlc3RyYXRlZ2lhIGN1cnNvcikgKi9cbiAgY3Vyc29yPzogdW5rbm93bjtcbiAgLyoqIERpcmVjY2lvbiBkZSBjYXJnYSAqL1xuICBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrd2FyZCc7XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIGZ1bmNpb24gZGUgY2FyZ2EuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkxvYWRSZXN1bHQ8VD4ge1xuICAvKiogSXRlbXMgY2FyZ2Fkb3MgKi9cbiAgaXRlbXM6IFRbXTtcbiAgLyoqIFNpIGhheSBtYXMgaXRlbXMgKi9cbiAgaGFzTW9yZTogYm9vbGVhbjtcbiAgLyoqIFRvdGFsIGRlIGl0ZW1zIChvcGNpb25hbCkgKi9cbiAgdG90YWw/OiBudW1iZXI7XG4gIC8qKiBDdXJzb3IgcGFyYSBzaWd1aWVudGUgcGFnaW5hICovXG4gIG5leHRDdXJzb3I/OiB1bmtub3duO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hIGFudGVyaW9yICovXG4gIHByZXZDdXJzb3I/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpb24gcGFyYSBjcmVhciB1biBjb250cm9sYWRvciBkZSBwYWdpbmFjaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db25maWc8VD4ge1xuICAvKiogRXN0cmF0ZWdpYSBkZSBwYWdpbmFjaW9uICovXG4gIHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3k7XG4gIC8qKiBUYW1hbm8gZGUgcGFnaW5hICovXG4gIHBhZ2VTaXplPzogbnVtYmVyO1xuICAvKiogSXRlbXMgaW5pY2lhbGVzIChvcGNpb25hbCkgKi9cbiAgaW5pdGlhbEl0ZW1zPzogVFtdO1xuICAvKiogRnVuY2lvbiBkZSBjYXJnYSAqL1xuICBsb2FkRm46IChwYXJhbXM6IFBhZ2luYXRpb25Mb2FkUGFyYW1zKSA9PiBPYnNlcnZhYmxlPFBhZ2luYXRpb25Mb2FkUmVzdWx0PFQ+PiB8IFByb21pc2U8UGFnaW5hdGlvbkxvYWRSZXN1bHQ8VD4+O1xuICAvKiogRnVuY2lvbiBkZSB0cmFja2luZyBwYXJhIGl0ZW1zICovXG4gIHRyYWNrQnk/OiAoaXRlbTogVCkgPT4gdW5rbm93bjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVsIGNvbnRyb2xhZG9yIGRlIHBhZ2luYWNpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkNvbnRyb2xsZXI8VD4ge1xuICAvKiogRXN0YWRvIHJlYWN0aXZvIGNvbW8gc2lnbmFsICovXG4gIHN0YXRlOiBTaWduYWw8UGFnaW5hdGlvblN0YXRlPFQ+PjtcbiAgLyoqIFNpZ25hbCBkZSBpdGVtcyAoYWNjZXNzb3IgZGUgY29udmVuaWVuY2lhKSAqL1xuICBpdGVtczogU2lnbmFsPFRbXT47XG4gIC8qKiBTaWduYWwgZGUgY2FyZ2EgKi9cbiAgaXNMb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG4gIC8qKiBTaWduYWwgZGUgbWFzIGl0ZW1zICovXG4gIGhhc01vcmU6IFNpZ25hbDxib29sZWFuPjtcbiAgLyoqIFNpZ25hbCBkZSBlcnJvciAqL1xuICBlcnJvcjogU2lnbmFsPEVycm9yIHwgbnVsbD47XG4gIC8qKiBTaWduYWwgZGUgcGFnaW5hIGFjdHVhbCAqL1xuICBjdXJyZW50UGFnZTogU2lnbmFsPG51bWJlcj47XG4gIC8qKiBTaWduYWwgZGUgdG90YWwgKi9cbiAgdG90YWw6IFNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+O1xuXG4gIC8qKiBDYXJnYXIgc2lndWllbnRlIHBhZ2luYSAqL1xuICBsb2FkTmV4dCgpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogQ2FyZ2FyIHBhZ2luYSBhbnRlcmlvciAoc2kgc29wb3J0YWRvKSAqL1xuICBsb2FkUHJldmlvdXMoKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqIFJlZnJlc2ggKHJlY2FyZ2FyIGRlc2RlIGluaWNpbykgKi9cbiAgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogUmVzZXQgYSBlc3RhZG8gaW5pY2lhbCAqL1xuICByZXNldCgpOiB2b2lkO1xuICAvKiogQWN0dWFsaXphciB1biBpdGVtICovXG4gIHVwZGF0ZUl0ZW0ocHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbiwgdXBkYXRlczogUGFydGlhbDxUPik6IHZvaWQ7XG4gIC8qKiBSZW1vdmVyIHVuIGl0ZW0gKi9cbiAgcmVtb3ZlSXRlbShwcmVkaWNhdGU6IChpdGVtOiBUKSA9PiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEFncmVnYXIgaXRlbXMgYWwgaW5pY2lvICovXG4gIHByZXBlbmRJdGVtcyhpdGVtczogVFtdKTogdm9pZDtcbiAgLyoqIEFncmVnYXIgaXRlbXMgYWwgZmluYWwgKi9cbiAgYXBwZW5kSXRlbXMoaXRlbXM6IFRbXSk6IHZvaWQ7XG59XG5cbi8qKlxuICogRXN0YWRvIGluaWNpYWwgcGFyYSBjb250cm9sYWRvcmVzIGRlIHBhZ2luYWNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbml0aWFsUGFnaW5hdGlvblN0YXRlPFQ+KFxuICBwYWdlU2l6ZTogbnVtYmVyLFxuICBpbml0aWFsSXRlbXM6IFRbXSA9IFtdXG4pOiBQYWdpbmF0aW9uU3RhdGU8VD4ge1xuICByZXR1cm4ge1xuICAgIGl0ZW1zOiBpbml0aWFsSXRlbXMsXG4gICAgcGFnZTogMCxcbiAgICBwYWdlU2l6ZSxcbiAgICBoYXNNb3JlOiB0cnVlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3I6IHVuZGVmaW5lZCxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { makeEnvironmentProviders, APP_INITIALIZER } from '@angular/core';
|
|
2
|
+
import { DEFAULT_SKELETON_CONFIG } from './types';
|
|
3
|
+
import { SkeletonService } from './skeleton.service';
|
|
4
|
+
// Import built-in templates
|
|
5
|
+
import { ListSkeletonComponent } from './templates/list-skeleton.component';
|
|
6
|
+
import { GridSkeletonComponent } from './templates/grid-skeleton.component';
|
|
7
|
+
import { FormSkeletonComponent } from './templates/form-skeleton.component';
|
|
8
|
+
import { ProfileSkeletonComponent } from './templates/profile-skeleton.component';
|
|
9
|
+
import { TableSkeletonComponent } from './templates/table-skeleton.component';
|
|
10
|
+
import { DetailSkeletonComponent } from './templates/detail-skeleton.component';
|
|
11
|
+
/**
|
|
12
|
+
* Configura el sistema de skeletons para Valtech Components.
|
|
13
|
+
*
|
|
14
|
+
* @param config Configuracion de skeletons
|
|
15
|
+
* @returns Providers para app.config.ts
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // app.config.ts
|
|
19
|
+
* import { provideValtechSkeleton } from 'valtech-components';
|
|
20
|
+
*
|
|
21
|
+
* export const appConfig: ApplicationConfig = {
|
|
22
|
+
* providers: [
|
|
23
|
+
* provideValtechSkeleton({
|
|
24
|
+
* animated: true,
|
|
25
|
+
* defaultDelay: 100,
|
|
26
|
+
* defaultMinTime: 500,
|
|
27
|
+
* templates: [
|
|
28
|
+
* { name: 'custom-card', component: MyCustomCardSkeleton }
|
|
29
|
+
* ]
|
|
30
|
+
* }),
|
|
31
|
+
* ]
|
|
32
|
+
* };
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // Uso minimo - usa configuracion por defecto
|
|
36
|
+
* providers: [provideValtechSkeleton()]
|
|
37
|
+
*/
|
|
38
|
+
export function provideValtechSkeleton(config = {}) {
|
|
39
|
+
const mergedConfig = { ...DEFAULT_SKELETON_CONFIG, ...config };
|
|
40
|
+
return makeEnvironmentProviders([
|
|
41
|
+
{
|
|
42
|
+
provide: APP_INITIALIZER,
|
|
43
|
+
useFactory: (skeletonService) => {
|
|
44
|
+
return () => {
|
|
45
|
+
// Configurar servicio
|
|
46
|
+
skeletonService.configure(mergedConfig);
|
|
47
|
+
// Registrar templates built-in
|
|
48
|
+
skeletonService.registerTemplate('list', ListSkeletonComponent, { count: 3 });
|
|
49
|
+
skeletonService.registerTemplate('list-avatar', ListSkeletonComponent, {
|
|
50
|
+
count: 3,
|
|
51
|
+
variant: 'avatar',
|
|
52
|
+
});
|
|
53
|
+
skeletonService.registerTemplate('grid', GridSkeletonComponent, { count: 4 });
|
|
54
|
+
skeletonService.registerTemplate('grid-cards', GridSkeletonComponent, {
|
|
55
|
+
count: 6,
|
|
56
|
+
variant: 'cards',
|
|
57
|
+
});
|
|
58
|
+
skeletonService.registerTemplate('form', FormSkeletonComponent, { count: 3 });
|
|
59
|
+
skeletonService.registerTemplate('form-compact', FormSkeletonComponent, {
|
|
60
|
+
count: 2,
|
|
61
|
+
variant: 'compact',
|
|
62
|
+
});
|
|
63
|
+
skeletonService.registerTemplate('profile', ProfileSkeletonComponent, {});
|
|
64
|
+
skeletonService.registerTemplate('profile-full', ProfileSkeletonComponent, {
|
|
65
|
+
variant: 'full',
|
|
66
|
+
});
|
|
67
|
+
skeletonService.registerTemplate('table', TableSkeletonComponent, {
|
|
68
|
+
columns: 4,
|
|
69
|
+
rows: 5,
|
|
70
|
+
});
|
|
71
|
+
skeletonService.registerTemplate('detail', DetailSkeletonComponent, { sections: 2 });
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
deps: [SkeletonService],
|
|
75
|
+
multi: true,
|
|
76
|
+
},
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9za2VsZXRvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFrQix1QkFBdUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsNEJBQTRCO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUF5QixFQUFFO0lBQ2hFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBRS9ELE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxlQUFnQyxFQUFFLEVBQUU7Z0JBQy9DLE9BQU8sR0FBRyxFQUFFO29CQUNWLHNCQUFzQjtvQkFDdEIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFFeEMsK0JBQStCO29CQUMvQixlQUFlLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzlFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUU7d0JBQ3JFLEtBQUssRUFBRSxDQUFDO3dCQUNSLE9BQU8sRUFBRSxRQUFRO3FCQUNsQixDQUFDLENBQUM7b0JBQ0gsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM5RSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFO3dCQUNwRSxLQUFLLEVBQUUsQ0FBQzt3QkFDUixPQUFPLEVBQUUsT0FBTztxQkFDakIsQ0FBQyxDQUFDO29CQUNILGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDOUUsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxxQkFBcUIsRUFBRTt3QkFDdEUsS0FBSyxFQUFFLENBQUM7d0JBQ1IsT0FBTyxFQUFFLFNBQVM7cUJBQ25CLENBQUMsQ0FBQztvQkFDSCxlQUFlLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFO3dCQUN6RSxPQUFPLEVBQUUsTUFBTTtxQkFDaEIsQ0FBQyxDQUFDO29CQUNILGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUU7d0JBQ2hFLE9BQU8sRUFBRSxDQUFDO3dCQUNWLElBQUksRUFBRSxDQUFDO3FCQUNSLENBQUMsQ0FBQztvQkFDSCxlQUFlLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUMsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNrZWxldG9uQ29uZmlnLCBERUZBVUxUX1NLRUxFVE9OX0NPTkZJRyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2tlbGV0b25TZXJ2aWNlIH0gZnJvbSAnLi9za2VsZXRvbi5zZXJ2aWNlJztcblxuLy8gSW1wb3J0IGJ1aWx0LWluIHRlbXBsYXRlc1xuaW1wb3J0IHsgTGlzdFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvbGlzdC1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvZ3JpZC1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvZm9ybS1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZmlsZVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvcHJvZmlsZS1za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGVzL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXRhaWxTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGVzL2RldGFpbC1za2VsZXRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbmZpZ3VyYSBlbCBzaXN0ZW1hIGRlIHNrZWxldG9ucyBwYXJhIFZhbHRlY2ggQ29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYWNpb24gZGUgc2tlbGV0b25zXG4gKiBAcmV0dXJucyBQcm92aWRlcnMgcGFyYSBhcHAuY29uZmlnLnRzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIGFwcC5jb25maWcudHNcbiAqIGltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoU2tlbGV0b24gfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlVmFsdGVjaFNrZWxldG9uKHtcbiAqICAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICogICAgICAgZGVmYXVsdERlbGF5OiAxMDAsXG4gKiAgICAgICBkZWZhdWx0TWluVGltZTogNTAwLFxuICogICAgICAgdGVtcGxhdGVzOiBbXG4gKiAgICAgICAgIHsgbmFtZTogJ2N1c3RvbS1jYXJkJywgY29tcG9uZW50OiBNeUN1c3RvbUNhcmRTa2VsZXRvbiB9XG4gKiAgICAgICBdXG4gKiAgICAgfSksXG4gKiAgIF1cbiAqIH07XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzbyBtaW5pbW8gLSB1c2EgY29uZmlndXJhY2lvbiBwb3IgZGVmZWN0b1xuICogcHJvdmlkZXJzOiBbcHJvdmlkZVZhbHRlY2hTa2VsZXRvbigpXVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hTa2VsZXRvbihjb25maWc6IFNrZWxldG9uQ29uZmlnID0ge30pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IG1lcmdlZENvbmZpZyA9IHsgLi4uREVGQVVMVF9TS0VMRVRPTl9DT05GSUcsIC4uLmNvbmZpZyB9O1xuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IChza2VsZXRvblNlcnZpY2U6IFNrZWxldG9uU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgIC8vIENvbmZpZ3VyYXIgc2VydmljaW9cbiAgICAgICAgICBza2VsZXRvblNlcnZpY2UuY29uZmlndXJlKG1lcmdlZENvbmZpZyk7XG5cbiAgICAgICAgICAvLyBSZWdpc3RyYXIgdGVtcGxhdGVzIGJ1aWx0LWluXG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ2xpc3QnLCBMaXN0U2tlbGV0b25Db21wb25lbnQsIHsgY291bnQ6IDMgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ2xpc3QtYXZhdGFyJywgTGlzdFNrZWxldG9uQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZhcmlhbnQ6ICdhdmF0YXInLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHNrZWxldG9uU2VydmljZS5yZWdpc3RlclRlbXBsYXRlKCdncmlkJywgR3JpZFNrZWxldG9uQ29tcG9uZW50LCB7IGNvdW50OiA0IH0pO1xuICAgICAgICAgIHNrZWxldG9uU2VydmljZS5yZWdpc3RlclRlbXBsYXRlKCdncmlkLWNhcmRzJywgR3JpZFNrZWxldG9uQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBjb3VudDogNixcbiAgICAgICAgICAgIHZhcmlhbnQ6ICdjYXJkcycsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ2Zvcm0nLCBGb3JtU2tlbGV0b25Db21wb25lbnQsIHsgY291bnQ6IDMgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ2Zvcm0tY29tcGFjdCcsIEZvcm1Ta2VsZXRvbkNvbXBvbmVudCwge1xuICAgICAgICAgICAgY291bnQ6IDIsXG4gICAgICAgICAgICB2YXJpYW50OiAnY29tcGFjdCcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ3Byb2ZpbGUnLCBQcm9maWxlU2tlbGV0b25Db21wb25lbnQsIHt9KTtcbiAgICAgICAgICBza2VsZXRvblNlcnZpY2UucmVnaXN0ZXJUZW1wbGF0ZSgncHJvZmlsZS1mdWxsJywgUHJvZmlsZVNrZWxldG9uQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB2YXJpYW50OiAnZnVsbCcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ3RhYmxlJywgVGFibGVTa2VsZXRvbkNvbXBvbmVudCwge1xuICAgICAgICAgICAgY29sdW1uczogNCxcbiAgICAgICAgICAgIHJvd3M6IDUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2tlbGV0b25TZXJ2aWNlLnJlZ2lzdGVyVGVtcGxhdGUoJ2RldGFpbCcsIERldGFpbFNrZWxldG9uQ29tcG9uZW50LCB7IHNlY3Rpb25zOiAyIH0pO1xuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGRlcHM6IFtTa2VsZXRvblNlcnZpY2VdLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSk7XG59XG4iXX0=
|