@bravobit/bb-foundation 0.33.0 → 0.40.1
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/auth/lib/auth.config.d.ts +5 -0
- package/auth/lib/auth.interceptor.d.ts +2 -2
- package/auth/lib/auth.module.d.ts +1 -4
- package/auth/lib/auth.service.d.ts +2 -2
- package/auth/lib/directives/authenticated.directive.d.ts +11 -4
- package/auth/lib/guards/anonymous.guard.d.ts +2 -15
- package/auth/lib/guards/authenticated.guard.d.ts +2 -15
- package/auth/lib/interfaces/config.interface.d.ts +2 -1
- package/auth/public_api.d.ts +1 -0
- package/collections/lib/collections.module.d.ts +12 -3
- package/collections/lib/components/collections-actions/collections-actions.component.d.ts +10 -0
- package/collections/lib/components/collections-grid/collections-grid.component.d.ts +18 -0
- package/collections/lib/components/collections-pager/collections-pager.component.d.ts +15 -14
- package/collections/lib/components/collections-table/collections-table.component.d.ts +24 -0
- package/collections/lib/components/collections-table-label/collections-table-label.component.d.ts +11 -0
- package/collections/lib/components/collections-table-sorting/collections-table-sorting.component.d.ts +18 -0
- package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +9 -5
- package/collections/lib/directives/collections-data-row.directive.d.ts +14 -0
- package/collections/lib/directives/collections-data.directive.d.ts +14 -0
- package/collections/lib/directives/collections-empty.directive.d.ts +14 -0
- package/collections/lib/directives/collections-error.directive.d.ts +14 -0
- package/collections/lib/directives/collections-initial.directive.d.ts +11 -0
- package/collections/lib/directives/collections-item.directive.d.ts +14 -0
- package/collections/public_api.d.ts +11 -1
- package/dashboard/lib/dashboard/dashboard.component.d.ts +5 -8
- package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +3 -5
- package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
- package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +4 -7
- package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +3 -5
- package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +6 -11
- package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +2 -2
- package/dashboard/lib/dashboard.module.d.ts +1 -4
- package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +1 -1
- package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +2 -2
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +2 -2
- package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -1
- package/dialog/lib/dialog-link/dialog-link.component.d.ts +1 -1
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +2 -2
- package/dialog/lib/dialog.config.d.ts +3 -0
- package/dialog/lib/dialog.insertion.d.ts +1 -1
- package/dialog/lib/dialog.interfaces.d.ts +2 -0
- package/dialog/lib/dialog.module.d.ts +2 -4
- package/dialog/lib/directives/confirm.directive.d.ts +13 -0
- package/dialog/public_api.d.ts +2 -0
- package/elements/lib/avatar/avatar.component.d.ts +2 -1
- package/elements/lib/button/button.component.d.ts +12 -14
- package/elements/lib/checkbox/checkbox.component.d.ts +29 -22
- package/elements/lib/checkbox-group/checkbox-group.component.d.ts +13 -0
- package/elements/lib/date-picker/date-picker.component.d.ts +17 -10
- package/elements/lib/directives/addon.directive.d.ts +2 -2
- package/elements/lib/directives/extra-error-controls.directive.d.ts +13 -0
- package/elements/lib/directives/form-submit.directive.d.ts +1 -1
- package/elements/lib/directives/form-submitter.directive.d.ts +1 -1
- package/elements/lib/directives/image-upload.directive.d.ts +1 -1
- package/elements/lib/directives/input.directive.d.ts +9 -31
- package/elements/lib/elements.config.d.ts +84 -0
- package/elements/lib/elements.module.d.ts +20 -102
- package/elements/lib/file-picker/file-picker.component.d.ts +14 -10
- package/elements/lib/form-control/form-control.component.d.ts +8 -9
- package/elements/lib/form-error/form-error.component.d.ts +12 -9
- package/elements/lib/form-group/form-group.component.d.ts +4 -7
- package/elements/lib/icon/icon.component.d.ts +4 -4
- package/elements/lib/image-picker/image-picker.component.d.ts +9 -9
- package/elements/lib/multi-file-control/multi-file-control.component.d.ts +58 -0
- package/elements/lib/pipes/date.pipe.d.ts +9 -0
- package/elements/lib/pipes/file-image.pipe.d.ts +1 -1
- package/elements/lib/pipes/file-size.pipe.d.ts +1 -1
- package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
- package/elements/lib/radio-button/radio-button.component.d.ts +18 -0
- package/elements/lib/radio-group/radio-group.component.d.ts +38 -0
- package/elements/lib/spinner/spinner.component.d.ts +4 -7
- package/elements/public_api.d.ts +8 -3
- package/esm2022/auth/lib/auth.config.mjs +16 -0
- package/esm2022/auth/lib/auth.interceptor.mjs +10 -7
- package/esm2022/auth/lib/auth.module.mjs +9 -19
- package/esm2022/auth/lib/auth.service.mjs +22 -13
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +45 -11
- package/esm2022/auth/lib/guards/anonymous.guard.mjs +27 -51
- package/esm2022/auth/lib/guards/authenticated.guard.mjs +30 -54
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +2 -2
- package/esm2022/auth/lib/interfaces/config.interface.mjs +2 -3
- package/esm2022/auth/public_api.mjs +2 -1
- package/esm2022/collections/lib/collections.module.mjs +53 -23
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +39 -0
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +52 -0
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +51 -60
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +86 -0
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +33 -0
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +62 -0
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +10 -7
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +26 -0
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +26 -0
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +26 -0
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +26 -0
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +22 -0
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +26 -0
- package/esm2022/collections/public_api.mjs +12 -2
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +3 -3
- package/esm2022/combobox/combobox/combobox.component.mjs +6 -6
- package/esm2022/combobox/combobox-label.directive.mjs +3 -3
- package/esm2022/combobox/combobox-option.directive.mjs +3 -3
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +5 -5
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +17 -24
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +12 -15
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +7 -8
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +20 -15
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +15 -14
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +20 -27
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +6 -10
- package/esm2022/dashboard/lib/dashboard.module.mjs +30 -27
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +6 -6
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +12 -15
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +10 -7
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +5 -6
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +5 -5
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +7 -7
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +11 -7
- package/esm2022/dialog/lib/dialog.config.mjs +8 -0
- package/esm2022/dialog/lib/dialog.insertion.mjs +6 -5
- package/esm2022/dialog/lib/dialog.interfaces.mjs +3 -1
- package/esm2022/dialog/lib/dialog.module.mjs +17 -25
- package/esm2022/dialog/lib/dialog.service.mjs +8 -5
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +50 -0
- package/esm2022/dialog/public_api.mjs +3 -1
- package/esm2022/elements/lib/avatar/avatar.component.mjs +15 -14
- package/esm2022/elements/lib/button/button.component.mjs +37 -32
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +86 -47
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +36 -0
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +64 -51
- package/esm2022/elements/lib/directives/addon.directive.mjs +11 -13
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +43 -0
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +6 -5
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +6 -5
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +6 -5
- package/esm2022/elements/lib/directives/input.directive.mjs +21 -110
- package/esm2022/elements/lib/elements.config.mjs +42 -0
- package/esm2022/elements/lib/elements.module.mjs +38 -77
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +36 -24
- package/esm2022/elements/lib/form-control/form-control.component.mjs +21 -24
- package/esm2022/elements/lib/form-error/form-error.component.mjs +35 -60
- package/esm2022/elements/lib/form-group/form-group.component.mjs +15 -12
- package/esm2022/elements/lib/icon/icon.component.mjs +19 -24
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +33 -19
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +165 -0
- package/esm2022/elements/lib/pipes/date.pipe.mjs +30 -0
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +6 -5
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +6 -5
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +6 -5
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +59 -0
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +102 -0
- package/esm2022/elements/lib/spinner/spinner.component.mjs +12 -13
- package/esm2022/elements/public_api.mjs +9 -4
- package/esm2022/http/lib/http.config.mjs +18 -0
- package/esm2022/http/lib/http.interfaces.mjs +4 -2
- package/esm2022/http/lib/http.module.mjs +9 -22
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +9 -5
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +10 -6
- package/esm2022/http/public_api.mjs +2 -1
- package/esm2022/lib/core/miscellaneous/coercion.mjs +5 -0
- package/esm2022/lib/core/services/exif.service.mjs +3 -3
- package/esm2022/lib/core/services/file-loader.service.mjs +3 -3
- package/esm2022/lib/core/services/files.service.mjs +3 -3
- package/esm2022/lib/core/services/image-converter.service.mjs +3 -3
- package/esm2022/lib/core/services/languages.service.mjs +3 -3
- package/esm2022/lib/core/services/network.service.mjs +3 -3
- package/esm2022/lib/core/services/patch.service.mjs +3 -3
- package/esm2022/localize/lib/interfaces/config.interfaces.mjs +2 -7
- package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +6 -6
- package/esm2022/localize/lib/localizations/dutch.localization.mjs +19 -1
- package/esm2022/localize/lib/localizations/english.localization.mjs +19 -1
- package/esm2022/localize/lib/localize.config.mjs +43 -0
- package/esm2022/localize/lib/localize.module.mjs +10 -54
- package/esm2022/localize/lib/localize.pipe.mjs +6 -5
- package/esm2022/localize/lib/localize.service.mjs +26 -13
- package/esm2022/localize/lib/localize.tokens.mjs +18 -0
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +3 -2
- package/esm2022/localize/lib/transforms/plural.transform.mjs +5 -3
- package/esm2022/localize/lib/transforms/reference.transform.mjs +5 -3
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +6 -10
- package/esm2022/localize/lib/views/localize-template.directive.mjs +6 -5
- package/esm2022/localize/public_api.mjs +3 -3
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +6 -5
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +6 -5
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +6 -5
- package/esm2022/masking/lib/masking.module.mjs +6 -6
- package/esm2022/masking/lib/masking.service.mjs +3 -3
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +7 -9
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +8 -8
- package/esm2022/notifications/lib/notifications.config.mjs +8 -0
- package/esm2022/notifications/lib/notifications.interfaces.mjs +3 -1
- package/esm2022/notifications/lib/notifications.module.mjs +8 -18
- package/esm2022/notifications/lib/notifications.service.mjs +14 -8
- package/esm2022/notifications/public_api.mjs +2 -1
- package/esm2022/permissions/lib/directives/permission.directive.mjs +6 -5
- package/esm2022/permissions/lib/guards/permission.guard.mjs +23 -54
- package/esm2022/permissions/lib/permissions.config.mjs +20 -0
- package/esm2022/permissions/lib/permissions.interface.mjs +3 -1
- package/esm2022/permissions/lib/permissions.module.mjs +9 -23
- package/esm2022/permissions/lib/permissions.service.mjs +8 -5
- package/esm2022/permissions/public_api.mjs +2 -1
- package/esm2022/public_api.mjs +2 -10
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +12 -13
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +21 -36
- package/esm2022/recaptcha/lib/recaptcha.config.mjs +8 -0
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +8 -8
- package/esm2022/recaptcha/public_api.mjs +2 -1
- package/esm2022/select/bravobit-bb-foundation-select.mjs +5 -0
- package/esm2022/select/lib/select/select.component.mjs +214 -0
- package/esm2022/select/lib/select-label.directive.mjs +17 -0
- package/esm2022/select/lib/select-option-group.directive.mjs +17 -0
- package/esm2022/select/lib/select-option.directive.mjs +17 -0
- package/esm2022/select/lib/select.module.mjs +35 -0
- package/esm2022/select/public_api.mjs +6 -0
- package/esm2022/storage/lib/storage.service.mjs +3 -3
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +2 -5
- package/esm2022/table/lib/components/table/table.component.mjs +21 -22
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +5 -5
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +14 -14
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +15 -17
- package/esm2022/table/lib/table.module.mjs +23 -21
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +11 -17
- package/esm2022/tooltip/lib/tooltip.directive.mjs +17 -27
- package/esm2022/tooltip/lib/tooltip.module.mjs +7 -22
- package/esm2022/tooltip/public_api.mjs +2 -2
- package/esm2022/utils/lib/directives/autosize.directive.mjs +9 -7
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +6 -5
- package/esm2022/utils/lib/directives/focus.directive.mjs +6 -5
- package/esm2022/utils/lib/directives/template.directive.mjs +6 -5
- package/esm2022/utils/lib/utils.module.mjs +6 -6
- package/fesm2022/bravobit-bb-foundation-auth.mjs +140 -175
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +451 -106
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +18 -18
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +106 -116
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +125 -70
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +1652 -1378
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +38 -27
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +310 -264
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +23 -20
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +67 -62
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +54 -72
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +44 -54
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +292 -0
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -0
- package/fesm2022/bravobit-bb-foundation-storage.mjs +4 -7
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +67 -66
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +31 -61
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +28 -23
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +27 -144
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/http/lib/http.config.d.ts +5 -0
- package/http/lib/http.interfaces.d.ts +3 -0
- package/http/lib/http.module.d.ts +2 -6
- package/http/public_api.d.ts +1 -0
- package/lib/core/miscellaneous/coercion.d.ts +2 -0
- package/localize/lib/interfaces/config.interfaces.d.ts +1 -1
- package/localize/lib/interfaces/functions.interfaces.d.ts +0 -2
- package/localize/lib/localizations/dutch.localization.d.ts +18 -0
- package/localize/lib/localizations/english.localization.d.ts +18 -0
- package/localize/lib/localize.config.d.ts +6 -0
- package/localize/lib/localize.module.d.ts +2 -7
- package/localize/lib/localize.pipe.d.ts +1 -1
- package/localize/lib/localize.service.d.ts +4 -4
- package/localize/lib/localize.tokens.d.ts +11 -0
- package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
- package/localize/lib/views/localize-template.directive.d.ts +1 -1
- package/localize/public_api.d.ts +2 -2
- package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
- package/masking/lib/directives/date-mask.directive.d.ts +1 -1
- package/masking/lib/directives/input-mask.directive.d.ts +1 -1
- package/masking/lib/masking.module.d.ts +1 -1
- package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
- package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -1
- package/notifications/lib/notifications.config.d.ts +3 -0
- package/notifications/lib/notifications.interfaces.d.ts +2 -1
- package/notifications/lib/notifications.module.d.ts +1 -5
- package/notifications/public_api.d.ts +1 -0
- package/package.json +17 -22
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/permissions/lib/guards/permission.guard.d.ts +3 -15
- package/permissions/lib/permissions.config.d.ts +3 -0
- package/permissions/lib/permissions.interface.d.ts +2 -1
- package/permissions/lib/permissions.module.d.ts +1 -1
- package/permissions/public_api.d.ts +1 -0
- package/public_api.d.ts +1 -9
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +4 -7
- package/recaptcha/lib/recaptcha-loader.service.d.ts +9 -13
- package/recaptcha/lib/recaptcha.config.d.ts +3 -0
- package/recaptcha/lib/recaptcha.module.d.ts +2 -2
- package/recaptcha/public_api.d.ts +1 -0
- package/{theming → select}/index.d.ts +1 -1
- package/select/lib/select/select.component.d.ts +77 -0
- package/select/lib/select-label.directive.d.ts +8 -0
- package/select/lib/select-option-group.directive.d.ts +8 -0
- package/select/lib/select-option.directive.d.ts +8 -0
- package/select/lib/select.module.d.ts +10 -0
- package/select/public_api.d.ts +5 -0
- package/styles/colors.scss +20 -0
- package/styles/grid.scss +98 -0
- package/styles/reset.scss +65 -0
- package/styles/theme.scss +88 -0
- package/table/lib/components/table/table.component.d.ts +4 -6
- package/table/lib/components/table-cell/table-cell.component.d.ts +1 -1
- package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +4 -7
- package/table/lib/components/table-pager/table-pager.component.d.ts +4 -8
- package/table/lib/table.module.d.ts +1 -5
- package/tooltip/lib/tooltip-container/tooltip-container.component.d.ts +3 -4
- package/tooltip/lib/tooltip.directive.d.ts +8 -17
- package/tooltip/lib/tooltip.module.d.ts +2 -5
- package/tooltip/public_api.d.ts +1 -1
- package/utils/lib/directives/autosize.directive.d.ts +2 -1
- package/utils/lib/directives/focus-trap.directive.d.ts +1 -1
- package/utils/lib/directives/focus.directive.d.ts +1 -1
- package/utils/lib/directives/template.directive.d.ts +1 -1
- package/utils/lib/utils.module.d.ts +1 -1
- package/auth/lib/directives/abstract.directive.d.ts +0 -12
- package/collections/lib/components/collections.directive.d.ts +0 -17
- package/controls/index.d.ts +0 -5
- package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +0 -51
- package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +0 -23
- package/controls/lib/checkbox/checkbox.module.d.ts +0 -10
- package/controls/lib/control-error/control-error/control-error.animation.d.ts +0 -1
- package/controls/lib/control-error/control-error/control-error.component.d.ts +0 -17
- package/controls/lib/control-error/control-error-submit.directive.d.ts +0 -15
- package/controls/lib/control-error/control-error.defaults.d.ts +0 -2
- package/controls/lib/control-error/control-error.interface.d.ts +0 -12
- package/controls/lib/control-error/control-error.module.d.ts +0 -9
- package/controls/lib/control-error/control-error.utils.d.ts +0 -3
- package/controls/lib/controls.interfaces.d.ts +0 -4
- package/controls/lib/controls.module.d.ts +0 -14
- package/controls/lib/form-control/form-control/form-control.component.d.ts +0 -29
- package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +0 -6
- package/controls/lib/form-control/form-control-input.directive.d.ts +0 -35
- package/controls/lib/form-control/form-control.module.d.ts +0 -12
- package/controls/lib/radio/radio-button/radio-button.component.d.ts +0 -24
- package/controls/lib/radio/radio-group/radio-group.component.d.ts +0 -53
- package/controls/lib/radio/radio.module.d.ts +0 -11
- package/controls/lib/toggle/toggle/toggle.component.d.ts +0 -45
- package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +0 -23
- package/controls/lib/toggle/toggle.module.d.ts +0 -10
- package/controls/public_api.d.ts +0 -20
- package/elements/lib/dropdown/dropdown.component.d.ts +0 -21
- package/elements/lib/tag/tag.component.d.ts +0 -7
- package/esm2022/auth/lib/directives/abstract.directive.mjs +0 -40
- package/esm2022/collections/lib/components/collections.directive.mjs +0 -43
- package/esm2022/controls/bravobit-bb-foundation-controls.mjs +0 -5
- package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
- package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
- package/esm2022/controls/lib/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/controls/lib/control-error/control-error/control-error.animation.mjs +0 -14
- package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
- package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
- package/esm2022/controls/lib/control-error/control-error.defaults.mjs +0 -26
- package/esm2022/controls/lib/control-error/control-error.interface.mjs +0 -3
- package/esm2022/controls/lib/control-error/control-error.module.mjs +0 -19
- package/esm2022/controls/lib/control-error/control-error.utils.mjs +0 -20
- package/esm2022/controls/lib/controls.interfaces.mjs +0 -2
- package/esm2022/controls/lib/controls.module.mjs +0 -62
- package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
- package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
- package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +0 -124
- package/esm2022/controls/lib/form-control/form-control.module.mjs +0 -34
- package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
- package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
- package/esm2022/controls/lib/radio/radio.module.mjs +0 -21
- package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
- package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
- package/esm2022/controls/lib/toggle/toggle.module.mjs +0 -20
- package/esm2022/controls/public_api.mjs +0 -21
- package/esm2022/elements/lib/dropdown/dropdown.component.mjs +0 -100
- package/esm2022/elements/lib/tag/tag.component.mjs +0 -18
- package/esm2022/lib/core/mixins/can-disable.mjs +0 -16
- package/esm2022/lib/core/mixins/can-hide-errors.mjs +0 -16
- package/esm2022/lib/core/mixins/can-load.mjs +0 -16
- package/esm2022/lib/core/mixins/constructor.mjs +0 -2
- package/esm2022/lib/core/mixins/has-error.mjs +0 -16
- package/esm2022/lib/core/mixins/is-focused.mjs +0 -16
- package/esm2022/lib/core/mixins/is-grouped.mjs +0 -16
- package/esm2022/lib/core/mixins/is-readonly.mjs +0 -16
- package/esm2022/lib/core/mixins/is-required.mjs +0 -16
- package/esm2022/localize/lib/interfaces/transforms.interfaces.mjs +0 -3
- package/esm2022/localize/lib/locale.token.mjs +0 -14
- package/esm2022/theming/bravobit-bb-foundation-theming.mjs +0 -5
- package/esm2022/theming/lib/themes/checkbox-group.theme.mjs +0 -17
- package/esm2022/theming/lib/themes/checkbox.theme.mjs +0 -35
- package/esm2022/theming/lib/themes/control-error.theme.mjs +0 -11
- package/esm2022/theming/lib/themes/form-control-addon.theme.mjs +0 -6
- package/esm2022/theming/lib/themes/form-control.theme.mjs +0 -45
- package/esm2022/theming/lib/themes/radio-button.theme.mjs +0 -29
- package/esm2022/theming/lib/themes/radio-group.theme.mjs +0 -20
- package/esm2022/theming/lib/themes/toggle-group.theme.mjs +0 -17
- package/esm2022/theming/lib/themes/toggle.theme.mjs +0 -28
- package/esm2022/theming/lib/theming.data.mjs +0 -90
- package/esm2022/theming/lib/theming.directive.mjs +0 -38
- package/esm2022/theming/lib/theming.interface.mjs +0 -2
- package/esm2022/theming/lib/theming.module.mjs +0 -16
- package/esm2022/theming/lib/utils/theming.variable.mjs +0 -41
- package/esm2022/theming/public_api.mjs +0 -10
- package/fesm2022/bravobit-bb-foundation-controls.mjs +0 -1191
- package/fesm2022/bravobit-bb-foundation-controls.mjs.map +0 -1
- package/fesm2022/bravobit-bb-foundation-theming.mjs +0 -381
- package/fesm2022/bravobit-bb-foundation-theming.mjs.map +0 -1
- package/lib/core/mixins/can-disable.d.ts +0 -6
- package/lib/core/mixins/can-hide-errors.d.ts +0 -6
- package/lib/core/mixins/can-load.d.ts +0 -6
- package/lib/core/mixins/constructor.d.ts +0 -1
- package/lib/core/mixins/has-error.d.ts +0 -6
- package/lib/core/mixins/is-focused.d.ts +0 -6
- package/lib/core/mixins/is-grouped.d.ts +0 -6
- package/lib/core/mixins/is-readonly.d.ts +0 -6
- package/lib/core/mixins/is-required.d.ts +0 -6
- package/localize/lib/interfaces/transforms.interfaces.d.ts +0 -3
- package/localize/lib/locale.token.d.ts +0 -3
- package/theming/lib/themes/checkbox-group.theme.d.ts +0 -16
- package/theming/lib/themes/checkbox.theme.d.ts +0 -32
- package/theming/lib/themes/control-error.theme.d.ts +0 -9
- package/theming/lib/themes/form-control-addon.theme.d.ts +0 -5
- package/theming/lib/themes/form-control.theme.d.ts +0 -32
- package/theming/lib/themes/radio-button.theme.d.ts +0 -26
- package/theming/lib/themes/radio-group.theme.d.ts +0 -17
- package/theming/lib/themes/toggle-group.theme.d.ts +0 -16
- package/theming/lib/themes/toggle.theme.d.ts +0 -25
- package/theming/lib/theming.data.d.ts +0 -17
- package/theming/lib/theming.directive.d.ts +0 -13
- package/theming/lib/theming.interface.d.ts +0 -34
- package/theming/lib/theming.module.d.ts +0 -7
- package/theming/lib/utils/theming.variable.d.ts +0 -16
- package/theming/public_api.d.ts +0 -9
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Directive, Input, TemplateRef, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { catchError, debounceTime, distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';
|
|
3
|
+
import { BbFormControl, BbIcon, BbInput, BbSuffix } from '@bravobit/bb-foundation/elements';
|
|
4
|
+
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
5
|
import { DataSourceRequest } from '../../data/datasource.data';
|
|
6
|
+
import { BbTablePager } from '../table-pager/table-pager.component';
|
|
4
7
|
import { combineLatest, of } from 'rxjs';
|
|
5
|
-
import {
|
|
8
|
+
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
9
|
+
import { BbLocalize } from '@bravobit/bb-foundation/localize';
|
|
6
10
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
import * as i3 from "@bravobit/bb-foundation/elements";
|
|
10
|
-
import * as i4 from "../table-pager/table-pager.component";
|
|
11
|
-
import * as i5 from "@bravobit/bb-foundation/localize";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
12
|
export class BbTableColumnDef {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
14
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableColumnDef, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
14
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.5", type: BbTableColumnDef, isStandalone: true, selector: "[bbTableColumnDef]", ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableColumnDef, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
|
-
selector: '[bbTableColumnDef]'
|
|
19
|
+
selector: '[bbTableColumnDef]',
|
|
20
|
+
standalone: true
|
|
20
21
|
}]
|
|
21
22
|
}] });
|
|
22
23
|
export class BbTableRowDef {
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableRowDef, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.5", type: BbTableRowDef, isStandalone: true, selector: "[bbTableRowDef]", ngImport: i0 }); }
|
|
25
26
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableRowDef, decorators: [{
|
|
27
28
|
type: Directive,
|
|
28
29
|
args: [{
|
|
29
|
-
selector: '[bbTableRowDef]'
|
|
30
|
+
selector: '[bbTableRowDef]',
|
|
31
|
+
standalone: true
|
|
30
32
|
}]
|
|
31
33
|
}] });
|
|
32
34
|
export class BbTable {
|
|
@@ -39,9 +41,6 @@ export class BbTable {
|
|
|
39
41
|
this.footer = true;
|
|
40
42
|
// Sizes.
|
|
41
43
|
this._sizes = [25, 50, 75, 100];
|
|
42
|
-
// Optimizations.
|
|
43
|
-
this.trackByFn = (index, item) => this.identifier ? item[this.identifier] : index;
|
|
44
|
-
this.trackByValue = (_, item) => item;
|
|
45
44
|
this.queryControl = new FormControl('');
|
|
46
45
|
// State.
|
|
47
46
|
this._headerCount = 0;
|
|
@@ -161,12 +160,12 @@ export class BbTable {
|
|
|
161
160
|
getFormChanges() {
|
|
162
161
|
return this.form.valueChanges.pipe(startWith(this.form.value));
|
|
163
162
|
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BbTable, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i3.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "directive", type: i3.BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }, { kind: "component", type: i3.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "component", type: i4.BbTablePager, selector: "bb-table-pager", inputs: ["disabled", "amountOfButtons", "showArrowButtons", "pageNumber", "totalPages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbLocalize, name: "bbLocalize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
163
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: BbTable, isStandalone: true, selector: "bb-table", inputs: { identifier: "identifier", dataSource: "dataSource", queryFields: "queryFields", sortingStrategy: "sortingStrategy", header: "header", footer: "footer", sizes: "sizes" }, host: { classAttribute: "bb-table" }, queries: [{ propertyName: "tableRowTemplate", first: true, predicate: BbTableRowDef, descendants: true, read: TemplateRef }, { propertyName: "tableColumnTemplates", predicate: BbTableColumnDef, read: TemplateRef }], ngImport: i0, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n@if ((header === true ? headerTemplate : header); as template) {\n <header class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </header>\n}\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n @if (isLoading$ | async) {\n <div class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n }\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody>\n @if (data$ | async; as data) {\n @switch (data?.state) {\n @case ('success') {\n @if (!!tableRowTemplate) {\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data ?? []}\"></ng-container>\n } @else {\n @for (item of data?.result?.data; track (identifier ? item[identifier] : $index)) {\n <tr>\n @for (template of tableColumnTemplates; track $index) {\n <ng-container\n *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n }\n </tr>\n }\n }\n }\n @case ('empty') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_datasource') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_not_found') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_server') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_down') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n }\n\n } @else {\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n\n@if ((footer === true ? footerTemplate : footer); as template) {\n <footer class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </footer>\n}\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n @if (queryControl?.value?.length <= 0) {\n <bb-icon bbSuffix\n src=\"material:search\">\n </bb-icon>\n } @else {\n <button (click)=\"queryControl?.patchValue('')\"\n bbSuffix\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n }\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n @if (sizes?.length > 1) {\n <bb-form-control>\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n @for (item of sizes; track item) {\n <option [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n }\n </select>\n </bb-form-control>\n }\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<ng-template #errorTemplate\n let-state=\"state\"\n let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 41\"\n width=\"4rem\"\n height=\"2.5625rem\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n @if (state; as stateLabel) {\n <span>{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n }\n @if (status; as statusCode) {\n <span class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n }\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;background-color:#fff;justify-content:flex-end;padding:1.5rem 1.5rem .75rem;border-top-left-radius:.25rem;border-bottom:1px solid #d8d8d8;border-top-right-radius:.25rem}.bb-table-top-actions>*{margin-left:0;margin-bottom:.75rem}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:4rem;display:flex;overflow-x:auto;padding:0 1.5rem;align-items:center;background-color:#fff;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{display:flex;color:#3d464d;padding:1.5rem;line-height:1.2;font-weight:400;text-align:center;font-size:.875rem;min-height:8.75rem;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:.75rem}.bb-table-template-content-code{opacity:.5;margin-top:.25rem;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;display:block;height:.25rem;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:.25rem;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:.75rem;margin-bottom:.75rem}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "component", type: BbFormControl, selector: "bb-form-control", inputs: ["label", "hint", "grouped", "hideErrors"] }, { kind: "directive", type: BbInput, selector: "input[bbInput],textarea[bbInput],select[bbInput]", inputs: ["required"] }, { kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "src"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: BbSuffix, selector: "[bbSuffix]" }, { kind: "component", type: BbTablePager, selector: "bb-table-pager", inputs: ["amountOfButtons", "showArrowButtons", "disabled", "pageNumber", "totalPages"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
166
165
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTable, decorators: [{
|
|
168
167
|
type: Component,
|
|
169
|
-
args: [{ selector: 'bb-table', host: { 'class': 'bb-table' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n<header *ngIf=\"(header === true ? headerTemplate : header) as template\"\n class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</header>\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n <div *ngIf=\"isLoading$ | async\"\n class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody *ngIf=\"data$ | async as data; else isLoadingTemplate\"\n [ngSwitch]=\"data?.state\">\n <ng-container *ngSwitchCase=\"'success'\">\n <ng-container *ngIf=\"!!tableRowTemplate; else tableCellsTemplates\">\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data || []}\"></ng-container>\n </ng-container>\n\n <ng-template #tableCellsTemplates>\n <tr *ngFor=\"let item of data?.result?.data; trackBy: trackByFn\">\n <ng-container *ngFor=\"let template of tableColumnTemplates\">\n <ng-container *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n </ng-container>\n </tr>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_datasource'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_not_found'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_server'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error_down'\">\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n\n<footer *ngIf=\"(footer === true ? footerTemplate : footer) as template\"\n class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</footer>\n\n<ng-template #isLoadingTemplate>\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n <bb-icon *ngIf=\"queryControl?.value?.length <= 0; else closeButtonTemplate\"\n bbSuffix\n src=\"material:search\">\n </bb-icon>\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n <bb-form-control *ngIf=\"sizes?.length > 1\">\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n <option *ngFor=\"let item of sizes; trackBy: trackByValue\"\n [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n </select>\n </bb-form-control>\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<!--\n This the template that will be used when the user\n has filled in some data in the query control.\n-->\n\n<ng-template #closeButtonTemplate>\n <button bbSuffix\n (click)=\"queryControl?.patchValue('')\"\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n</ng-template>\n\n<ng-template #errorTemplate let-state=\"state\" let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"41\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n <span *ngIf=\"state as stateLabel\">{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n <span *ngIf=\"status as statusCode\"\n class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 6px 6px -6px #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;padding:20px 20px 10px;background-color:#fff;justify-content:flex-end;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #d8d8d8}.bb-table-top-actions>*{margin-left:0;margin-bottom:10px}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:60px;display:flex;padding:0 20px;overflow-x:auto;align-items:center;background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{padding:20px;display:flex;color:#3d464d;font-size:14px;line-height:1.2;font-weight:400;min-height:140px;text-align:center;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:12px}.bb-table-template-content-code{opacity:.5;margin-top:5px;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;height:4px;display:block;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:4px;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:10px;margin-bottom:10px}}\n"] }]
|
|
168
|
+
args: [{ selector: 'bb-table', host: { 'class': 'bb-table' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [NgTemplateOutlet, AsyncPipe, BbLocalize, BbFormControl, BbInput, BbIcon, ReactiveFormsModule, BbSuffix, BbTablePager, BbLocalize], template: "<!--\n This is the header of the table. It can be a user\n defined custom header or just the default header.\n-->\n\n@if ((header === true ? headerTemplate : header); as template) {\n <header class=\"bb-table-top-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </header>\n}\n\n<!--\n This is the table that contains the\n rows and columns.\n-->\n\n<div class=\"bb-table-wrapper\">\n @if (isLoading$ | async) {\n <div class=\"bb-table-progress\">\n <div class=\"bb-table-indeterminate\"></div>\n </div>\n }\n <table class=\"bb-table-container\">\n <thead>\n <tr>\n <ng-content select=\"bb-table-header-cell\"></ng-content>\n </tr>\n </thead>\n <tbody>\n @if (data$ | async; as data) {\n @switch (data?.state) {\n @case ('success') {\n @if (!!tableRowTemplate) {\n <ng-container\n *ngTemplateOutlet=\"tableRowTemplate; context: {data: data?.result?.data ?? []}\"></ng-container>\n } @else {\n @for (item of data?.result?.data; track (identifier ? item[identifier] : $index)) {\n <tr>\n @for (template of tableColumnTemplates; track $index) {\n <ng-container\n *ngTemplateOutlet=\"template; context: {item: item}\"></ng-container>\n }\n </tr>\n }\n }\n }\n @case ('empty') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_datasource') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_not_found') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_server') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @case ('error_down') {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"errorTemplate; context: data\"></ng-container>\n }\n }\n\n } @else {\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n {{ 'tables.loading' | bbLocalize }}\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n\n@if ((footer === true ? footerTemplate : footer); as template) {\n <footer class=\"bb-table-bottom-actions\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </footer>\n}\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom header template.\n-->\n\n<ng-template #headerTemplate>\n <ng-content></ng-content>\n <bb-form-control>\n <input [formControl]=\"queryControl\"\n [placeholder]=\"'tables.search' | bbLocalize\"\n bbInput\n autocomplete=\"off\">\n @if (queryControl?.value?.length <= 0) {\n <bb-icon bbSuffix\n src=\"material:search\">\n </bb-icon>\n } @else {\n <button (click)=\"queryControl?.patchValue('')\"\n bbSuffix\n type=\"button\"\n class=\"bb-table-progress-close-query\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n }\n </bb-form-control>\n</ng-template>\n\n<!--\n This is the template that will be used when the user has not\n supplied a custom footer template.\n-->\n\n<ng-template #footerTemplate>\n @if (sizes?.length > 1) {\n <bb-form-control>\n <select [formControl]=\"pageSizeControl\"\n bbInput\n title=\"Sizes\">\n @for (item of sizes; track item) {\n <option [ngValue]=\"item\">\n {{ item }} / {{ 'tables.page' | bbLocalize }}\n </option>\n }\n </select>\n </bb-form-control>\n }\n\n <bb-table-pager [totalPages]=\"(data$ | async)?.result?.totalPages\"\n [formControl]=\"pageNumberControl\">\n </bb-table-pager>\n</ng-template>\n\n<ng-template #errorTemplate\n let-state=\"state\"\n let-status=\"statusCode\">\n <tr>\n <td [attr.colspan]=\"headerCount\"\n class=\"bb-table-template\">\n <div class=\"bb-table-template-content\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 64 41\"\n width=\"4rem\"\n height=\"2.5625rem\">\n <g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0 1)\">\n <ellipse cx=\"32\" cy=\"33\" fill=\"#F5F5F5\" rx=\"32\" ry=\"7\"></ellipse>\n <g fill-rule=\"nonzero\" stroke=\"#D9D9D9\">\n <path\n d=\"M55 12.7605604L44.8543047 1.25739633C44.3674414.47382661 43.6558789 0 42.9067617 0H21.0932383c-.7491172 0-1.4606797.47395025-1.947543 1.25739633L9 12.7605604V22h46v-9.2394396z\"></path>\n <path fill=\"#FAFAFA\"\n d=\"M41.6132813 15.9315c0-1.6056489.9936718-2.931266 2.2264179-2.9315H55v18.1371277C55 33.2589574 53.6793867 35 52.0504297 35H11.94957031C10.32052344 35 9 33.2588404 9 31.1371277V13h11.1603008c1.2327461 0 2.226418 1.3228085 2.226418 2.9284574v.0211809c0 1.6056489 1.0049921 2.9015426 2.2377382 2.9015426h14.751086c1.2327461 0 2.2377383-1.3078298 2.2377383-2.9134788V15.9315z\"></path>\n </g>\n </g>\n </svg>\n @if (state; as stateLabel) {\n <span>{{ ('tables.' + stateLabel) | bbLocalize }}</span>\n }\n @if (status; as statusCode) {\n <span class=\"bb-table-template-content-code\">(HTTP {{ statusCode }})</span>\n }\n </div>\n </td>\n </tr>\n</ng-template>\n", styles: [".bb-table{width:100%;display:block;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-table.plain{box-shadow:none}.bb-table.plain>.bb-table-wrapper{border-top-left-radius:0;border-top-right-radius:0}.bb-table-wrapper{overflow-x:auto;position:relative;background-color:#fff;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.bb-table-container{width:100%}.bb-table-container td{border-bottom:1px solid #d8d8d8}.bb-table-top-actions{display:flex;flex-wrap:wrap;flex-direction:column;background-color:#fff;justify-content:flex-end;padding:1.5rem 1.5rem .75rem;border-top-left-radius:.25rem;border-bottom:1px solid #d8d8d8;border-top-right-radius:.25rem}.bb-table-top-actions>*{margin-left:0;margin-bottom:.75rem}.bb-table-top-actions+.bb-table-wrapper{border-radius:0}.bb-table-bottom-actions{height:4rem;display:flex;overflow-x:auto;padding:0 1.5rem;align-items:center;background-color:#fff;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.bb-table-template{border:none;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-template-content{display:flex;color:#3d464d;padding:1.5rem;line-height:1.2;font-weight:400;text-align:center;font-size:.875rem;min-height:8.75rem;align-items:center;flex-direction:column;justify-content:center}.bb-table-template-content>svg{margin-bottom:.75rem}.bb-table-template-content-code{opacity:.5;margin-top:.25rem;display:inline-block}.bb-table-progress{top:0;left:0;right:0;opacity:0;width:100%;display:block;height:.25rem;overflow:hidden;position:absolute;background-color:#2f408b4d;animation:fadeIn .25s cubic-bezier(0,0,.2,1) .1s forwards}.bb-table-progress .bb-table-indeterminate{background-color:#2f408b}.bb-table-progress .bb-table-indeterminate:before{top:0;left:0;bottom:0;content:\"\";position:absolute;will-change:left,right;background-color:inherit;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.bb-table-progress .bb-table-indeterminate:after{top:0;left:0;bottom:0;content:\"\";position:absolute;animation-delay:1.15s;will-change:left,right;background-color:inherit;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite}.bb-table-progress-close-query{padding:0;border:none;border-radius:.25rem;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-table-progress-close-query:hover{background-color:#00000014}.bb-table-progress-close-query:focus{background-color:#0000001f}.bb-table-progress-close-query:active{background-color:#00000029}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@media only screen and (min-width: 768px){.bb-table-top-actions{flex-direction:row}.bb-table-top-actions>*:not(:first-child){margin-left:.75rem;margin-bottom:.75rem}}\n"] }]
|
|
170
169
|
}], propDecorators: { tableColumnTemplates: [{
|
|
171
170
|
type: ContentChildren,
|
|
172
171
|
args: [BbTableColumnDef, { read: TemplateRef }]
|
|
@@ -188,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
188
187
|
}], sizes: [{
|
|
189
188
|
type: Input
|
|
190
189
|
}] } });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQUUsWUFBWSxFQUN2QixlQUFlLEVBQ2YsU0FBUyxFQUNULEtBQUssRUFJTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkcsT0FBTyxFQUFhLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFDLGFBQWEsRUFBYyxFQUFFLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUt0RCxNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFINUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzs7QUFPRCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSHpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtpQkFDOUI7O0FBYUQsTUFBTSxPQUFPLE9BQU87SUFUcEI7UUFl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LEVBQUMsbUJBQ1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSzs4QkFLOEIsb0JBQW9CO3NCQUEzRSxlQUFlO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFDVyxnQkFBZ0I7c0JBQWhGLFlBQVk7dUJBQUMsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUd0RCxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBVUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RhdGFTb3VyY2VQYWdlUmVzcG9uc2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtEYXRhU291cmNlLCBEYXRhU291cmNlUmVxdWVzdH0gZnJvbSAnLi4vLi4vZGF0YS9kYXRhc291cmNlLmRhdGEnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYlRhYmxlQ29sdW1uRGVmXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJUYWJsZUNvbHVtbkRlZiB7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiVGFibGVSb3dEZWZdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYlRhYmxlUm93RGVmIHtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItdGFibGUnfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiVGFibGUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBDb250ZW50LlxuICAgIEBDb250ZW50Q2hpbGRyZW4oQmJUYWJsZUNvbHVtbkRlZiwge3JlYWQ6IFRlbXBsYXRlUmVmfSkgdGFibGVDb2x1bW5UZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+PjtcbiAgICBAQ29udGVudENoaWxkKEJiVGFibGVSb3dEZWYsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pIHRhYmxlUm93VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIGlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gICAgQElucHV0KCkgcXVlcnlGaWVsZHM6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgc29ydGluZ1N0cmF0ZWd5OiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnc2luZ2xlJztcbiAgICBASW5wdXQoKSBoZWFkZXI6IFRlbXBsYXRlUmVmPGFueT4gfCBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBmb290ZXI6IFRlbXBsYXRlUmVmPGFueT4gfCBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8vIFNpemVzLlxuICAgIHByaXZhdGUgX3NpemVzOiBudW1iZXJbXSA9IFsyNSwgNTAsIDc1LCAxMDBdO1xuXG4gICAgZ2V0IHNpemVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZXM7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgc2l6ZXMobmV3VmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU2l6ZXMobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIC8vIE9wdGltaXphdGlvbnMuXG4gICAgdHJhY2tCeUZuID0gKGluZGV4LCBpdGVtKSA9PiB0aGlzLmlkZW50aWZpZXIgPyBpdGVtW3RoaXMuaWRlbnRpZmllcl0gOiBpbmRleDtcbiAgICB0cmFja0J5VmFsdWUgPSAoXywgaXRlbSkgPT4gaXRlbTtcblxuICAgIC8vIERhdGEuXG4gICAgcmVxdWVzdDogRGF0YVNvdXJjZVJlcXVlc3Q7XG4gICAgZGF0YSQ6IE9ic2VydmFibGU8eyBzdGF0ZTogc3RyaW5nLCBzdGF0dXNDb2RlPzogbnVtYmVyLCByZXN1bHQ/OiBEYXRhU291cmNlUGFnZVJlc3BvbnNlIH0+O1xuICAgIGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvLyBGb3JtLlxuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBxdWVyeUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgcHJpdmF0ZSBfaGVhZGVyQ291bnQ6IG51bWJlciA9IDA7XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29tcG9zZUZvcm0oKTtcbiAgICAgICAgdGhpcy53YXRjaERhdGFDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDb3VudDtcbiAgICB9XG5cbiAgICBnZXQgc29ydENvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0/LmdldCgnc29ydCcpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgcGFnZU51bWJlckNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0/LmdldCgncGFnZU51bWJlcicpIGFzIEZvcm1Db250cm9sPG51bWJlcj47XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2VTaXplQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdwYWdlU2l6ZScpIGFzIEZvcm1Db250cm9sPG51bWJlcj47XG4gICAgfVxuXG4gICAgcmVmcmVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdC51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBzZXRIZWFkZXJDb3VudChhbW91bnQ6IC0xIHwgMSkge1xuICAgICAgICB0aGlzLl9oZWFkZXJDb3VudCArPSBhbW91bnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTaXplcyhuZXdWYWx1ZTogbnVtYmVyW10pIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHNpemVzIGhhcyBhdCBsZWFzdCBvbmUgdmFsdWUuXG4gICAgICAgIGlmIChuZXdWYWx1ZS5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc2V0IGFuIGVtcHR5IGFycmF5IGFzIHRoZSBzaXplcy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgbmV3IHNpemUuXG4gICAgICAgIHRoaXMuX3NpemVzID0gbmV3VmFsdWU7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgZm9ybSBleGlzdHMgYWxyZWFkeS5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHNlbGVjdGVkIHZhbHVlIGlzXG4gICAgICAgIC8vIGluIHRoZSBuZXcgc2l6ZXMgYXJyYXkuXG4gICAgICAgIGNvbnN0IHBhZ2VTaXplQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3BhZ2VTaXplJyk7XG4gICAgICAgIGlmICh0aGlzLl9zaXplcy5pbmNsdWRlcyhwYWdlU2l6ZUNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGZpcnN0IHZhbHVlIGluIHRoZSBhcnJheSBhc1xuICAgICAgICAvLyB0aGUgbmV3IHZhbHVlLlxuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdGhpcy5fc2l6ZXNbMF07XG4gICAgICAgIHBhZ2VTaXplQ29udHJvbC5zZXRWYWx1ZShmaXJzdFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbXBvc2VGb3JtKCkge1xuICAgICAgICAvLyBTZXR1cCB0aGUgZm9ybS5cbiAgICAgICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBwYWdlU2l6ZTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4odGhpcy5fc2l6ZXNbMF0pLFxuICAgICAgICAgICAgcGFnZU51bWJlcjogbmV3IEZvcm1Db250cm9sPG51bWJlcj4oMSksXG4gICAgICAgICAgICBzb3J0OiBuZXcgRm9ybUdyb3VwKHt9KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoRGF0YUNoYW5nZXMoKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyByZXF1ZXN0LlxuICAgICAgICB0aGlzLnJlcXVlc3QgPSBuZXcgRGF0YVNvdXJjZVJlcXVlc3QoKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5yZXF1ZXN0LmxvYWRpbmc7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSQgPSBvZih7c3RhdGU6ICdlcnJvcl9kYXRhc291cmNlJ30pLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucmVxdWVzdC5zdG9wTG9hZGluZygpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBhc3MgdGhlIHJlcXVlc3QgdG8gdGhlIGRhdGEgc291cmNlLlxuICAgICAgICB0aGlzLmRhdGEkID0gdGhpcy5kYXRhU291cmNlLmhhbmRsZSh0aGlzLnJlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZXF1ZXN0LnN0b3BMb2FkaW5nKCkpLFxuICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSAocmVzdWx0ICYmIHJlc3VsdC5kYXRhICYmIHJlc3VsdC5kYXRhLmxlbmd0aCkgfHwgMDtcbiAgICAgICAgICAgICAgICBpZiAoY291bnQgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3N0YXRlOiAnZW1wdHknLCByZXN1bHR9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7c3RhdGU6ICdzdWNjZXNzJywgcmVzdWx0fTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0LnN0b3BMb2FkaW5nKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gZXJyb3I/LnN0YXR1cyA/PyBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgMDogJ2Vycm9yX2Rvd24nLFxuICAgICAgICAgICAgICAgICAgICA0MDE6ICdlcnJvcl91bmF1dGhvcml6ZWQnLFxuICAgICAgICAgICAgICAgICAgICA0MDM6ICdlcnJvcl9mb3JiaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICA0MDQ6ICdlcnJvcl9ub3RfZm91bmQnLFxuICAgICAgICAgICAgICAgICAgICA1MDA6ICdlcnJvcl9zZXJ2ZXInXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvZih7c3RhdGU6IHN0YXRlcz8uW3N0YXR1c0NvZGVdID8/ICdlcnJvcl91bmtub3duJywgc3RhdHVzQ29kZTogc3RhdHVzQ29kZX0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGRhdGEgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3QgZm9ybSQgPSB0aGlzLmdldEZvcm1DaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5JCA9IHRoaXMuZ2V0UXVlcnlDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbZm9ybSQsIHF1ZXJ5JF0pLnN1YnNjcmliZSgoW2Zvcm0sIHF1ZXJ5XSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qge3BhZ2VOdW1iZXIsIHBhZ2VTaXplfSA9IGZvcm07XG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gT2JqZWN0LmtleXMoZm9ybS5zb3J0KVxuICAgICAgICAgICAgICAgIC5tYXAobmFtZSA9PiAoe25hbWUsIGRpcmVjdGlvbjogZm9ybS5zb3J0W25hbWVdfSkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IFsnYXNjJywgJ2Rlc2MnXS5pbmNsdWRlcyhpdGVtLmRpcmVjdGlvbikpO1xuXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3Quc3RhcnRMb2FkaW5nKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0LnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgc29ydCxcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBwYWdlTnVtYmVyLFxuICAgICAgICAgICAgICAgIHF1ZXJ5RmllbGRzOiB0aGlzLnF1ZXJ5RmllbGRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWVyeUNoYW5nZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg0MDApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnF1ZXJ5Q29udHJvbC52YWx1ZSBhcyBzdHJpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtQ2hhbmdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUgYXMgb2JqZWN0KVxuICAgICAgICApO1xuICAgIH1cblxufVxuIiwiPCEtLVxuICAgIFRoaXMgaXMgdGhlIGhlYWRlciBvZiB0aGUgdGFibGUuIEl0IGNhbiBiZSBhIHVzZXJcbiAgICBkZWZpbmVkIGN1c3RvbSBoZWFkZXIgb3IganVzdCB0aGUgZGVmYXVsdCBoZWFkZXIuXG4tLT5cblxuPGhlYWRlciAqbmdJZj1cIihoZWFkZXIgPT09IHRydWUgPyBoZWFkZXJUZW1wbGF0ZSA6IGhlYWRlcikgYXMgdGVtcGxhdGVcIlxuICAgICAgICBjbGFzcz1cImJiLXRhYmxlLXRvcC1hY3Rpb25zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L2hlYWRlcj5cblxuPCEtLVxuICAgIFRoaXMgaXMgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGhlXG4gICAgcm93cyBhbmQgY29sdW1ucy5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiYmItdGFibGUtd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgY2xhc3M9XCJiYi10YWJsZS1wcm9ncmVzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmItdGFibGUtaW5kZXRlcm1pbmF0ZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZSBjbGFzcz1cImJiLXRhYmxlLWNvbnRhaW5lclwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmItdGFibGUtaGVhZGVyLWNlbGxcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgKm5nSWY9XCJkYXRhJCB8IGFzeW5jIGFzIGRhdGE7IGVsc2UgaXNMb2FkaW5nVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cImRhdGE/LnN0YXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISF0YWJsZVJvd1RlbXBsYXRlOyBlbHNlIHRhYmxlQ2VsbHNUZW1wbGF0ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZVJvd1RlbXBsYXRlOyBjb250ZXh0OiB7ZGF0YTogZGF0YT8ucmVzdWx0Py5kYXRhIHx8IFtdfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0YWJsZUNlbGxzVGVtcGxhdGVzPlxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8ucmVzdWx0Py5kYXRhOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRhYmxlQ29sdW1uVGVtcGxhdGVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7aXRlbTogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2VtcHR5J1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlOyBjb250ZXh0OiBkYXRhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yX2RhdGFzb3VyY2UnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yVGVtcGxhdGU7IGNvbnRleHQ6IGRhdGFcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXJyb3Jfbm90X2ZvdW5kJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlOyBjb250ZXh0OiBkYXRhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Vycm9yX3NlcnZlcidcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JUZW1wbGF0ZTsgY29udGV4dDogZGF0YVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlcnJvcl9kb3duJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlOyBjb250ZXh0OiBkYXRhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlOyBjb250ZXh0OiBkYXRhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuPC9kaXY+XG5cbjxmb290ZXIgKm5nSWY9XCIoZm9vdGVyID09PSB0cnVlID8gZm9vdGVyVGVtcGxhdGUgOiBmb290ZXIpIGFzIHRlbXBsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJiYi10YWJsZS1ib3R0b20tYWN0aW9uc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9mb290ZXI+XG5cbjxuZy10ZW1wbGF0ZSAjaXNMb2FkaW5nVGVtcGxhdGU+XG4gICAgPHRyPlxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJoZWFkZXJDb3VudFwiXG4gICAgICAgICAgICBjbGFzcz1cImJiLXRhYmxlLXRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmItdGFibGUtdGVtcGxhdGUtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIHt7ICd0YWJsZXMubG9hZGluZycgfCBiYkxvY2FsaXplIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICA8L3RyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLVxuICAgIFRoaXMgaXMgdGhlIHRlbXBsYXRlIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gdGhlIHVzZXIgaGFzIG5vdFxuICAgIHN1cHBsaWVkIGEgY3VzdG9tIGhlYWRlciB0ZW1wbGF0ZS5cbi0tPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8YmItZm9ybS1jb250cm9sPlxuICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cInF1ZXJ5Q29udHJvbFwiXG4gICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3RhYmxlcy5zZWFyY2gnIHwgYmJMb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgICAgPGJiLWljb24gKm5nSWY9XCJxdWVyeUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPD0gMDsgZWxzZSBjbG9zZUJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgYmJTdWZmaXhcbiAgICAgICAgICAgICAgICAgc3JjPVwibWF0ZXJpYWw6c2VhcmNoXCI+XG4gICAgICAgIDwvYmItaWNvbj5cbiAgICA8L2JiLWZvcm0tY29udHJvbD5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS1cbiAgICBUaGlzIGlzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHRoZSB1c2VyIGhhcyBub3RcbiAgICBzdXBwbGllZCBhIGN1c3RvbSBmb290ZXIgdGVtcGxhdGUuXG4tLT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgICA8YmItZm9ybS1jb250cm9sICpuZ0lmPVwic2l6ZXM/Lmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPHNlbGVjdCBbZm9ybUNvbnRyb2xdPVwicGFnZVNpemVDb250cm9sXCJcbiAgICAgICAgICAgICAgICBiYklucHV0XG4gICAgICAgICAgICAgICAgdGl0bGU9XCJTaXplc1wiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzaXplczsgdHJhY2tCeTogdHJhY2tCeVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX0gLyB7eyAndGFibGVzLnBhZ2UnIHwgYmJMb2NhbGl6ZSB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvYmItZm9ybS1jb250cm9sPlxuXG4gICAgPGJiLXRhYmxlLXBhZ2VyIFt0b3RhbFBhZ2VzXT1cIihkYXRhJCB8IGFzeW5jKT8ucmVzdWx0Py50b3RhbFBhZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInBhZ2VOdW1iZXJDb250cm9sXCI+XG4gICAgPC9iYi10YWJsZS1wYWdlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS1cbiAgICBUaGlzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHRoZSB1c2VyXG4gICAgaGFzIGZpbGxlZCBpbiBzb21lIGRhdGEgaW4gdGhlIHF1ZXJ5IGNvbnRyb2wuXG4tLT5cblxuPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvblRlbXBsYXRlPlxuICAgIDxidXR0b24gYmJTdWZmaXhcbiAgICAgICAgICAgIChjbGljayk9XCJxdWVyeUNvbnRyb2w/LnBhdGNoVmFsdWUoJycpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJiYi10YWJsZS1wcm9ncmVzcy1jbG9zZS1xdWVyeVwiPlxuICAgICAgICA8YmItaWNvbiBzcmM9XCJtYXRlcmlhbDpjbG9zZVwiPjwvYmItaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZXJyb3JUZW1wbGF0ZSBsZXQtc3RhdGU9XCJzdGF0ZVwiIGxldC1zdGF0dXM9XCJzdGF0dXNDb2RlXCI+XG4gICAgPHRyPlxuICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJoZWFkZXJDb3VudFwiXG4gICAgICAgICAgICBjbGFzcz1cImJiLXRhYmxlLXRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmItdGFibGUtdGVtcGxhdGUtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNjRcIiBoZWlnaHQ9XCI0MVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIzMlwiIGN5PVwiMzNcIiBmaWxsPVwiI0Y1RjVGNVwiIHJ4PVwiMzJcIiByeT1cIjdcIj48L2VsbGlwc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWxsLXJ1bGU9XCJub256ZXJvXCIgc3Ryb2tlPVwiI0Q5RDlEOVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNTUgMTIuNzYwNTYwNEw0NC44NTQzMDQ3IDEuMjU3Mzk2MzNDNDQuMzY3NDQxNC40NzM4MjY2MSA0My42NTU4Nzg5IDAgNDIuOTA2NzYxNyAwSDIxLjA5MzIzODNjLS43NDkxMTcyIDAtMS40NjA2Nzk3LjQ3Mzk1MDI1LTEuOTQ3NTQzIDEuMjU3Mzk2MzNMOSAxMi43NjA1NjA0VjIyaDQ2di05LjIzOTQzOTZ6XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjRkFGQUZBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQxLjYxMzI4MTMgMTUuOTMxNWMwLTEuNjA1NjQ4OS45OTM2NzE4LTIuOTMxMjY2IDIuMjI2NDE3OS0yLjkzMTVINTV2MTguMTM3MTI3N0M1NSAzMy4yNTg5NTc0IDUzLjY3OTM4NjcgMzUgNTIuMDUwNDI5NyAzNUgxMS45NDk1NzAzMUMxMC4zMjA1MjM0NCAzNSA5IDMzLjI1ODg0MDQgOSAzMS4xMzcxMjc3VjEzaDExLjE2MDMwMDhjMS4yMzI3NDYxIDAgMi4yMjY0MTggMS4zMjI4MDg1IDIuMjI2NDE4IDIuOTI4NDU3NHYuMDIxMTgwOWMwIDEuNjA1NjQ4OSAxLjAwNDk5MjEgMi45MDE1NDI2IDIuMjM3NzM4MiAyLjkwMTU0MjZoMTQuNzUxMDg2YzEuMjMyNzQ2MSAwIDIuMjM3NzM4My0xLjMwNzgyOTggMi4yMzc3MzgzLTIuOTEzNDc4OFYxNS45MzE1elwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdGUgYXMgc3RhdGVMYWJlbFwiPnt7ICgndGFibGVzLicgKyBzdGF0ZUxhYmVsKSB8IGJiTG9jYWxpemUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdGF0dXMgYXMgc3RhdHVzQ29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYi10YWJsZS10ZW1wbGF0ZS1jb250ZW50LWNvZGVcIj4oSFRUUCB7eyBzdGF0dXNDb2RlIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgIDwvdHI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUlMLFdBQVcsRUFDWCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFMUYsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGFBQWEsRUFBYyxFQUFFLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyxnQkFBZ0I7OEdB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M0hjLGdCQUFnQiwrSUFBRSxTQUFTLHlDQUFFLFVBQVUsbURBQUUsYUFBYSxnSEFBRSxPQUFPLG1IQUFFLE1BQU0saUdBQUUsbUJBQW1CLHErQkFBRSxRQUFRLHVEQUFFLFlBQVk7OzJGQUVySCxPQUFPO2tCQVhuQixTQUFTOytCQUNJLFVBQVUsUUFHZCxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsbUJBQ1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxjQUNkLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUM7OEJBS25GLG9CQUFvQjtzQkFBM0UsZUFBZTt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUM7Z0JBQ1csZ0JBQWdCO3NCQUFoRixZQUFZO3VCQUFDLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFHdEQsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JiRm9ybUNvbnRyb2wsIEJiSWNvbiwgQmJJbnB1dCwgQmJTdWZmaXh9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2VsZW1lbnRzJztcbmltcG9ydCB7RGF0YVNvdXJjZVBhZ2VSZXNwb25zZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RGF0YVNvdXJjZSwgRGF0YVNvdXJjZVJlcXVlc3R9IGZyb20gJy4uLy4uL2RhdGEvZGF0YXNvdXJjZS5kYXRhJztcbmltcG9ydCB7QmJUYWJsZVBhZ2VyfSBmcm9tICcuLi90YWJsZS1wYWdlci90YWJsZS1wYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2JiVGFibGVDb2x1bW5EZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiVGFibGVDb2x1bW5EZWYge1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYlRhYmxlUm93RGVmXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBCYlRhYmxlUm93RGVmIHtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItdGFibGUnfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSwgQmJMb2NhbGl6ZSwgQmJGb3JtQ29udHJvbCwgQmJJbnB1dCwgQmJJY29uLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBCYlN1ZmZpeCwgQmJUYWJsZVBhZ2VyLCBCYkxvY2FsaXplXVxufSlcbmV4cG9ydCBjbGFzcyBCYlRhYmxlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLy8gQ29udGVudC5cbiAgICBAQ29udGVudENoaWxkcmVuKEJiVGFibGVDb2x1bW5EZWYsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pIHRhYmxlQ29sdW1uVGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG4gICAgQENvbnRlbnRDaGlsZChCYlRhYmxlUm93RGVmLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KSB0YWJsZVJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICAgIEBJbnB1dCgpIHF1ZXJ5RmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHNvcnRpbmdTdHJhdGVneTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG4gICAgQElucHV0KCkgaGVhZGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgZm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvLyBTaXplcy5cbiAgICBwcml2YXRlIF9zaXplczogbnVtYmVyW10gPSBbMjUsIDUwLCA3NSwgMTAwXTtcblxuICAgIGdldCBzaXplcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemVzO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNpemVzKG5ld1ZhbHVlOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNpemVzKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBEYXRhLlxuICAgIHJlcXVlc3Q6IERhdGFTb3VyY2VSZXF1ZXN0O1xuICAgIGRhdGEkOiBPYnNlcnZhYmxlPHsgc3RhdGU6IHN0cmluZywgc3RhdHVzQ29kZT86IG51bWJlciwgcmVzdWx0PzogRGF0YVNvdXJjZVBhZ2VSZXNwb25zZSB9PjtcbiAgICBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLy8gRm9ybS5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgcXVlcnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgX2hlYWRlckNvdW50OiBudW1iZXIgPSAwO1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBvc2VGb3JtKCk7XG4gICAgICAgIHRoaXMud2F0Y2hEYXRhQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlckNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyQ291bnQ7XG4gICAgfVxuXG4gICAgZ2V0IHNvcnRDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtPy5nZXQoJ3NvcnQnKSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2VOdW1iZXJDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtPy5nZXQoJ3BhZ2VOdW1iZXInKSBhcyBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgIH1cblxuICAgIGdldCBwYWdlU2l6ZUNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0/LmdldCgncGFnZVNpemUnKSBhcyBGb3JtQ29udHJvbDxudW1iZXI+O1xuICAgIH1cblxuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgc2V0SGVhZGVyQ291bnQoYW1vdW50OiAtMSB8IDEpIHtcbiAgICAgICAgdGhpcy5faGVhZGVyQ291bnQgKz0gYW1vdW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2l6ZXMobmV3VmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBzaXplcyBoYXMgYXQgbGVhc3Qgb25lIHZhbHVlLlxuICAgICAgICBpZiAobmV3VmFsdWUubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCBhbiBlbXB0eSBhcnJheSBhcyB0aGUgc2l6ZXMuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIG5ldyBzaXplLlxuICAgICAgICB0aGlzLl9zaXplcyA9IG5ld1ZhbHVlO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIGZvcm0gZXhpc3RzIGFscmVhZHkuXG4gICAgICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBzZWxlY3RlZCB2YWx1ZSBpc1xuICAgICAgICAvLyBpbiB0aGUgbmV3IHNpemVzIGFycmF5LlxuICAgICAgICBjb25zdCBwYWdlU2l6ZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdwYWdlU2l6ZScpO1xuICAgICAgICBpZiAodGhpcy5fc2l6ZXMuaW5jbHVkZXMocGFnZVNpemVDb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBmaXJzdCB2YWx1ZSBpbiB0aGUgYXJyYXkgYXNcbiAgICAgICAgLy8gdGhlIG5ldyB2YWx1ZS5cbiAgICAgICAgY29uc3QgZmlyc3RWYWx1ZSA9IHRoaXMuX3NpemVzWzBdO1xuICAgICAgICBwYWdlU2l6ZUNvbnRyb2wuc2V0VmFsdWUoZmlyc3RWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wb3NlRm9ybSgpIHtcbiAgICAgICAgLy8gU2V0dXAgdGhlIGZvcm0uXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgcGFnZVNpemU6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KHRoaXMuX3NpemVzWzBdKSxcbiAgICAgICAgICAgIHBhZ2VOdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDEpLFxuICAgICAgICAgICAgc29ydDogbmV3IEZvcm1Hcm91cCh7fSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaERhdGFDaGFuZ2VzKCkge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgcmVxdWVzdC5cbiAgICAgICAgdGhpcy5yZXF1ZXN0ID0gbmV3IERhdGFTb3VyY2VSZXF1ZXN0KCk7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nJCA9IHRoaXMucmVxdWVzdC5sb2FkaW5nO1xuXG4gICAgICAgIGlmICghdGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEkID0gb2Yoe3N0YXRlOiAnZXJyb3JfZGF0YXNvdXJjZSd9KS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlcXVlc3Quc3RvcExvYWRpbmcoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXNzIHRoZSByZXF1ZXN0IHRvIHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZGF0YVNvdXJjZS5oYW5kbGUodGhpcy5yZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucmVxdWVzdC5zdG9wTG9hZGluZygpKSxcbiAgICAgICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gKHJlc3VsdCAmJiByZXN1bHQuZGF0YSAmJiByZXN1bHQuZGF0YS5sZW5ndGgpIHx8IDA7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtzdGF0ZTogJ2VtcHR5JywgcmVzdWx0fTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge3N0YXRlOiAnc3VjY2VzcycsIHJlc3VsdH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdC5zdG9wTG9hZGluZygpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9IGVycm9yPy5zdGF0dXMgPz8gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIDA6ICdlcnJvcl9kb3duJyxcbiAgICAgICAgICAgICAgICAgICAgNDAxOiAnZXJyb3JfdW5hdXRob3JpemVkJyxcbiAgICAgICAgICAgICAgICAgICAgNDAzOiAnZXJyb3JfZm9yYmlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgNDA0OiAnZXJyb3Jfbm90X2ZvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgNTAwOiAnZXJyb3Jfc2VydmVyJ1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe3N0YXRlOiBzdGF0ZXM/LltzdGF0dXNDb2RlXSA/PyAnZXJyb3JfdW5rbm93bicsIHN0YXR1c0NvZGU6IHN0YXR1c0NvZGV9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBkYXRhIGNoYW5nZXMuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVUb0NoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IGZvcm0kID0gdGhpcy5nZXRGb3JtQ2hhbmdlcygpO1xuICAgICAgICBjb25zdCBxdWVyeSQgPSB0aGlzLmdldFF1ZXJ5Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW2Zvcm0kLCBxdWVyeSRdKS5zdWJzY3JpYmUoKFtmb3JtLCBxdWVyeV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtwYWdlTnVtYmVyLCBwYWdlU2l6ZX0gPSBmb3JtO1xuICAgICAgICAgICAgY29uc3Qgc29ydCA9IE9iamVjdC5rZXlzKGZvcm0uc29ydClcbiAgICAgICAgICAgICAgICAubWFwKG5hbWUgPT4gKHtuYW1lLCBkaXJlY3Rpb246IGZvcm0uc29ydFtuYW1lXX0pKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBbJ2FzYycsICdkZXNjJ10uaW5jbHVkZXMoaXRlbS5kaXJlY3Rpb24pKTtcblxuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0LnN0YXJ0TG9hZGluZygpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdC51cGRhdGUoe1xuICAgICAgICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBxdWVyeUZpZWxkczogdGhpcy5xdWVyeUZpZWxkc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UXVlcnlDaGFuZ2VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5xdWVyeUNvbnRyb2wudmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUNoYW5nZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlIGFzIG9iamVjdClcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiIsIjwhLS1cbiAgICBUaGlzIGlzIHRoZSBoZWFkZXIgb2YgdGhlIHRhYmxlLiBJdCBjYW4gYmUgYSB1c2VyXG4gICAgZGVmaW5lZCBjdXN0b20gaGVhZGVyIG9yIGp1c3QgdGhlIGRlZmF1bHQgaGVhZGVyLlxuLS0+XG5cbkBpZiAoKGhlYWRlciA9PT0gdHJ1ZSA/IGhlYWRlclRlbXBsYXRlIDogaGVhZGVyKTsgYXMgdGVtcGxhdGUpIHtcbiAgICA8aGVhZGVyIGNsYXNzPVwiYmItdGFibGUtdG9wLWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9oZWFkZXI+XG59XG5cbjwhLS1cbiAgICBUaGlzIGlzIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIHRoZVxuICAgIHJvd3MgYW5kIGNvbHVtbnMuXG4tLT5cblxuPGRpdiBjbGFzcz1cImJiLXRhYmxlLXdyYXBwZXJcIj5cbiAgICBAaWYgKGlzTG9hZGluZyQgfCBhc3luYykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYmItdGFibGUtcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi10YWJsZS1pbmRldGVybWluYXRlXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8dGFibGUgY2xhc3M9XCJiYi10YWJsZS1jb250YWluZXJcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJiLXRhYmxlLWhlYWRlci1jZWxsXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgQGlmIChkYXRhJCB8IGFzeW5jOyBhcyBkYXRhKSB7XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAoZGF0YT8uc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIXRhYmxlUm93VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVSb3dUZW1wbGF0ZTsgY29udGV4dDoge2RhdGE6IGRhdGE/LnJlc3VsdD8uZGF0YSA/PyBbXX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZGF0YT8ucmVzdWx0Py5kYXRhOyB0cmFjayAoaWRlbnRpZmllciA/IGl0ZW1baWRlbnRpZmllcl0gOiAkaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHRlbXBsYXRlIG9mIHRhYmxlQ29sdW1uVGVtcGxhdGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2VtcHR5Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yVGVtcGxhdGU7IGNvbnRleHQ6IGRhdGFcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yX2RhdGFzb3VyY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JUZW1wbGF0ZTsgY29udGV4dDogZGF0YVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZXJyb3Jfbm90X2ZvdW5kJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yVGVtcGxhdGU7IGNvbnRleHQ6IGRhdGFcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yX3NlcnZlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclRlbXBsYXRlOyBjb250ZXh0OiBkYXRhXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcl9kb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yVGVtcGxhdGU7IGNvbnRleHQ6IGRhdGFcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JUZW1wbGF0ZTsgY29udGV4dDogZGF0YVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImhlYWRlckNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItdGFibGUtdGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi10YWJsZS10ZW1wbGF0ZS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3RhYmxlcy5sb2FkaW5nJyB8IGJiTG9jYWxpemUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvZGl2PlxuXG5AaWYgKChmb290ZXIgPT09IHRydWUgPyBmb290ZXJUZW1wbGF0ZSA6IGZvb3Rlcik7IGFzIHRlbXBsYXRlKSB7XG4gICAgPGZvb3RlciBjbGFzcz1cImJiLXRhYmxlLWJvdHRvbS1hY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZm9vdGVyPlxufVxuXG48IS0tXG4gICAgVGhpcyBpcyB0aGUgdGVtcGxhdGUgdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiB0aGUgdXNlciBoYXMgbm90XG4gICAgc3VwcGxpZWQgYSBjdXN0b20gaGVhZGVyIHRlbXBsYXRlLlxuLS0+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxiYi1mb3JtLWNvbnRyb2w+XG4gICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwicXVlcnlDb250cm9sXCJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIndGFibGVzLnNlYXJjaCcgfCBiYkxvY2FsaXplXCJcbiAgICAgICAgICAgICAgIGJiSW5wdXRcbiAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgICBAaWYgKHF1ZXJ5Q29udHJvbD8udmFsdWU/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICA8YmItaWNvbiBiYlN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgc3JjPVwibWF0ZXJpYWw6c2VhcmNoXCI+XG4gICAgICAgICAgICA8L2JiLWljb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicXVlcnlDb250cm9sPy5wYXRjaFZhbHVlKCcnKVwiXG4gICAgICAgICAgICAgICAgICAgIGJiU3VmZml4XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLXRhYmxlLXByb2dyZXNzLWNsb3NlLXF1ZXJ5XCI+XG4gICAgICAgICAgICAgICAgPGJiLWljb24gc3JjPVwibWF0ZXJpYWw6Y2xvc2VcIj48L2JiLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvYmItZm9ybS1jb250cm9sPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLVxuICAgIFRoaXMgaXMgdGhlIHRlbXBsYXRlIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gdGhlIHVzZXIgaGFzIG5vdFxuICAgIHN1cHBsaWVkIGEgY3VzdG9tIGZvb3RlciB0ZW1wbGF0ZS5cbi0tPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICAgIEBpZiAoc2l6ZXM/Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgPGJiLWZvcm0tY29udHJvbD5cbiAgICAgICAgICAgIDxzZWxlY3QgW2Zvcm1Db250cm9sXT1cInBhZ2VTaXplQ29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIGJiSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJTaXplc1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2l6ZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19IC8ge3sgJ3RhYmxlcy5wYWdlJyB8IGJiTG9jYWxpemUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvYmItZm9ybS1jb250cm9sPlxuICAgIH1cblxuICAgIDxiYi10YWJsZS1wYWdlciBbdG90YWxQYWdlc109XCIoZGF0YSQgfCBhc3luYyk/LnJlc3VsdD8udG90YWxQYWdlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJwYWdlTnVtYmVyQ29udHJvbFwiPlxuICAgIDwvYmItdGFibGUtcGFnZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Vycm9yVGVtcGxhdGVcbiAgICAgICAgICAgICBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LXN0YXR1cz1cInN0YXR1c0NvZGVcIj5cbiAgICA8dHI+XG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImhlYWRlckNvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmItdGFibGUtdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi10YWJsZS10ZW1wbGF0ZS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNjQgNDFcIlxuICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0cmVtXCJcbiAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIuNTYyNXJlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9XCIzMlwiIGN5PVwiMzNcIiBmaWxsPVwiI0Y1RjVGNVwiIHJ4PVwiMzJcIiByeT1cIjdcIj48L2VsbGlwc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWxsLXJ1bGU9XCJub256ZXJvXCIgc3Ryb2tlPVwiI0Q5RDlEOVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNTUgMTIuNzYwNTYwNEw0NC44NTQzMDQ3IDEuMjU3Mzk2MzNDNDQuMzY3NDQxNC40NzM4MjY2MSA0My42NTU4Nzg5IDAgNDIuOTA2NzYxNyAwSDIxLjA5MzIzODNjLS43NDkxMTcyIDAtMS40NjA2Nzk3LjQ3Mzk1MDI1LTEuOTQ3NTQzIDEuMjU3Mzk2MzNMOSAxMi43NjA1NjA0VjIyaDQ2di05LjIzOTQzOTZ6XCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjRkFGQUZBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQxLjYxMzI4MTMgMTUuOTMxNWMwLTEuNjA1NjQ4OS45OTM2NzE4LTIuOTMxMjY2IDIuMjI2NDE3OS0yLjkzMTVINTV2MTguMTM3MTI3N0M1NSAzMy4yNTg5NTc0IDUzLjY3OTM4NjcgMzUgNTIuMDUwNDI5NyAzNUgxMS45NDk1NzAzMUMxMC4zMjA1MjM0NCAzNSA5IDMzLjI1ODg0MDQgOSAzMS4xMzcxMjc3VjEzaDExLjE2MDMwMDhjMS4yMzI3NDYxIDAgMi4yMjY0MTggMS4zMjI4MDg1IDIuMjI2NDE4IDIuOTI4NDU3NHYuMDIxMTgwOWMwIDEuNjA1NjQ4OSAxLjAwNDk5MjEgMi45MDE1NDI2IDIuMjM3NzM4MiAyLjkwMTU0MjZoMTQuNzUxMDg2YzEuMjMyNzQ2MSAwIDIuMjM3NzM4My0xLjMwNzgyOTggMi4yMzc3MzgzLTIuOTEzNDc4OFYxNS45MzE1elwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIEBpZiAoc3RhdGU7IGFzIHN0YXRlTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgKCd0YWJsZXMuJyArIHN0YXRlTGFiZWwpIHwgYmJMb2NhbGl6ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChzdGF0dXM7IGFzIHN0YXR1c0NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYi10YWJsZS10ZW1wbGF0ZS1jb250ZW50LWNvZGVcIj4oSFRUUCB7eyBzdGF0dXNDb2RlIH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICA8L3RyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class BbTableCell {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableCell, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: BbTableCell, isStandalone: true, selector: "bb-table-cell", host: { classAttribute: "bb-table-cell" }, ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;text-align:left;line-height:1.2;font-weight:400;display:table-cell;font-size:.875rem;word-wrap:break-word;vertical-align:middle;padding:.75rem 1.5rem;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableCell, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
|
-
args: [{ selector: 'bb-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'bb-table-cell' }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;
|
|
9
|
+
args: [{ selector: 'bb-table-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'bb-table-cell' }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".bb-table-cell{color:#848f99;text-align:left;line-height:1.2;font-weight:400;display:table-cell;font-size:.875rem;word-wrap:break-word;vertical-align:middle;padding:.75rem 1.5rem;background-color:#f5f5f5;border-bottom:1px solid #d8d8d8}.bb-table-cell:not(:last-child){border-right:1px solid #d8d8d8}.bb-table-cell.fit{width:1%;white-space:nowrap}.bb-table-cell.left{text-align:left}.bb-table-cell.center{text-align:center}.bb-table-cell.right{text-align:right}\n"] }]
|
|
10
10
|
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBWXBGLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7a0dBQVgsV0FBVyxvSENaeEIsOENBRU07OzJGRFVPLFdBQVc7a0JBVnZCLFNBQVM7K0JBQ0ksZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBQyxpQkFDakIsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxjQUNkLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi10YWJsZS1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHsnY2xhc3MnOiAnYmItdGFibGUtY2VsbCd9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBCYlRhYmxlQ2VsbCB7XG59XG4iLCI8ZGl2PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import { Attribute, ChangeDetectionStrategy, Component, Host, HostListener, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { mixinDisabled } from '@bravobit/bb-foundation';
|
|
1
|
+
import { Attribute, booleanAttribute, ChangeDetectionStrategy, Component, Host, HostListener, Input, Optional, ViewEncapsulation } from '@angular/core';
|
|
3
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { AsyncPipe } from '@angular/common';
|
|
4
4
|
import { startWith } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../table/table.component";
|
|
7
|
-
|
|
8
|
-
class BbTableHeaderCellBase {
|
|
9
|
-
}
|
|
10
|
-
const BbTableHeaderCellMixinBase = mixinDisabled(BbTableHeaderCellBase);
|
|
11
|
-
export class BbTableHeaderCell extends BbTableHeaderCellMixinBase {
|
|
7
|
+
export class BbTableHeaderCell {
|
|
12
8
|
// Sort.
|
|
13
9
|
set sort(value) {
|
|
14
10
|
// Check if the new value is a valid value.
|
|
@@ -22,12 +18,13 @@ export class BbTableHeaderCell extends BbTableHeaderCellMixinBase {
|
|
|
22
18
|
return this._control.value;
|
|
23
19
|
}
|
|
24
20
|
constructor(_table, _name) {
|
|
25
|
-
super();
|
|
26
21
|
this._table = _table;
|
|
27
22
|
this._name = _name;
|
|
28
23
|
// Constants.
|
|
29
24
|
this._sortDirections = ['none', 'asc', 'desc'];
|
|
30
25
|
this._control = new FormControl(this._sortDirections[0]);
|
|
26
|
+
// Inputs.
|
|
27
|
+
this.disabled = false;
|
|
31
28
|
this.logWarning = (message) => {
|
|
32
29
|
console && console.warn && console.warn(message);
|
|
33
30
|
};
|
|
@@ -104,15 +101,15 @@ export class BbTableHeaderCell extends BbTableHeaderCellMixinBase {
|
|
|
104
101
|
// Patch the entire sort value.
|
|
105
102
|
this._table?.sortControl?.patchValue(newValue);
|
|
106
103
|
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableHeaderCell, deps: [{ token: i1.BbTable, host: true, optional: true }, { token: 'name', attribute: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: BbTableHeaderCell, isStandalone: true, selector: "bb-table-header-cell", inputs: { disabled: ["disabled", "disabled", booleanAttribute], sort: "sort" }, host: { listeners: { "click": "onClick()" }, properties: { "class.disabled": "isDisabled" }, classAttribute: "bb-table-header-cell" }, ngImport: i0, template: "<!-- The content. -->\n<ng-content></ng-content>\n\n<!-- The indicator for the sort direction. -->\n@if (valueChanges$ | async; as value) {\n @if (!isDisabled) {\n <button [class.asc]=\"value === 'asc'\"\n [class.desc]=\"value === 'desc'\"\n class=\"bb-table-header-cell-toggle\"\n type=\"button\"></button>\n }\n}\n", styles: [".bb-table-header-cell{height:3rem;color:#212529;cursor:pointer;font-size:1rem;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;display:table-cell;vertical-align:middle;padding:.75rem 1.5rem;border-bottom:1px solid #d8d8d8}.bb-table-header-cell:active>.bb-table-header-cell-toggle{background-color:#00000014}.bb-table-header-cell:not(.disabled){padding-right:3.25rem}.bb-table-header-cell.fit{width:1%;white-space:nowrap}.bb-table-header-cell.left{text-align:left}.bb-table-header-cell.center{text-align:center}.bb-table-header-cell.right{text-align:right}.bb-table-header-cell.disabled{cursor:default;pointer-events:none}.bb-table-header-cell-toggle{top:50%;right:1rem;border:none;width:1.5rem;height:1.5rem;margin-left:auto;position:absolute;border-radius:.25rem;transform:translateY(-50%);background-position:center;background-repeat:no-repeat;background-color:transparent;transition:background-color .2s cubic-bezier(0,0,.2,1);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
109
106
|
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbTableHeaderCell, decorators: [{
|
|
111
108
|
type: Component,
|
|
112
109
|
args: [{ selector: 'bb-table-header-cell', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
113
110
|
'class': 'bb-table-header-cell',
|
|
114
111
|
'[class.disabled]': 'isDisabled'
|
|
115
|
-
},
|
|
112
|
+
}, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, standalone: true, imports: [AsyncPipe], template: "<!-- The content. -->\n<ng-content></ng-content>\n\n<!-- The indicator for the sort direction. -->\n@if (valueChanges$ | async; as value) {\n @if (!isDisabled) {\n <button [class.asc]=\"value === 'asc'\"\n [class.desc]=\"value === 'desc'\"\n class=\"bb-table-header-cell-toggle\"\n type=\"button\"></button>\n }\n}\n", styles: [".bb-table-header-cell{height:3rem;color:#212529;cursor:pointer;font-size:1rem;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;display:table-cell;vertical-align:middle;padding:.75rem 1.5rem;border-bottom:1px solid #d8d8d8}.bb-table-header-cell:active>.bb-table-header-cell-toggle{background-color:#00000014}.bb-table-header-cell:not(.disabled){padding-right:3.25rem}.bb-table-header-cell.fit{width:1%;white-space:nowrap}.bb-table-header-cell.left{text-align:left}.bb-table-header-cell.center{text-align:center}.bb-table-header-cell.right{text-align:right}.bb-table-header-cell.disabled{cursor:default;pointer-events:none}.bb-table-header-cell-toggle{top:50%;right:1rem;border:none;width:1.5rem;height:1.5rem;margin-left:auto;position:absolute;border-radius:.25rem;transform:translateY(-50%);background-position:center;background-repeat:no-repeat;background-color:transparent;transition:background-color .2s cubic-bezier(0,0,.2,1);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-table-header-cell-toggle.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"] }]
|
|
116
113
|
}], ctorParameters: () => [{ type: i1.BbTable, decorators: [{
|
|
117
114
|
type: Optional
|
|
118
115
|
}, {
|
|
@@ -122,10 +119,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
122
119
|
}, {
|
|
123
120
|
type: Attribute,
|
|
124
121
|
args: ['name']
|
|
125
|
-
}] }], propDecorators: {
|
|
122
|
+
}] }], propDecorators: { disabled: [{
|
|
123
|
+
type: Input,
|
|
124
|
+
args: [{ transform: booleanAttribute }]
|
|
125
|
+
}], sort: [{
|
|
126
126
|
type: Input
|
|
127
127
|
}], onClick: [{
|
|
128
128
|
type: HostListener,
|
|
129
129
|
args: ['click']
|
|
130
130
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULElBQUksRUFDSixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd6RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR3pDLE1BQU0scUJBQXFCO0NBQzFCO0FBRUQsTUFBTSwwQkFBMEIsR0FDSyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQWUxRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsMEJBQTBCO0lBUzdELFFBQVE7SUFDUixJQUNJLElBQUksQ0FBQyxLQUE4QjtRQUNuQywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNYLENBQUM7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENB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LENBQUMsTUFBTSxDQUFDO1lBQzVELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLCtCQUErQjtRQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0F4SFEsaUJBQWlCLHFFQTBCUyxNQUFNO2tHQTFCaEMsaUJBQWlCLDBRQ3RDOUIseVlBV0E7OzJGRDJCYSxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsT0FBTyxFQUFFLHNCQUFzQjt3QkFDL0Isa0JBQWtCLEVBQUUsWUFBWTtxQkFDbkMsVUFDTyxDQUFDLFVBQVUsQ0FBQyxpQkFDTCxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLOzswQkEyQmIsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLFNBQVM7MkJBQUMsTUFBTTt5Q0FmckMsSUFBSTtzQkFEUCxLQUFLO2dCQTRETixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYW5EaXNhYmxlLCBDYW5EaXNhYmxlQ29uc3RydWN0b3IsIG1peGluRGlzYWJsZWR9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7VGFibGVDb2x1bW5Tb3J0U3RyYXRlZ3l9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiVGFibGV9IGZyb20gJy4uL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3N0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuY2xhc3MgQmJUYWJsZUhlYWRlckNlbGxCYXNlIHtcbn1cblxuY29uc3QgQmJUYWJsZUhlYWRlckNlbGxNaXhpbkJhc2U6IENhbkRpc2FibGVDb25zdHJ1Y3RvclxuICAgICYgdHlwZW9mIEJiVGFibGVIZWFkZXJDZWxsQmFzZSA9IG1peGluRGlzYWJsZWQoQmJUYWJsZUhlYWRlckNlbGxCYXNlKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi10YWJsZS1oZWFkZXItY2VsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLXRhYmxlLWhlYWRlci1jZWxsJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCdcbiAgICB9LFxuICAgIGlucHV0czogWydkaXNhYmxlZCddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmJUYWJsZUhlYWRlckNlbGwgZXh0ZW5kcyBCYlRhYmxlSGVhZGVyQ2VsbE1peGluQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDYW5EaXNhYmxlIHtcblxuICAgIC8vIENvbnN0YW50cy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0RGlyZWN0aW9uczogVGFibGVDb2x1bW5Tb3J0U3RyYXRlZ3lbXSA9IFsnbm9uZScsICdhc2MnLCAnZGVzYyddO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8VGFibGVDb2x1bW5Tb3J0U3RyYXRlZ3k+KHRoaXMuX3NvcnREaXJlY3Rpb25zWzBdKTtcblxuICAgIC8vIERhdGEuXG4gICAgdmFsdWVDaGFuZ2VzJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLy8gU29ydC5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzb3J0KHZhbHVlOiBUYWJsZUNvbHVtblNvcnRTdHJhdGVneSkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgbmV3IHZhbHVlIGlzIGEgdmFsaWQgdmFsdWUuXG4gICAgICAgIGlmICghdGhpcy5fc29ydERpcmVjdGlvbnMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIHZhbHVlLlxuICAgICAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgc29ydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2wudmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF90YWJsZT86IEJiVGFibGUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEF0dHJpYnV0ZSgnbmFtZScpIHByaXZhdGUgX25hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgbmFtZSBhbmQgdGFibGUgYXJlIHNldC5cbiAgICAgICAgdGhpcy5fdGFibGU/LnNldEhlYWRlckNvdW50Py4oMSk7XG4gICAgICAgIGlmICghdGhpcy5fdGFibGUgfHwgIXRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjb250cm9sIGFscmVhZHkgZXhpc3RzIGluIHRoZSB0YWJsZS5cbiAgICAgICAgaWYgKHRoaXMuX3RhYmxlLnNvcnRDb250cm9sPy5jb250YWlucyh0aGlzLl9uYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2dXYXJuaW5nKGBCYlRhYmxlSGVhZGVyQ2VsbDogVGhlIG5hbWUgXCIke3RoaXMuX25hbWV9XCIgaXMgbm90IHVuaXF1ZSBpbiB0aGUgdGFibGU7IENvbnRyb2wgd2FzIG5vdCByZWdpc3RlcmVkLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVnaXN0ZXIgdGhlIGhlYWRlciBjZWxsIHdpdGggdGhlIHRhYmxlLlxuICAgICAgICB0aGlzLl90YWJsZS5zb3J0Q29udHJvbD8uYWRkQ29udHJvbCh0aGlzLl9uYW1lLCB0aGlzLl9jb250cm9sKTtcblxuICAgICAgICAvLyBHZXQgYWxsIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcyQgPSB0aGlzLl9jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX2NvbnRyb2wudmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl90YWJsZT8uc2V0SGVhZGVyQ291bnQ/LigtMSk7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIG5hbWUgYW5kIHRhYmxlIGFyZSBzZXQuXG4gICAgICAgIGlmICghdGhpcy5fdGFibGUgfHwgIXRoaXMuX25hbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVuLXJlZ2lzdGVyIHRoZSBoZWFkZXIgY2VsbCB3aXRoIHRoZSB0YWJsZS5cbiAgICAgICAgaWYgKHRoaXMuX3RhYmxlPy5zb3J0Q29udHJvbD8uY29udGFpbnModGhpcy5fbmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlPy5zb3J0Q29udHJvbD8ucmVtb3ZlQ29udHJvbCh0aGlzLl9uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc0Rpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5fbmFtZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGhlYWRlciBjZWxsIGlzIGRpc2FibGVkLlxuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5kIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudCBzb3J0IGFuZFxuICAgICAgICAvLyBjcmVhdGUgdGhlIG5ldyBpbmRleC5cbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9zb3J0RGlyZWN0aW9ucy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB0aGlzLl9jb250cm9sLnZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSAoaW5kZXggKyAxKSAlIHRoaXMuX3NvcnREaXJlY3Rpb25zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmV3U29ydCA9IHRoaXMuX3NvcnREaXJlY3Rpb25zW25ld0luZGV4XTtcblxuICAgICAgICAvLyBTZXQgdGhlIG5ldyBzb3J0LlxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUYWJsZUFuZEhlYWRlckNlbGwobmV3U29ydCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUYWJsZUFuZEhlYWRlckNlbGwodmFsdWU6IFRhYmxlQ29sdW1uU29ydFN0cmF0ZWd5KSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBuZXcgdmFsdWUgaXMgYSB2YWxpZCB2YWx1ZS5cbiAgICAgICAgaWYgKCF0aGlzLl9zb3J0RGlyZWN0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSB0YWJsZSBleGlzdHMuXG4gICAgICAgIGlmICghdGhpcy5fdGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSB0aGUgc2luZ2xlIHNvcnRpbmcgc3RyYXRlZ3kuXG4gICAgICAgIGlmICh0aGlzLl90YWJsZS5zb3J0aW5nU3RyYXRlZ3kgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVTaW5nbGVTb3J0aW5nU3RyYXRlZ3kodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmYXVsdCBjYXNlIHdoZW4gbm8gb3RoZXIgc3RyYXRlZ3lcbiAgICAgICAgLy8gaXMgdXNlZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2luZ2xlU29ydGluZ1N0cmF0ZWd5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBzb3J0IGNvbnRyb2wuXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl90YWJsZS5zb3J0Q29udHJvbDtcblxuICAgICAgICAvLyBTZXQgZWFjaCB2YWx1ZSB0byBmYWxzZSBzaW5jZSB3ZSBvbmx5IHdhbnQgdG9cbiAgICAgICAgLy8gc29ydCBvbiBvbmUgcHJvcGVydHkgYXQgYSB0aW1lIHdpdGggdGhpcyBzdHJhdGVneS5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBPYmplY3Qua2V5cyhjb250cm9sLmNvbnRyb2xzKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBwcmV2aW91c1tjdXJyZW50XSA9IGN1cnJlbnQgPT09IHRoaXMuX25hbWUgPyB2YWx1ZSA6ICdub25lJztcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIC8vIFBhdGNoIHRoZSBlbnRpcmUgc29ydCB2YWx1ZS5cbiAgICAgICAgdGhpcy5fdGFibGU/LnNvcnRDb250cm9sPy5wYXRjaFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvZ1dhcm5pbmcgPSAobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnNvbGUgJiYgY29uc29sZS53YXJuICYmIGNvbnNvbGUud2FybihtZXNzYWdlKTtcbiAgICB9O1xuXG59XG4iLCI8IS0tIFRoZSBjb250ZW50LiAtLT5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPCEtLSBUaGUgaW5kaWNhdG9yIGZvciB0aGUgc29ydCBkaXJlY3Rpb24uIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlQ2hhbmdlcyQgfCBhc3luYyBhcyB2YWx1ZVwiPlxuICAgIDxidXR0b24gKm5nSWY9XCIhaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICBbY2xhc3MuYXNjXT1cInZhbHVlID09PSAnYXNjJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZGVzY109XCJ2YWx1ZSA9PT0gJ2Rlc2MnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmItdGFibGUtaGVhZGVyLWNlbGwtdG9nZ2xlXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLWNlbGwvdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6SyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBaUJ6QyxNQUFNLE9BQU8saUJBQWlCO0lBWTFCLFFBQVE7SUFDUixJQUNJLElBQUksQ0FBQyxLQUE4QjtRQUNuQywyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNYLENBQUM7UUFFRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDL0Is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QUFDLENBQUM7UUFFUCwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBMUhRLGlCQUFpQixxRUE2QlMsTUFBTTtrR0E3QmhDLGlCQUFpQixxR0FPUCxnQkFBZ0Isa0xDN0J2Qyx3WEFZQSxtMUREUWMsU0FBUzs7MkZBRVYsaUJBQWlCO2tCQWQ3QixTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLE9BQU8sRUFBRSxzQkFBc0I7d0JBQy9CLGtCQUFrQixFQUFFLFlBQVk7cUJBQ25DLGlCQUNjLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUssY0FDZCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLENBQUM7OzBCQThCUCxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksU0FBUzsyQkFBQyxNQUFNO3lDQXRCSCxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQU9oQyxJQUFJO3NCQURQLEtBQUs7Z0JBMkROLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3QsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYWJsZUNvbHVtblNvcnRTdHJhdGVneX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7QmJUYWJsZX0gZnJvbSAnLi4vdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItdGFibGUtaGVhZGVyLWNlbGwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi10YWJsZS1oZWFkZXItY2VsbCcsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQnXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQmJUYWJsZUhlYWRlckNlbGwgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBDb25zdGFudHMuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc29ydERpcmVjdGlvbnM6IFRhYmxlQ29sdW1uU29ydFN0cmF0ZWd5W10gPSBbJ25vbmUnLCAnYXNjJywgJ2Rlc2MnXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb250cm9sID0gbmV3IEZvcm1Db250cm9sPFRhYmxlQ29sdW1uU29ydFN0cmF0ZWd5Pih0aGlzLl9zb3J0RGlyZWN0aW9uc1swXSk7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRGF0YS5cbiAgICB2YWx1ZUNoYW5nZXMkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvLyBTb3J0LlxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNvcnQodmFsdWU6IFRhYmxlQ29sdW1uU29ydFN0cmF0ZWd5KSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBuZXcgdmFsdWUgaXMgYSB2YWxpZCB2YWx1ZS5cbiAgICAgICAgaWYgKCF0aGlzLl9zb3J0RGlyZWN0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgdmFsdWUuXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX3RhYmxlPzogQmJUYWJsZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBAQXR0cmlidXRlKCduYW1lJykgcHJpdmF0ZSBfbmFtZT86IHN0cmluZykge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBuYW1lIGFuZCB0YWJsZSBhcmUgc2V0LlxuICAgICAgICB0aGlzLl90YWJsZT8uc2V0SGVhZGVyQ291bnQ/LigxKTtcbiAgICAgICAgaWYgKCF0aGlzLl90YWJsZSB8fCAhdGhpcy5fbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbnRyb2wgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHRhYmxlLlxuICAgICAgICBpZiAodGhpcy5fdGFibGUuc29ydENvbnRyb2w/LmNvbnRhaW5zKHRoaXMuX25hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ1dhcm5pbmcoYEJiVGFibGVIZWFkZXJDZWxsOiBUaGUgbmFtZSBcIiR7dGhpcy5fbmFtZX1cIiBpcyBub3QgdW5pcXVlIGluIHRoZSB0YWJsZTsgQ29udHJvbCB3YXMgbm90IHJlZ2lzdGVyZWQuYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWdpc3RlciB0aGUgaGVhZGVyIGNlbGwgd2l0aCB0aGUgdGFibGUuXG4gICAgICAgIHRoaXMuX3RhYmxlLnNvcnRDb250cm9sPy5hZGRDb250cm9sKHRoaXMuX25hbWUsIHRoaXMuX2NvbnRyb2wpO1xuXG4gICAgICAgIC8vIEdldCBhbGwgdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzJCA9IHRoaXMuX2NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fY29udHJvbC52YWx1ZSBhcyBzdHJpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3RhYmxlPy5zZXRIZWFkZXJDb3VudD8uKC0xKTtcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgbmFtZSBhbmQgdGFibGUgYXJlIHNldC5cbiAgICAgICAgaWYgKCF0aGlzLl90YWJsZSB8fCAhdGhpcy5fbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW4tcmVnaXN0ZXIgdGhlIGhlYWRlciBjZWxsIHdpdGggdGhlIHRhYmxlLlxuICAgICAgICBpZiAodGhpcy5fdGFibGU/LnNvcnRDb250cm9sPy5jb250YWlucyh0aGlzLl9uYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5fdGFibGU/LnNvcnRDb250cm9sPy5yZW1vdmVDb250cm9sKHRoaXMuX25hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLl9uYW1lO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgaGVhZGVyIGNlbGwgaXMgZGlzYWJsZWQuXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IHNvcnQgYW5kXG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgbmV3IGluZGV4LlxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX3NvcnREaXJlY3Rpb25zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRoaXMuX2NvbnRyb2wudmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5fc29ydERpcmVjdGlvbnMubGVuZ3RoO1xuICAgICAgICBjb25zdCBuZXdTb3J0ID0gdGhpcy5fc29ydERpcmVjdGlvbnNbbmV3SW5kZXhdO1xuXG4gICAgICAgIC8vIFNldCB0aGUgbmV3IHNvcnQuXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVRhYmxlQW5kSGVhZGVyQ2VsbChuZXdTb3J0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRhYmxlQW5kSGVhZGVyQ2VsbCh2YWx1ZTogVGFibGVDb2x1bW5Tb3J0U3RyYXRlZ3kpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG5ldyB2YWx1ZSBpcyBhIHZhbGlkIHZhbHVlLlxuICAgICAgICBpZiAoIXRoaXMuX3NvcnREaXJlY3Rpb25zLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHRhYmxlIGV4aXN0cy5cbiAgICAgICAgaWYgKCF0aGlzLl90YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIHRoZSBzaW5nbGUgc29ydGluZyBzdHJhdGVneS5cbiAgICAgICAgaWYgKHRoaXMuX3RhYmxlLnNvcnRpbmdTdHJhdGVneSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVNpbmdsZVNvcnRpbmdTdHJhdGVneSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZhdWx0IGNhc2Ugd2hlbiBubyBvdGhlciBzdHJhdGVneVxuICAgICAgICAvLyBpcyB1c2VkLlxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVTaW5nbGVTb3J0aW5nU3RyYXRlZ3kodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyBHZXQgdGhlIHNvcnQgY29udHJvbC5cbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX3RhYmxlLnNvcnRDb250cm9sO1xuXG4gICAgICAgIC8vIFNldCBlYWNoIHZhbHVlIHRvIGZhbHNlIHNpbmNlIHdlIG9ubHkgd2FudCB0b1xuICAgICAgICAvLyBzb3J0IG9uIG9uZSBwcm9wZXJ0eSBhdCBhIHRpbWUgd2l0aCB0aGlzIHN0cmF0ZWd5LlxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IE9iamVjdC5rZXlzKGNvbnRyb2wuY29udHJvbHMpLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIHByZXZpb3VzW2N1cnJlbnRdID0gY3VycmVudCA9PT0gdGhpcy5fbmFtZSA/IHZhbHVlIDogJ25vbmUnO1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgLy8gUGF0Y2ggdGhlIGVudGlyZSBzb3J0IHZhbHVlLlxuICAgICAgICB0aGlzLl90YWJsZT8uc29ydENvbnRyb2w/LnBhdGNoVmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9nV2FybmluZyA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc29sZSAmJiBjb25zb2xlLndhcm4gJiYgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgIH07XG5cbn1cbiIsIjwhLS0gVGhlIGNvbnRlbnQuIC0tPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48IS0tIFRoZSBpbmRpY2F0b3IgZm9yIHRoZSBzb3J0IGRpcmVjdGlvbi4gLS0+XG5AaWYgKHZhbHVlQ2hhbmdlcyQgfCBhc3luYzsgYXMgdmFsdWUpIHtcbiAgICBAaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICAgIDxidXR0b24gW2NsYXNzLmFzY109XCJ2YWx1ZSA9PT0gJ2FzYydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kZXNjXT1cInZhbHVlID09PSAnZGVzYydcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItdGFibGUtaGVhZGVyLWNlbGwtdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XG4gICAgfVxufVxuIl19
|