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.
Files changed (42) hide show
  1. package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +254 -0
  2. package/esm2022/lib/components/molecules/refresher/types.mjs +15 -0
  3. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +618 -0
  4. package/esm2022/lib/components/organisms/infinite-list/types.mjs +15 -0
  5. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +3 -3
  6. package/esm2022/lib/services/pagination/index.mjs +5 -0
  7. package/esm2022/lib/services/pagination/pagination.service.mjs +218 -0
  8. package/esm2022/lib/services/pagination/types.mjs +14 -0
  9. package/esm2022/lib/services/skeleton/config.mjs +79 -0
  10. package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +215 -0
  11. package/esm2022/lib/services/skeleton/index.mjs +16 -0
  12. package/esm2022/lib/services/skeleton/skeleton.service.mjs +198 -0
  13. package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +223 -0
  14. package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +127 -0
  15. package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +154 -0
  16. package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +110 -0
  17. package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +207 -0
  18. package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +116 -0
  19. package/esm2022/lib/services/skeleton/types.mjs +11 -0
  20. package/esm2022/public-api.mjs +12 -1
  21. package/fesm2022/valtech-components.mjs +3467 -950
  22. package/fesm2022/valtech-components.mjs.map +1 -1
  23. package/lib/components/molecules/refresher/refresher.component.d.ts +79 -0
  24. package/lib/components/molecules/refresher/types.d.ts +86 -0
  25. package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +111 -0
  26. package/lib/components/organisms/infinite-list/types.d.ts +197 -0
  27. package/lib/services/pagination/index.d.ts +2 -0
  28. package/lib/services/pagination/pagination.service.d.ts +43 -0
  29. package/lib/services/pagination/types.d.ts +113 -0
  30. package/lib/services/skeleton/config.d.ts +30 -0
  31. package/lib/services/skeleton/directives/loading.directive.d.ts +71 -0
  32. package/lib/services/skeleton/index.d.ts +10 -0
  33. package/lib/services/skeleton/skeleton.service.d.ts +127 -0
  34. package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +18 -0
  35. package/lib/services/skeleton/templates/form-skeleton.component.d.ts +22 -0
  36. package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +18 -0
  37. package/lib/services/skeleton/templates/list-skeleton.component.d.ts +17 -0
  38. package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +20 -0
  39. package/lib/services/skeleton/templates/table-skeleton.component.d.ts +17 -0
  40. package/lib/services/skeleton/types.d.ts +111 -0
  41. package/package.json +1 -1
  42. 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+XG4gKiA8L3ZhbC1wYWdlLXRlbXBsYXRlPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2UgdGVtcGxhdGUgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkJhY2sgLSBFbWl0cyB3aGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2UtdGVtcGxhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvblRpdGxlLFxuICAgIEV4cGFuZGFibGVUZXh0Q29tcG9uZW50LFxuICAgIElvbkdyaWQsXG4gICAgSW9uUm93LFxuICAgIElvbkNvbCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChwcm9wcy5wYWdlVGl0bGUpIHtcbiAgICAgIDxpb24taGVhZGVyIFtjbGFzcy5pb24tbm8tYm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgPGlvbi10b29sYmFyIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcIj5cbiAgICAgICAgICA8aW9uLXRpdGxlIGNsYXNzPVwicGFnZS10aXRsZVwiIHNpemU9XCJsYXJnZVwiPnt7IHByb3BzLnBhZ2VUaXRsZSB9fTwvaW9uLXRpdGxlPlxuICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgPC9pb24taGVhZGVyPlxuICAgIH1cbiAgICA8aW9uLWdyaWQ+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGRlc2NyaXB0aW9uLXJvd1wiPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTBcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgIEBpZiAocHJvcHMucGFnZURlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx2YWwtZXhwYW5kYWJsZS10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxpbWl0OiBwcm9wcy5kZXNjcmlwdGlvbkxpbWl0IHx8IDE4MCxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnBhZ2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBwcm9wcy5kZXNjcmlwdGlvbkNvbG9yIHx8ICdkYXJrJyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0JhY2tCdXR0b24pIHtcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlciBiYWNrLXJvd1wiPlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbWQ9XCIxMFwiIHNpemUtbGc9XCI4XCI+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0ZXh0OiBwcm9wcy5iYWNrQnV0dG9uVGV4dCB8fCAnVm9sdmVyJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ2Fycm93LWJhY2stb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICBzbG90OiAnc3RhcnQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQmFjaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICB9XG4gICAgPC9pb24tZ3JpZD5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLnBhZ2UtdGl0bGUge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmFjay1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuYmFjay1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xuXG4gIC8qKlxuICAgKiBQYWdlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZVRlbXBsYXRlTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYmFjayBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgaGFuZGxlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmFjay5lbWl0KCk7XG4gICAgdGhpcy5uYXYuYmFjaygpO1xuICB9XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQU1MLDRCQUE0QixHQUM3QixNQUFNLFNBQVMsQ0FBQzs7QUFFakI7O0dBRUc7QUFDSCxNQUFNLHdCQUF3QjtJQWE1QixZQUE2QixNQUEyQjtRQUEzQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVp2QyxXQUFNLEdBQUcsTUFBTSxDQUM5Qiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FDbkYsQ0FBQztRQUVPLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztR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RUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgY29tcHV0ZWQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUGFnaW5hdGlvbkNvbmZpZyxcbiAgUGFnaW5hdGlvbkNvbnRyb2xsZXIsXG4gIFBhZ2luYXRpb25Mb2FkUGFyYW1zLFxuICBQYWdpbmF0aW9uTG9hZFJlc3VsdCxcbiAgUGFnaW5hdGlvblN0YXRlLFxuICBjcmVhdGVJbml0aWFsUGFnaW5hdGlvblN0YXRlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBJbXBsZW1lbnRhY2lvbiBkZWwgY29udHJvbGFkb3IgZGUgcGFnaW5hY2lvbi5cbiAqL1xuY2xhc3MgUGFnaW5hdGlvbkNvbnRyb2xsZXJJbXBsPFQ+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=