@bravobit/bb-foundation 0.26.3 → 0.28.0
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.service.d.ts +2 -2
- package/auth/lib/directives/authenticated.directive.d.ts +1 -1
- package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
- package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
- package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
- package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
- package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
- package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
- package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
- package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
- package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
- package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
- package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
- package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
- package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
- package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
- package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
- package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
- package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
- package/elements/lib/avatar/avatar.component.d.ts +1 -1
- package/elements/lib/button/button.component.d.ts +2 -2
- package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
- package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
- package/elements/lib/directives/input.directive.d.ts +2 -2
- package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
- package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
- package/elements/lib/form-control/form-control.component.d.ts +1 -1
- package/elements/lib/form-error/form-error.component.d.ts +1 -1
- package/elements/lib/form-group/form-group.component.d.ts +1 -1
- package/elements/lib/icon/icon.component.d.ts +1 -1
- package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
- package/elements/lib/spinner/spinner.component.d.ts +1 -1
- package/{esm2020 → esm2022}/auth/lib/auth.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/auth/lib/auth.module.mjs +5 -5
- package/esm2022/auth/lib/auth.service.mjs +269 -0
- package/{esm2020 → esm2022}/auth/lib/directives/authenticated.directive.mjs +4 -4
- package/{esm2020 → esm2022}/auth/lib/guards/anonymous.guard.mjs +4 -4
- package/{esm2020 → esm2022}/auth/lib/guards/authenticated.guard.mjs +4 -4
- package/{esm2020 → esm2022}/collections/lib/collections.module.mjs +21 -21
- package/{esm2020 → esm2022}/collections/lib/components/collections-pager/collections-pager.component.mjs +4 -4
- package/{esm2020 → esm2022}/collections/lib/components/collections-viewer/collections-viewer.component.mjs +4 -4
- package/{esm2020 → esm2022}/collections/lib/components/collections.directive.mjs +13 -13
- package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox/checkbox.component.mjs +6 -6
- package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox.module.mjs +5 -5
- package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/control-error/control-error-submit.directive.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/control-error/control-error.module.mjs +5 -5
- package/{esm2020 → esm2022}/controls/lib/controls.module.mjs +21 -21
- package/{esm2020 → esm2022}/controls/lib/form-control/form-control/form-control.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/form-control/form-control-input.directive.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/form-control/form-control.module.mjs +9 -9
- package/{esm2020 → esm2022}/controls/lib/radio/radio-button/radio-button.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/radio/radio-group/radio-group.component.mjs +6 -6
- package/{esm2020 → esm2022}/controls/lib/radio/radio.module.mjs +5 -5
- package/{esm2020 → esm2022}/controls/lib/toggle/toggle/toggle.component.mjs +6 -6
- package/{esm2020 → esm2022}/controls/lib/toggle/toggle-group/toggle-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/controls/lib/toggle/toggle.module.mjs +5 -5
- package/{esm2020 → esm2022}/dashboard/lib/dashboard/dashboard.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/dashboard/lib/dashboard.module.mjs +17 -17
- package/{esm2020 → esm2022}/dialog/lib/dialog-actions/dialog-actions.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-header/dialog-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog.insertion.mjs +4 -4
- package/{esm2020 → esm2022}/dialog/lib/dialog.module.mjs +20 -20
- package/{esm2020 → esm2022}/dialog/lib/dialog.service.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/avatar/avatar.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/button/button.component.mjs +7 -7
- package/{esm2020 → esm2022}/elements/lib/checkbox/checkbox.component.mjs +6 -6
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +307 -0
- package/{esm2020 → esm2022}/elements/lib/directives/addon.directive.mjs +7 -7
- package/{esm2020 → esm2022}/elements/lib/directives/form-submit.directive.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/directives/form-submitter.directive.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/directives/input.directive.mjs +7 -7
- package/esm2022/elements/lib/dropdown/dropdown.component.mjs +100 -0
- package/{esm2020 → esm2022}/elements/lib/elements.module.mjs +65 -65
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +236 -0
- package/{esm2020 → esm2022}/elements/lib/form-control/form-control.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/form-error/form-error.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/form-group/form-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/icon/icon.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/image-picker/image-picker.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/pipes/file-image.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/pipes/file-size.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/pipes/relative-time.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/spinner/spinner.component.mjs +4 -4
- package/{esm2020 → esm2022}/elements/lib/tag/tag.component.mjs +4 -4
- package/esm2022/http/lib/classes/http.config.mjs +28 -0
- package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +1 -1
- package/{esm2020 → esm2022}/http/lib/http.module.mjs +5 -5
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +64 -0
- package/{esm2020 → esm2022}/http/lib/interceptors/error.interceptor.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/clipboard.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/exif.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/file-loader.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/image-converter.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/languages.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/network.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/services/patch.service.mjs +4 -4
- package/{esm2020 → esm2022}/localize/lib/localize.module.mjs +9 -9
- package/{esm2020 → esm2022}/localize/lib/localize.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/localize/lib/localize.service.mjs +4 -4
- package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +2 -3
- package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +2 -3
- package/{esm2020 → esm2022}/localize/lib/views/localize-string/localize-string.component.mjs +4 -4
- package/{esm2020 → esm2022}/localize/lib/views/localize-template.directive.mjs +4 -4
- package/{esm2020 → esm2022}/masking/lib/directives/currency-mask.directive.mjs +4 -4
- package/{esm2020 → esm2022}/masking/lib/directives/date-mask.directive.mjs +4 -4
- package/{esm2020 → esm2022}/masking/lib/directives/input-mask.directive.mjs +4 -4
- package/{esm2020 → esm2022}/masking/lib/masking.module.mjs +9 -9
- package/{esm2020 → esm2022}/masking/lib/masking.service.mjs +4 -4
- package/{esm2020 → esm2022}/notifications/lib/notifications-item/notifications-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/notifications/lib/notifications-list/notifications-list.component.mjs +4 -4
- package/{esm2020 → esm2022}/notifications/lib/notifications.module.mjs +5 -5
- package/{esm2020 → esm2022}/notifications/lib/notifications.service.mjs +4 -4
- package/{esm2020 → esm2022}/permissions/lib/directives/permission.directive.mjs +4 -4
- package/{esm2020 → esm2022}/permissions/lib/guards/permission.guard.mjs +4 -4
- package/{esm2020 → esm2022}/permissions/lib/permissions.module.mjs +5 -5
- package/{esm2020 → esm2022}/permissions/lib/permissions.service.mjs +4 -4
- package/{esm2020 → esm2022}/recaptcha/lib/recaptcha/recaptcha.component.mjs +10 -10
- package/{esm2020 → esm2022}/recaptcha/lib/recaptcha-loader.service.mjs +4 -4
- package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.module.mjs +5 -5
- package/{esm2020 → esm2022}/storage/lib/storage.service.mjs +4 -4
- package/{esm2020 → esm2022}/table/lib/components/table/table.component.mjs +10 -10
- package/{esm2020 → esm2022}/table/lib/components/table-cell/table-cell.component.mjs +4 -4
- package/{esm2020 → esm2022}/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
- package/{esm2020 → esm2022}/table/lib/components/table-pager/table-pager.component.mjs +6 -6
- package/{esm2020 → esm2022}/table/lib/table.module.mjs +15 -15
- package/{esm2020 → esm2022}/theming/lib/theming.directive.mjs +4 -4
- package/{esm2020 → esm2022}/theming/lib/theming.module.mjs +5 -5
- package/{esm2020 → esm2022}/tooltip/lib/tooltip-container/tooltip-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/tooltip/lib/tooltip.directive.mjs +4 -4
- package/{esm2020 → esm2022}/tooltip/lib/tooltip.module.mjs +8 -8
- package/{esm2020 → esm2022}/utils/lib/directives/autosize.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/lib/directives/focus-trap.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/lib/directives/focus.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/lib/directives/template.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/lib/utils.module.mjs +11 -11
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +21 -22
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +37 -23
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +34 -34
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +22 -22
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
- package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
- package/http/lib/classes/http.config.d.ts +2 -2
- package/http/lib/http.interfaces.d.ts +9 -4
- package/http/lib/interceptors/base-url.interceptor.d.ts +3 -1
- 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/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/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
- package/package.json +64 -106
- package/permissions/lib/directives/permission.directive.d.ts +1 -1
- package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
- package/table/lib/components/table/table.component.d.ts +1 -1
- package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
- package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
- package/theming/lib/theming.directive.d.ts +1 -1
- package/tooltip/lib/tooltip.directive.d.ts +1 -1
- package/utils/lib/directives/autosize.directive.d.ts +1 -1
- package/utils/lib/directives/template.directive.d.ts +1 -1
- package/esm2020/auth/lib/auth.service.mjs +0 -270
- package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
- package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
- package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
- package/esm2020/http/lib/classes/http.config.mjs +0 -28
- package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
- package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
- package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
- package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
- package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
- package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
- package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
- package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
- package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
- package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
- package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
- package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
- package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
- package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
- package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
- package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-table.mjs +0 -613
- package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
- package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
- package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
- package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
- package/fesm2015/bravobit-bb-foundation.mjs +0 -929
- package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
- package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
- package/fesm2020/bravobit-bb-foundation-http.mjs.map +0 -1
- /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
- /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
- /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
- /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
- /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
- /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
- /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
- /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/data/generic.data.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
- /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/public_api.mjs +0 -0
- /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
- /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { mixinDisabled, mixinGrouped, mixinRequired, mixinError, mixinHideErrors } from '@bravobit/bb-foundation';
|
|
3
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { animate, style, transition, trigger } from '@angular/animations';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@bravobit/bb-foundation/utils";
|
|
9
|
-
import * as i3 from "../form-error/form-error.component";
|
|
10
|
-
import * as i4 from "@bravobit/bb-foundation/localize";
|
|
11
|
-
import * as i5 from "../pipes/file-size.pipe";
|
|
12
|
-
import * as i6 from "../pipes/file-image.pipe";
|
|
13
|
-
let nextUniqueId = 0;
|
|
14
|
-
class BbFilePickerBase {
|
|
15
|
-
}
|
|
16
|
-
const BbFilePickerMixinBase = mixinRequired(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbFilePickerBase)))));
|
|
17
|
-
export class BbFilePicker extends BbFilePickerMixinBase {
|
|
18
|
-
constructor() {
|
|
19
|
-
super(...arguments);
|
|
20
|
-
// Inputs.
|
|
21
|
-
this.label = null;
|
|
22
|
-
this.hint = null;
|
|
23
|
-
this.accept = null;
|
|
24
|
-
this.showImages = true;
|
|
25
|
-
this.allowDragging = true;
|
|
26
|
-
// State.
|
|
27
|
-
this.labelId = `bb-file-picker-${nextUniqueId++}`;
|
|
28
|
-
this.hovered = false;
|
|
29
|
-
this.value$ = new BehaviorSubject({});
|
|
30
|
-
this.valueChange = new EventEmitter();
|
|
31
|
-
this.onTouchedCallback = () => {
|
|
32
|
-
};
|
|
33
|
-
this.onChangeCallback = () => {
|
|
34
|
-
};
|
|
35
|
-
this.saveFile = (files) => {
|
|
36
|
-
// Validate the files exist.
|
|
37
|
-
if (!files) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
// Retrieve the first file.
|
|
41
|
-
const file = files[0];
|
|
42
|
-
// Validate the first file exists.
|
|
43
|
-
if (!file) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// Save the file.
|
|
47
|
-
this.value = file;
|
|
48
|
-
};
|
|
49
|
-
this.getFileListFromEvent = (event) => {
|
|
50
|
-
const element = event.target;
|
|
51
|
-
if (!element) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
return element.files;
|
|
55
|
-
};
|
|
56
|
-
this.preventDefault = (event) => {
|
|
57
|
-
event.preventDefault();
|
|
58
|
-
event.stopPropagation();
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
get value() {
|
|
62
|
-
const { file } = this.value$.getValue();
|
|
63
|
-
return file;
|
|
64
|
-
}
|
|
65
|
-
set value(value) {
|
|
66
|
-
this.value$.next({ file: value });
|
|
67
|
-
this.valueChange.emit(value);
|
|
68
|
-
}
|
|
69
|
-
onDrag(event, isHovered) {
|
|
70
|
-
// Validate the input can support drag.
|
|
71
|
-
if (!this.allowDragging || this.disabled) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
// Prevent the default event action
|
|
75
|
-
// and start the hovering.
|
|
76
|
-
this.preventDefault(event);
|
|
77
|
-
this.hovered = isHovered;
|
|
78
|
-
}
|
|
79
|
-
onDrop(event) {
|
|
80
|
-
// Validate the input can support drag.
|
|
81
|
-
if (!this.allowDragging || this.disabled) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
// Prevent the default event action
|
|
85
|
-
// and stop the hovering.
|
|
86
|
-
this.preventDefault(event);
|
|
87
|
-
this.hovered = false;
|
|
88
|
-
// Save the file.
|
|
89
|
-
this.saveFile(event['dataTransfer'].files);
|
|
90
|
-
// Run the on change callback.
|
|
91
|
-
this.onChangeCallback(this.value);
|
|
92
|
-
}
|
|
93
|
-
onButtonPressed(file) {
|
|
94
|
-
if (file) {
|
|
95
|
-
this.value = null;
|
|
96
|
-
this.onChangeCallback(this.value);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
return this.openFilePicker();
|
|
100
|
-
}
|
|
101
|
-
openFilePicker() {
|
|
102
|
-
return this.fileInput
|
|
103
|
-
&& this.fileInput.nativeElement
|
|
104
|
-
&& this.fileInput.nativeElement.click
|
|
105
|
-
&& this.fileInput.nativeElement.click();
|
|
106
|
-
}
|
|
107
|
-
onFileChange(event) {
|
|
108
|
-
// Validate the input is not disabled.
|
|
109
|
-
if (this.disabled) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
// Extract the file from the event.
|
|
113
|
-
const fileList = this.getFileListFromEvent(event);
|
|
114
|
-
// Save the file.
|
|
115
|
-
this.saveFile(fileList);
|
|
116
|
-
// Run the on change callback.
|
|
117
|
-
this.onChangeCallback(this.value);
|
|
118
|
-
// Clear the file input.
|
|
119
|
-
if (this.fileInput && this.fileInput.nativeElement) {
|
|
120
|
-
this.fileInput.nativeElement.value = '';
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
writeValue(value) {
|
|
124
|
-
this.value = value;
|
|
125
|
-
}
|
|
126
|
-
registerOnChange(method) {
|
|
127
|
-
this.onChangeCallback = method;
|
|
128
|
-
}
|
|
129
|
-
registerOnTouched(method) {
|
|
130
|
-
this.onTouchedCallback = method;
|
|
131
|
-
}
|
|
132
|
-
setDisabledState(isDisabled) {
|
|
133
|
-
this.disabled = isDisabled;
|
|
134
|
-
}
|
|
135
|
-
onErrorChange(error) {
|
|
136
|
-
this.error = !!error;
|
|
137
|
-
}
|
|
138
|
-
validate({ value }) {
|
|
139
|
-
if (value === null || value === undefined) {
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
|
-
const regexString = (this.accept || '*')
|
|
143
|
-
.replace(/\*/g, '.\*')
|
|
144
|
-
.replace(/,/g, '|');
|
|
145
|
-
const mimeTypeRegex = new RegExp(regexString);
|
|
146
|
-
const isNotValid = (typeof File === 'undefined') || !(value instanceof File) || !mimeTypeRegex.test(value?.type);
|
|
147
|
-
return isNotValid && {
|
|
148
|
-
invalidFileType: true
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
|
|
154
|
-
{
|
|
155
|
-
provide: NG_VALUE_ACCESSOR,
|
|
156
|
-
useExisting: forwardRef(() => BbFilePicker),
|
|
157
|
-
multi: true
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
provide: NG_VALIDATORS,
|
|
161
|
-
useExisting: BbFilePicker,
|
|
162
|
-
multi: true
|
|
163
|
-
}
|
|
164
|
-
], queries: [{ propertyName: "extraTemplate", first: true, predicate: ["extra"], descendants: true }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- The label of the input. -->\n<label *ngIf=\"label as labelContent\"\n [for]=\"labelId\"\n class=\"bb-file-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input that can open the file picker. -->\n<input #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-file-picker-input\"\n type=\"file\"\n tabindex=\"-1\">\n\n<div *ngIf=\"value$ | async as data\"\n class=\"bb-file-picker-wrapper\">\n <!-- The button that accepts files. -->\n <div class=\"bb-file-picker-container\">\n <button [class.destructive]=\"!!data?.file\"\n [class.standalone]=\"!allowDragging\"\n [disabled]=\"disabled\"\n [id]=\"labelId\"\n (click)=\"onButtonPressed(data?.file)\"\n type=\"button\"\n class=\"bb-file-picker-button\">\n <ng-container *ngTemplateOutlet=\"data?.file ? closeIcon : uploadIcon\"></ng-container>\n {{ (data?.file ? 'file-picker.remove' : 'file-picker.choose') | bbLocalize }}\n </button>\n <div *ngIf=\"allowDragging\"\n class=\"bb-file-picker-zone\">\n {{ 'file-picker.drop' | bbLocalize }}\n </div>\n </div>\n\n <ng-container *ngIf=\"!!extraTemplate\">\n <ng-container *ngTemplateOutlet=\"extraTemplate; context: {$implicit: data?.file}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"showImages\">\n <div *ngIf=\"data?.file | bbFileImage | async as image\"\n class=\"bb-file-picker-image-container\">\n <div class=\"bb-file-picker-image-wrapper\">\n <div [@bbFilePickerImageAnimation]=\"true\"\n [style.padding-top.%]=\"image?.aspectRatio * 100\"\n [style.background-image]=\"image?.background\"\n class=\"bb-file-picker-image\">\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Extra information of the file. -->\n <div [class.visible]=\"!!data?.file\"\n class=\"bb-file-picker-info\">\n <span *ngIf=\"data?.file?.name as name\">{{ name }}</span>\n <span *ngIf=\"data?.file?.size as size\">{{ size | bbFileSize }}</span>\n </div>\n</div>\n\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The file picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-file-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n\n<!-- Upload icon. -->\n<ng-template #uploadIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"></path>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\n </svg>\n</ng-template>\n\n<!-- Close icon. -->\n<ng-template #closeIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n</ng-template>\n", styles: [".bb-file-picker{display:block}.bb-file-picker.disabled>.bb-file-picker-wrapper{cursor:default;background-color:#cccccca3}.bb-file-picker.grouped{margin-bottom:20px}.bb-file-picker.full>.bb-file-picker-wrapper{width:100%}.bb-file-picker:not(.disabled) .bb-file-picker-button{background-color:#fff}.bb-file-picker:not(.disabled):focus>.bb-file-picker-wrapper,.bb-file-picker:not(.disabled).hovered>.bb-file-picker-wrapper{box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-file-picker.required>.bb-file-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-file-picker.error>.bb-file-picker-label{color:#c23934}.bb-file-picker.error>.bb-file-picker-hint{display:none}.bb-file-picker.error>.bb-file-picker-wrapper{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-file-picker.error .bb-file-picker-button{background-color:transparent}.bb-file-picker-wrapper{max-width:100%;-webkit-user-select:none;user-select:none;border-radius:3px;display:inline-flex;flex-direction:column;border:1px solid #b6bbc1;background-color:#fff8ff;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-file-picker-label{color:#000;display:block;position:relative;margin-bottom:4px}.bb-file-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-file-picker-container{min-height:38px;display:inline-flex}.bb-file-picker-button{margin:0;z-index:1;border:none;color:#2196f3;line-height:1;cursor:pointer;padding:0 12px;-webkit-appearance:none;appearance:none;font-weight:500;align-items:center;white-space:nowrap;display:inline-flex;border-top-left-radius:3px;border-bottom-left-radius:3px;border-right:1px solid #b6bbc1;background-color:#ffffff80;transition:box-shadow .2s cubic-bezier(0,0,.2,1)}.bb-file-picker-button:focus{box-shadow:0 0 0 3px #007bff33}.bb-file-picker-button:disabled{cursor:default}.bb-file-picker-button.destructive{color:#f55656}.bb-file-picker-button.standalone{width:100%;border-right:none;border-top-right-radius:3px;border-bottom-right-radius:3px}.bb-file-picker-icon{margin-right:4px}.bb-file-picker-zone{flex:1;color:#848f99;font-size:14px;padding:8px 12px;line-height:18px;align-items:center;display:inline-flex;justify-content:center}.bb-file-picker-info{height:0;color:#848f99;padding:0 12px;overflow:hidden;line-height:36px;align-items:center;display:inline-flex;background-color:#fff8ff;border-top:0 solid #b6bbc1;transition:height .2s cubic-bezier(0,0,.2,1)}.bb-file-picker-info.visible{height:38px;border-top-width:1px}.bb-file-picker-info>span{opacity:.4;max-width:100%;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-file-picker-info>span:first-child{flex:1}.bb-file-picker-info>span:last-child{margin-left:12px}.bb-file-picker-image-container{overflow:hidden;border-top:1px solid #b6bbc1}.bb-file-picker-image-wrapper{width:100%;max-width:40%;margin:20px auto}.bb-file-picker-image{width:100%;display:flex;overflow:hidden;position:relative;border-radius:4px;will-change:opacity;background-size:cover;background-position:center;background-repeat:no-repeat}.bb-file-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px}\n"], dependencies: [{ 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: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i3.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbLocalize, name: "bbLocalize" }, { kind: "pipe", type: i5.BbFileSize, name: "bbFileSize" }, { kind: "pipe", type: i6.BbFileImage, name: "bbFileImage" }], animations: [
|
|
165
|
-
trigger('bbFilePickerImageAnimation', [
|
|
166
|
-
transition(':enter', [
|
|
167
|
-
style({ opacity: 0 }),
|
|
168
|
-
animate('200ms', style({ opacity: 1 }))
|
|
169
|
-
]),
|
|
170
|
-
transition(':leave', [
|
|
171
|
-
animate('200ms', style({ opacity: 0 }))
|
|
172
|
-
])
|
|
173
|
-
])
|
|
174
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbFilePicker, decorators: [{
|
|
176
|
-
type: Component,
|
|
177
|
-
args: [{ selector: 'bb-file-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
178
|
-
{
|
|
179
|
-
provide: NG_VALUE_ACCESSOR,
|
|
180
|
-
useExisting: forwardRef(() => BbFilePicker),
|
|
181
|
-
multi: true
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
provide: NG_VALIDATORS,
|
|
185
|
-
useExisting: BbFilePicker,
|
|
186
|
-
multi: true
|
|
187
|
-
}
|
|
188
|
-
], host: {
|
|
189
|
-
'class': 'bb-file-picker',
|
|
190
|
-
'[class.required]': 'required',
|
|
191
|
-
'[class.disabled]': 'disabled',
|
|
192
|
-
'[class.grouped]': 'grouped',
|
|
193
|
-
'[class.hovered]': 'hovered',
|
|
194
|
-
'[class.error]': 'error'
|
|
195
|
-
}, animations: [
|
|
196
|
-
trigger('bbFilePickerImageAnimation', [
|
|
197
|
-
transition(':enter', [
|
|
198
|
-
style({ opacity: 0 }),
|
|
199
|
-
animate('200ms', style({ opacity: 1 }))
|
|
200
|
-
]),
|
|
201
|
-
transition(':leave', [
|
|
202
|
-
animate('200ms', style({ opacity: 0 }))
|
|
203
|
-
])
|
|
204
|
-
])
|
|
205
|
-
], inputs: ['disabled', 'hideErrors', 'grouped', 'required'], preserveWhitespaces: false, template: "<!-- The label of the input. -->\n<label *ngIf=\"label as labelContent\"\n [for]=\"labelId\"\n class=\"bb-file-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input that can open the file picker. -->\n<input #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-file-picker-input\"\n type=\"file\"\n tabindex=\"-1\">\n\n<div *ngIf=\"value$ | async as data\"\n class=\"bb-file-picker-wrapper\">\n <!-- The button that accepts files. -->\n <div class=\"bb-file-picker-container\">\n <button [class.destructive]=\"!!data?.file\"\n [class.standalone]=\"!allowDragging\"\n [disabled]=\"disabled\"\n [id]=\"labelId\"\n (click)=\"onButtonPressed(data?.file)\"\n type=\"button\"\n class=\"bb-file-picker-button\">\n <ng-container *ngTemplateOutlet=\"data?.file ? closeIcon : uploadIcon\"></ng-container>\n {{ (data?.file ? 'file-picker.remove' : 'file-picker.choose') | bbLocalize }}\n </button>\n <div *ngIf=\"allowDragging\"\n class=\"bb-file-picker-zone\">\n {{ 'file-picker.drop' | bbLocalize }}\n </div>\n </div>\n\n <ng-container *ngIf=\"!!extraTemplate\">\n <ng-container *ngTemplateOutlet=\"extraTemplate; context: {$implicit: data?.file}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"showImages\">\n <div *ngIf=\"data?.file | bbFileImage | async as image\"\n class=\"bb-file-picker-image-container\">\n <div class=\"bb-file-picker-image-wrapper\">\n <div [@bbFilePickerImageAnimation]=\"true\"\n [style.padding-top.%]=\"image?.aspectRatio * 100\"\n [style.background-image]=\"image?.background\"\n class=\"bb-file-picker-image\">\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Extra information of the file. -->\n <div [class.visible]=\"!!data?.file\"\n class=\"bb-file-picker-info\">\n <span *ngIf=\"data?.file?.name as name\">{{ name }}</span>\n <span *ngIf=\"data?.file?.size as size\">{{ size | bbFileSize }}</span>\n </div>\n</div>\n\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The file picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-file-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n\n<!-- Upload icon. -->\n<ng-template #uploadIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"></path>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\n </svg>\n</ng-template>\n\n<!-- Close icon. -->\n<ng-template #closeIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n</ng-template>\n", styles: [".bb-file-picker{display:block}.bb-file-picker.disabled>.bb-file-picker-wrapper{cursor:default;background-color:#cccccca3}.bb-file-picker.grouped{margin-bottom:20px}.bb-file-picker.full>.bb-file-picker-wrapper{width:100%}.bb-file-picker:not(.disabled) .bb-file-picker-button{background-color:#fff}.bb-file-picker:not(.disabled):focus>.bb-file-picker-wrapper,.bb-file-picker:not(.disabled).hovered>.bb-file-picker-wrapper{box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #007bff33}.bb-file-picker.required>.bb-file-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-file-picker.error>.bb-file-picker-label{color:#c23934}.bb-file-picker.error>.bb-file-picker-hint{display:none}.bb-file-picker.error>.bb-file-picker-wrapper{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-file-picker.error .bb-file-picker-button{background-color:transparent}.bb-file-picker-wrapper{max-width:100%;-webkit-user-select:none;user-select:none;border-radius:3px;display:inline-flex;flex-direction:column;border:1px solid #b6bbc1;background-color:#fff8ff;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a}.bb-file-picker-label{color:#000;display:block;position:relative;margin-bottom:4px}.bb-file-picker-input{opacity:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;position:absolute}.bb-file-picker-container{min-height:38px;display:inline-flex}.bb-file-picker-button{margin:0;z-index:1;border:none;color:#2196f3;line-height:1;cursor:pointer;padding:0 12px;-webkit-appearance:none;appearance:none;font-weight:500;align-items:center;white-space:nowrap;display:inline-flex;border-top-left-radius:3px;border-bottom-left-radius:3px;border-right:1px solid #b6bbc1;background-color:#ffffff80;transition:box-shadow .2s cubic-bezier(0,0,.2,1)}.bb-file-picker-button:focus{box-shadow:0 0 0 3px #007bff33}.bb-file-picker-button:disabled{cursor:default}.bb-file-picker-button.destructive{color:#f55656}.bb-file-picker-button.standalone{width:100%;border-right:none;border-top-right-radius:3px;border-bottom-right-radius:3px}.bb-file-picker-icon{margin-right:4px}.bb-file-picker-zone{flex:1;color:#848f99;font-size:14px;padding:8px 12px;line-height:18px;align-items:center;display:inline-flex;justify-content:center}.bb-file-picker-info{height:0;color:#848f99;padding:0 12px;overflow:hidden;line-height:36px;align-items:center;display:inline-flex;background-color:#fff8ff;border-top:0 solid #b6bbc1;transition:height .2s cubic-bezier(0,0,.2,1)}.bb-file-picker-info.visible{height:38px;border-top-width:1px}.bb-file-picker-info>span{opacity:.4;max-width:100%;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-file-picker-info>span:first-child{flex:1}.bb-file-picker-info>span:last-child{margin-left:12px}.bb-file-picker-image-container{overflow:hidden;border-top:1px solid #b6bbc1}.bb-file-picker-image-wrapper{width:100%;max-width:40%;margin:20px auto}.bb-file-picker-image{width:100%;display:flex;overflow:hidden;position:relative;border-radius:4px;will-change:opacity;background-size:cover;background-position:center;background-repeat:no-repeat}.bb-file-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px}\n"] }]
|
|
206
|
-
}], propDecorators: { fileInput: [{
|
|
207
|
-
type: ViewChild,
|
|
208
|
-
args: ['fileInput', { static: true }]
|
|
209
|
-
}], extraTemplate: [{
|
|
210
|
-
type: ContentChild,
|
|
211
|
-
args: ['extra']
|
|
212
|
-
}], label: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], hint: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], accept: [{
|
|
217
|
-
type: Input
|
|
218
|
-
}], showImages: [{
|
|
219
|
-
type: Input
|
|
220
|
-
}], allowDragging: [{
|
|
221
|
-
type: Input
|
|
222
|
-
}], value: [{
|
|
223
|
-
type: Input
|
|
224
|
-
}], valueChange: [{
|
|
225
|
-
type: Output
|
|
226
|
-
}], onDrag: [{
|
|
227
|
-
type: HostListener,
|
|
228
|
-
args: ['dragover', ['$event', 'true']]
|
|
229
|
-
}, {
|
|
230
|
-
type: HostListener,
|
|
231
|
-
args: ['dragleave', ['$event', 'false']]
|
|
232
|
-
}], onDrop: [{
|
|
233
|
-
type: HostListener,
|
|
234
|
-
args: ['drop', ['$event']]
|
|
235
|
-
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9maWxlLXBpY2tlci9maWxlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFXSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBb0MsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBRXJDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQixNQUFNLGdCQUFnQjtDQUNyQjtBQUVELE1BQU0scUJBQXFCLEdBTXJCLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBMENoRyxNQUFNLE9BQU8sWUFBYSxTQUFRLHFCQUFxQjtJQXhDdkQ7O1FB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LE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQztnQ0FDbkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs2QkFDeEMsQ0FBQzs0QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzZCQUN4QyxDQUFDO3lCQUNMLENBQUM7cUJBQ0wsVUFDTyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyx1QkFDcEMsS0FBSzs4QkFLYyxTQUFTO3NCQUFoRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ2YsYUFBYTtzQkFBbkMsWUFBWTt1QkFBQyxPQUFPO2dCQUdaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7Z0JBTUksV0FBVztzQkFBcEIsTUFBTTtnQkFTUCxNQUFNO3NCQUZMLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzs7c0JBQzNDLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztnQkFjOUMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkRpc2FibGVDb25zdHJ1Y3RvcixcbiAgICBJc0dyb3VwZWQsXG4gICAgSXNHcm91cGVkQ29uc3RydWN0b3IsXG4gICAgSXNSZXF1aXJlZCxcbiAgICBJc1JlcXVpcmVkQ29uc3RydWN0b3IsXG4gICAgQ2FuSGlkZUVycm9ycyxcbiAgICBDYW5IaWRlRXJyb3JzQ29uc3RydWN0b3IsXG4gICAgSGFzRXJyb3IsXG4gICAgSGFzRXJyb3JDb25zdHJ1Y3RvcixcbiAgICBtaXhpbkRpc2FibGVkLFxuICAgIG1peGluR3JvdXBlZCxcbiAgICBtaXhpblJlcXVpcmVkLFxuICAgIG1peGluRXJyb3IsXG4gICAgbWl4aW5IaWRlRXJyb3JzXG59IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHthbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5jbGFzcyBCYkZpbGVQaWNrZXJCYXNlIHtcbn1cblxuY29uc3QgQmJGaWxlUGlja2VyTWl4aW5CYXNlOiBJc1JlcXVpcmVkQ29uc3RydWN0b3JcbiAgICAmIENhbkRpc2FibGVDb25zdHJ1Y3RvclxuICAgICYgSXNHcm91cGVkQ29uc3RydWN0b3JcbiAgICAmIEhhc0Vycm9yQ29uc3RydWN0b3JcbiAgICAmIENhbkhpZGVFcnJvcnNDb25zdHJ1Y3RvclxuICAgICYgdHlwZW9mIEJiRmlsZVBpY2tlckJhc2VcbiAgICA9IG1peGluUmVxdWlyZWQobWl4aW5EaXNhYmxlZChtaXhpbkdyb3VwZWQobWl4aW5FcnJvcihtaXhpbkhpZGVFcnJvcnMoQmJGaWxlUGlja2VyQmFzZSkpKSkpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWZpbGUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYkZpbGVQaWNrZXIpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBCYkZpbGVQaWNrZXIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1maWxlLXBpY2tlcicsXG4gICAgICAgICdbY2xhc3MucmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnW2NsYXNzLmdyb3VwZWRdJzogJ2dyb3VwZWQnLFxuICAgICAgICAnW2NsYXNzLmhvdmVyZWRdJzogJ2hvdmVyZWQnLFxuICAgICAgICAnW2NsYXNzLmVycm9yXSc6ICdlcnJvcidcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignYmJGaWxlUGlja2VySW1hZ2VBbmltYXRpb24nLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe29wYWNpdHk6IDB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcyMDBtcycsIHN0eWxlKHtvcGFjaXR5OiAxfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcyMDBtcycsIHN0eWxlKHtvcGFjaXR5OiAwfSkpXG4gICAgICAgICAgICBdKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpZGVFcnJvcnMnLCAnZ3JvdXBlZCcsICdyZXF1aXJlZCddLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJiRmlsZVBpY2tlciBleHRlbmRzIEJiRmlsZVBpY2tlck1peGluQmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBJc1JlcXVpcmVkLCBDYW5EaXNhYmxlLCBJc0dyb3VwZWQsIEhhc0Vycm9yLCBDYW5IaWRlRXJyb3JzIHtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQENvbnRlbnRDaGlsZCgnZXh0cmEnKSBleHRyYVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxFbGVtZW50UmVmPjtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNob3dJbWFnZXM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFsbG93RHJhZ2dpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgbGFiZWxJZCA9IGBiYi1maWxlLXBpY2tlci0ke25leHRVbmlxdWVJZCsrfWA7XG4gICAgaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBmaWxlPzogRmlsZSB9Pih7fSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgY29uc3Qge2ZpbGV9ID0gdGhpcy52YWx1ZSQuZ2V0VmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgbnVsbD4oKTtcblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRmlsZSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSQubmV4dCh7ZmlsZTogdmFsdWV9KTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50JywgJ3RydWUnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCcsICdmYWxzZSddKVxuICAgIG9uRHJhZyhldmVudDogRXZlbnQsIGlzSG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgaW5wdXQgY2FuIHN1cHBvcnQgZHJhZy5cbiAgICAgICAgaWYgKCF0aGlzLmFsbG93RHJhZ2dpbmcgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJldmVudCB0aGUgZGVmYXVsdCBldmVudCBhY3Rpb25cbiAgICAgICAgLy8gYW5kIHN0YXJ0IHRoZSBob3ZlcmluZy5cbiAgICAgICAgdGhpcy5wcmV2ZW50RGVmYXVsdChldmVudCk7XG4gICAgICAgIHRoaXMuaG92ZXJlZCA9IGlzSG92ZXJlZDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgICBvbkRyb3AoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBpbnB1dCBjYW4gc3VwcG9ydCBkcmFnLlxuICAgICAgICBpZiAoIXRoaXMuYWxsb3dEcmFnZ2luZyB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmV2ZW50IHRoZSBkZWZhdWx0IGV2ZW50IGFjdGlvblxuICAgICAgICAvLyBhbmQgc3RvcCB0aGUgaG92ZXJpbmcuXG4gICAgICAgIHRoaXMucHJldmVudERlZmF1bHQoZXZlbnQpO1xuICAgICAgICB0aGlzLmhvdmVyZWQgPSBmYWxzZTtcblxuICAgICAgICAvLyBTYXZlIHRoZSBmaWxlLlxuICAgICAgICB0aGlzLnNhdmVGaWxlKGV2ZW50WydkYXRhVHJhbnNmZXInXS5maWxlcyk7XG5cbiAgICAgICAgLy8gUnVuIHRoZSBvbiBjaGFuZ2UgY2FsbGJhY2suXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvblByZXNzZWQoZmlsZT86IEZpbGUpIHtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkZpbGVQaWNrZXIoKTtcbiAgICB9XG5cbiAgICBvcGVuRmlsZVBpY2tlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUlucHV0XG4gICAgICAgICAgICAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrXG4gICAgICAgICAgICAmJiB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgb25GaWxlQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgaW5wdXQgaXMgbm90IGRpc2FibGVkLlxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgZmlsZSBmcm9tIHRoZSBldmVudC5cbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB0aGlzLmdldEZpbGVMaXN0RnJvbUV2ZW50KGV2ZW50KTtcblxuICAgICAgICAvLyBTYXZlIHRoZSBmaWxlLlxuICAgICAgICB0aGlzLnNhdmVGaWxlKGZpbGVMaXN0KTtcblxuICAgICAgICAvLyBSdW4gdGhlIG9uIGNoYW5nZSBjYWxsYmFjay5cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIC8vIENsZWFyIHRoZSBmaWxlIGlucHV0LlxuICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQgJiYgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgfTtcblxuICAgIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBGaWxlIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB9O1xuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRmlsZSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UobWV0aG9kOiAoXzogRmlsZSB8IG51bGwpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gbWV0aG9kO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKG1ldGhvZDogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gbWV0aG9kO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBvbkVycm9yQ2hhbmdlKGVycm9yOiB7IHRva2VuOiBzdHJpbmcsIGRhdGE/OiBhbnkgfSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9ICEhZXJyb3I7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoe3ZhbHVlfTogRm9ybUNvbnRyb2w8RmlsZT4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVnZXhTdHJpbmcgPSAodGhpcy5hY2NlcHQgfHwgJyonKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKi9nLCAnLlxcKicpXG4gICAgICAgICAgICAucmVwbGFjZSgvLC9nLCAnfCcpO1xuICAgICAgICBjb25zdCBtaW1lVHlwZVJlZ2V4ID0gbmV3IFJlZ0V4cChyZWdleFN0cmluZyk7XG5cbiAgICAgICAgY29uc3QgaXNOb3RWYWxpZCA9ICh0eXBlb2YgRmlsZSA9PT0gJ3VuZGVmaW5lZCcpIHx8ICEodmFsdWUgaW5zdGFuY2VvZiBGaWxlKSB8fCAhbWltZVR5cGVSZWdleC50ZXN0KHZhbHVlPy50eXBlKTtcbiAgICAgICAgcmV0dXJuIGlzTm90VmFsaWQgJiYge1xuICAgICAgICAgICAgaW52YWxpZEZpbGVUeXBlOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlRmlsZSA9IChmaWxlcz86IEZpbGVMaXN0KSA9PiB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBmaWxlcyBleGlzdC5cbiAgICAgICAgaWYgKCFmaWxlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGZpcnN0IGZpbGUuXG4gICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1swXTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgZmlyc3QgZmlsZSBleGlzdHMuXG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSB0aGUgZmlsZS5cbiAgICAgICAgdGhpcy52YWx1ZSA9IGZpbGU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0RmlsZUxpc3RGcm9tRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZmlsZXM7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcHJldmVudERlZmF1bHQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH07XG5cbn1cbiIsIjwhLS0gVGhlIGxhYmVsIG9mIHRoZSBpbnB1dC4gLS0+XG48bGFiZWwgKm5nSWY9XCJsYWJlbCBhcyBsYWJlbENvbnRlbnRcIlxuICAgICAgIFtmb3JdPVwibGFiZWxJZFwiXG4gICAgICAgY2xhc3M9XCJiYi1maWxlLXBpY2tlci1sYWJlbFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJsYWJlbENvbnRlbnRcIj5cbiAgICAgICAge3sgbGFiZWxDb250ZW50IH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG5cbjwhLS0gVGhlIGlucHV0IHRoYXQgY2FuIG9wZW4gdGhlIGZpbGUgcGlja2VyLiAtLT5cbjxpbnB1dCAjZmlsZUlucHV0XG4gICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgY2xhc3M9XCJiYi1maWxlLXBpY2tlci1pbnB1dFwiXG4gICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgIHRhYmluZGV4PVwiLTFcIj5cblxuPGRpdiAqbmdJZj1cInZhbHVlJCB8IGFzeW5jIGFzIGRhdGFcIlxuICAgICBjbGFzcz1cImJiLWZpbGUtcGlja2VyLXdyYXBwZXJcIj5cbiAgICA8IS0tIFRoZSBidXR0b24gdGhhdCBhY2NlcHRzIGZpbGVzLiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYmItZmlsZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxidXR0b24gW2NsYXNzLmRlc3RydWN0aXZlXT1cIiEhZGF0YT8uZmlsZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnN0YW5kYWxvbmVdPVwiIWFsbG93RHJhZ2dpbmdcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImxhYmVsSWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvblByZXNzZWQoZGF0YT8uZmlsZSlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItZmlsZS1waWNrZXItYnV0dG9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0YT8uZmlsZSA/IGNsb3NlSWNvbiA6IHVwbG9hZEljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIHt7IChkYXRhPy5maWxlID8gJ2ZpbGUtcGlja2VyLnJlbW92ZScgOiAnZmlsZS1waWNrZXIuY2hvb3NlJykgfCBiYkxvY2FsaXplIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxsb3dEcmFnZ2luZ1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1maWxlLXBpY2tlci16b25lXCI+XG4gICAgICAgICAgICB7eyAnZmlsZS1waWNrZXIuZHJvcCcgfCBiYkxvY2FsaXplIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhZXh0cmFUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXh0cmFUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YT8uZmlsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93SW1hZ2VzXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhPy5maWxlIHwgYmJGaWxlSW1hZ2UgfCBhc3luYyBhcyBpbWFnZVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1maWxlLXBpY2tlci1pbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi1maWxlLXBpY2tlci1pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBbQGJiRmlsZVBpY2tlckltYWdlQW5pbWF0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctdG9wLiVdPVwiaW1hZ2U/LmFzcGVjdFJhdGlvICogMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImltYWdlPy5iYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmItZmlsZS1waWNrZXItaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRXh0cmEgaW5mb3JtYXRpb24gb2YgdGhlIGZpbGUuIC0tPlxuICAgIDxkaXYgW2NsYXNzLnZpc2libGVdPVwiISFkYXRhPy5maWxlXCJcbiAgICAgICAgIGNsYXNzPVwiYmItZmlsZS1waWNrZXItaW5mb1wiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LmZpbGU/Lm5hbWUgYXMgbmFtZVwiPnt7IG5hbWUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8uZmlsZT8uc2l6ZSBhcyBzaXplXCI+e3sgc2l6ZSB8IGJiRmlsZVNpemUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGJiLWZvcm0tZXJyb3IgKm5nSWY9XCIhaGlkZUVycm9yc1wiXG4gICAgICAgICAgICAgICAoZXJyb3JDaGFuZ2UpPVwib25FcnJvckNoYW5nZSgkZXZlbnQpXCI+XG48L2JiLWZvcm0tZXJyb3I+XG5cbjwhLS0gVGhlIGZpbGUgcGlja2VyIGhpbnQuIC0tPlxuPHAgKm5nSWY9XCJoaW50IGFzIGhpbnRDb250ZW50XCJcbiAgIGNsYXNzPVwiYmItZmlsZS1waWNrZXItaGludFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbYmJUZW1wbGF0ZV09XCJoaW50Q29udGVudFwiPlxuICAgICAgICB7eyBoaW50Q29udGVudCB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG48L3A+XG5cbjwhLS0gVXBsb2FkIGljb24uIC0tPlxuPG5nLXRlbXBsYXRlICN1cGxvYWRJY29uPlxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICBjbGFzcz1cImJiLWZpbGUtcGlja2VyLWljb25cIlxuICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICBoZWlnaHQ9XCIyNFwiPlxuICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgZD1cIk0yIDEyLjVDMiA5LjQ2IDQuNDYgNyA3LjUgN0gxOGMyLjIxIDAgNCAxLjc5IDQgNHMtMS43OSA0LTQgNEg5LjVhMi41IDIuNSAwIDAxMC01SDE3djJIOS40MWMtLjU1IDAtLjU1IDEgMCAxSDE4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg3LjVDNS41NyA5IDQgMTAuNTcgNCAxMi41UzUuNTcgMTYgNy41IDE2SDE3djJINy41QzQuNDYgMTggMiAxNS41NCAyIDEyLjV6XCI+PC9wYXRoPlxuICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDI0djI0SDBWMHpcIj48L3BhdGg+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIENsb3NlIGljb24uIC0tPlxuPG5nLXRlbXBsYXRlICNjbG9zZUljb24+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgIGNsYXNzPVwiYmItZmlsZS1waWNrZXItaWNvblwiXG4gICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgIGhlaWdodD1cIjI0XCI+XG4gICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICBkPVwiTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnpcIj48L3BhdGg+XG4gICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIj48L3BhdGg+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export class HttpConfig {
|
|
2
|
-
constructor(data) {
|
|
3
|
-
this.parseAliases = (value, standardAlias) => {
|
|
4
|
-
if (typeof value === 'string') {
|
|
5
|
-
value = { [standardAlias]: value };
|
|
6
|
-
}
|
|
7
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
8
|
-
const stringRegex = /^[a-zA-Z]+$/;
|
|
9
|
-
for (const alias in value) {
|
|
10
|
-
if (value.hasOwnProperty(alias) && !stringRegex.test(alias)) {
|
|
11
|
-
console?.warn?.(`[HttpModule]: Invalid HTTP-alias in HttpConfig named "${alias}"; only latin characters should be used.`);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return value;
|
|
16
|
-
};
|
|
17
|
-
// Get the data from the config.
|
|
18
|
-
this.prefix = data?.alias?.prefix ?? '$';
|
|
19
|
-
this.disableErrorParsing = data?.disableErrorParsing ?? false;
|
|
20
|
-
// Parse the aliases.
|
|
21
|
-
const standardAlias = data?.alias?.standard ?? 'api';
|
|
22
|
-
this.aliases = this.parseAliases(data?.url, standardAlias);
|
|
23
|
-
// Get the default alias.
|
|
24
|
-
const firstAvailableAlias = Object.keys(this.aliases ?? {})?.[0];
|
|
25
|
-
this.defaultAlias = `${this.prefix}${firstAvailableAlias}`;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9jbGFzc2VzL2h0dHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxVQUFVO0lBT25CLFlBQVksSUFBb0I7UUFjeEIsaUJBQVksR0FBRyxDQUFDLEtBQW9CLEVBQUUsYUFBcUIsRUFBRSxFQUFFO1lBQ25FLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUMzQixLQUFLLEdBQUcsRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBQyxDQUFDO2FBQ3BDO1lBRUQsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO2dCQUMvQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7Z0JBQ2xDLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxFQUFFO29CQUN2QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMseURBQXlELEtBQUssMENBQTBDLENBQUMsQ0FBQztxQkFDN0g7aUJBQ0o7YUFDSjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztRQTVCRSxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUM7UUFDekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFFOUQscUJBQXFCO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUUzRCx5QkFBeUI7UUFDekIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9ELENBQUM7Q0FtQkoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDb25maWdBbGlhc2VzLCBIdHRwQ29uZmlnRGF0YSwgSHR0cENvbmZpZ1VybH0gZnJvbSAnLi4vaHR0cC5pbnRlcmZhY2VzJztcblxuZGVjbGFyZSBsZXQgbmdEZXZNb2RlO1xuXG5leHBvcnQgY2xhc3MgSHR0cENvbmZpZyB7XG5cbiAgICByZWFkb25seSBhbGlhc2VzOiBIdHRwQ29uZmlnQWxpYXNlcztcbiAgICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgICByZWFkb25seSBkZWZhdWx0QWxpYXM6IHN0cmluZztcbiAgICByZWFkb25seSBkaXNhYmxlRXJyb3JQYXJzaW5nOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogSHR0cENvbmZpZ0RhdGEpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGZyb20gdGhlIGNvbmZpZy5cbiAgICAgICAgdGhpcy5wcmVmaXggPSBkYXRhPy5hbGlhcz8ucHJlZml4ID8/ICckJztcbiAgICAgICAgdGhpcy5kaXNhYmxlRXJyb3JQYXJzaW5nID0gZGF0YT8uZGlzYWJsZUVycm9yUGFyc2luZyA/PyBmYWxzZTtcblxuICAgICAgICAvLyBQYXJzZSB0aGUgYWxpYXNlcy5cbiAgICAgICAgY29uc3Qgc3RhbmRhcmRBbGlhcyA9IGRhdGE/LmFsaWFzPy5zdGFuZGFyZCA/PyAnYXBpJztcbiAgICAgICAgdGhpcy5hbGlhc2VzID0gdGhpcy5wYXJzZUFsaWFzZXMoZGF0YT8udXJsLCBzdGFuZGFyZEFsaWFzKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGRlZmF1bHQgYWxpYXMuXG4gICAgICAgIGNvbnN0IGZpcnN0QXZhaWxhYmxlQWxpYXMgPSBPYmplY3Qua2V5cyh0aGlzLmFsaWFzZXMgPz8ge30pPy5bMF07XG4gICAgICAgIHRoaXMuZGVmYXVsdEFsaWFzID0gYCR7dGhpcy5wcmVmaXh9JHtmaXJzdEF2YWlsYWJsZUFsaWFzfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJzZUFsaWFzZXMgPSAodmFsdWU6IEh0dHBDb25maWdVcmwsIHN0YW5kYXJkQWxpYXM6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSB7W3N0YW5kYXJkQWxpYXNdOiB2YWx1ZX07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBzdHJpbmdSZWdleCA9IC9eW2EtekEtWl0rJC87XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KGFsaWFzKSAmJiAhc3RyaW5nUmVnZXgudGVzdChhbGlhcykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZT8ud2Fybj8uKGBbSHR0cE1vZHVsZV06IEludmFsaWQgSFRUUC1hbGlhcyBpbiBIdHRwQ29uZmlnIG5hbWVkIFwiJHthbGlhc31cIjsgb25seSBsYXRpbiBjaGFyYWN0ZXJzIHNob3VsZCBiZSB1c2VkLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG59XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../classes/http.config";
|
|
4
|
-
export class BaseUrlInterceptor {
|
|
5
|
-
constructor(_config) {
|
|
6
|
-
this._config = _config;
|
|
7
|
-
// Aliases.
|
|
8
|
-
this._aliases = this._config?.aliases;
|
|
9
|
-
this._prefix = this._config?.prefix;
|
|
10
|
-
this._extractRegex = new RegExp(`\\${this._prefix}[a-zA-Z]+`);
|
|
11
|
-
}
|
|
12
|
-
intercept(request, next) {
|
|
13
|
-
const url = this.getUrlBasedOnAlias(request.url);
|
|
14
|
-
const modified = request.clone({ url });
|
|
15
|
-
return next.handle(modified);
|
|
16
|
-
}
|
|
17
|
-
getUrlBasedOnAlias(url) {
|
|
18
|
-
const matches = this._extractRegex.exec(url);
|
|
19
|
-
if (!matches) {
|
|
20
|
-
return url;
|
|
21
|
-
}
|
|
22
|
-
return matches.reduce((previous, current) => {
|
|
23
|
-
const alias = this.getAlias(current);
|
|
24
|
-
if (!alias) {
|
|
25
|
-
return previous;
|
|
26
|
-
}
|
|
27
|
-
return previous.replace(current, alias);
|
|
28
|
-
}, url);
|
|
29
|
-
}
|
|
30
|
-
getAlias(value) {
|
|
31
|
-
const alias = value.replace(this._prefix, '');
|
|
32
|
-
const fetched = this._aliases?.[alias] ?? null;
|
|
33
|
-
if (fetched) {
|
|
34
|
-
return fetched;
|
|
35
|
-
}
|
|
36
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
37
|
-
const available = Object.keys(this._aliases)
|
|
38
|
-
.map(item => `\$${item}`)
|
|
39
|
-
.join(', ');
|
|
40
|
-
console?.warn?.(`[HttpModule]: Used an invalid HTTP-alias named "${value}", skipped parsing; Available aliases is one of (${available}).`);
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
-
BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseUrlInterceptor });
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
|
|
48
|
-
type: Injectable
|
|
49
|
-
}], ctorParameters: function () { return [{ type: i1.HttpConfig }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvYmFzZS11cmwuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBS3pDLE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUx2QyxXQUFXO1FBQ00sYUFBUSxHQUFzQixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUNwRCxZQUFPLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDdkMsa0JBQWEsR0FBVyxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLFdBQVcsQ0FBQyxDQUFDO0lBR2xGLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1IsT0FBTyxRQUFRLENBQUM7YUFDbkI7WUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYTtRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztRQUMvQyxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sT0FBTyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFO1lBQy9DLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztpQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxtREFBbUQsS0FBSyxvREFBb0QsU0FBUyxJQUFJLENBQUMsQ0FBQztTQUM5STtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OytHQWhEUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIdHRwQ29uZmlnQWxpYXNlc30gZnJvbSAnLi4vaHR0cC5pbnRlcmZhY2VzJztcbmltcG9ydCB7SHR0cENvbmZpZ30gZnJvbSAnLi4vY2xhc3Nlcy9odHRwLmNvbmZpZyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGxldCBuZ0Rldk1vZGU7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCYXNlVXJsSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgLy8gQWxpYXNlcy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hbGlhc2VzOiBIdHRwQ29uZmlnQWxpYXNlcyA9IHRoaXMuX2NvbmZpZz8uYWxpYXNlcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcmVmaXg6IHN0cmluZyA9IHRoaXMuX2NvbmZpZz8ucHJlZml4O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V4dHJhY3RSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChgXFxcXCR7dGhpcy5fcHJlZml4fVthLXpBLVpdK2ApO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBIdHRwQ29uZmlnKSB7XG4gICAgfVxuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybEJhc2VkT25BbGlhcyhyZXF1ZXN0LnVybCk7XG4gICAgICAgIGNvbnN0IG1vZGlmaWVkID0gcmVxdWVzdC5jbG9uZSh7dXJsfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKG1vZGlmaWVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybEJhc2VkT25BbGlhcyh1cmw6IHN0cmluZykge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gdGhpcy5fZXh0cmFjdFJlZ2V4LmV4ZWModXJsKTtcbiAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZXMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxpYXMgPSB0aGlzLmdldEFsaWFzKGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCFhbGlhcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudCwgYWxpYXMpO1xuICAgICAgICB9LCB1cmwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxpYXModmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBhbGlhcyA9IHZhbHVlLnJlcGxhY2UodGhpcy5fcHJlZml4LCAnJyk7XG4gICAgICAgIGNvbnN0IGZldGNoZWQgPSB0aGlzLl9hbGlhc2VzPy5bYWxpYXNdID8/IG51bGw7XG4gICAgICAgIGlmIChmZXRjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmV0Y2hlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IE9iamVjdC5rZXlzKHRoaXMuX2FsaWFzZXMpXG4gICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IGBcXCQke2l0ZW19YClcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgW0h0dHBNb2R1bGVdOiBVc2VkIGFuIGludmFsaWQgSFRUUC1hbGlhcyBuYW1lZCBcIiR7dmFsdWV9XCIsIHNraXBwZWQgcGFyc2luZzsgQXZhaWxhYmxlIGFsaWFzZXMgaXMgb25lIG9mICgke2F2YWlsYWJsZX0pLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG59XG4iXX0=
|