@gipisistemas/ng-core 1.0.67 → 1.0.68
Sign up to get free protection for your applications and to get access to all the features.
- package/assets/styles/colors.scss +261 -0
- package/assets/styles/layout-grid.scss +146 -0
- package/assets/styles/styles.scss +149 -0
- package/assets/styles/theme.scss +22 -0
- package/assets/styles/typography.scss +54 -0
- package/assets/styles/variable.scss +41 -0
- package/bundles/gipisistemas-ng-core.umd.js +28311 -0
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -0
- package/bundles/gipisistemas-ng-core.umd.min.js +66 -0
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -0
- package/core/app-messages.d.ts +9 -0
- package/core/app.messages.d.ts +4 -0
- package/core/components/abstract-crud.component.d.ts +27 -0
- package/core/components/abstract-find.component.d.ts +43 -0
- package/core/components/abstract.component.d.ts +23 -0
- package/core/components/alert/alert.component.d.ts +7 -0
- package/core/core.module.d.ts +17 -0
- package/core/custom-breakpoints.d.ts +7 -0
- package/core/enums/local-time.enum.d.ts +5 -0
- package/core/extensions/string.extension.d.ts +3 -0
- package/core/gipi-components/components/abstract-crud.component.d.ts +25 -0
- package/core/gipi-components/components/abstract-find.component.d.ts +73 -0
- package/core/gipi-components/components/abstract.component.d.ts +38 -0
- package/core/gipi-components/decorators/autowired.decorator.d.ts +7 -0
- package/core/gipi-components/enums/sort-direction.enum.d.ts +5 -0
- package/core/gipi-components/interface/abstract-crud.interface.d.ts +5 -0
- package/core/gipi-components/interface/abstract-find.interface.d.ts +12 -0
- package/core/gipi-components/interface/abstract.interface.d.ts +11 -0
- package/core/gipi-components/interface/base-permission.interface.d.ts +9 -0
- package/core/gipi-components/models/abstract-filter.model.d.ts +9 -0
- package/core/gipi-components/models/abstract.model.d.ts +7 -0
- package/core/gipi-components/models/applied-filter.model.d.ts +9 -0
- package/core/gipi-components/models/dto/abstract.dto.d.ts +7 -0
- package/core/gipi-components/models/page-event.model.d.ts +18 -0
- package/core/gipi-components/models/page.model.d.ts +7 -0
- package/core/gipi-components/models/sort.model.d.ts +6 -0
- package/core/gipi-components/services/abstract-crud.service.d.ts +83 -0
- package/core/gipi-components/services/abstract.service.d.ts +19 -0
- package/core/gipi-components/services/base.service.d.ts +35 -0
- package/core/gipi-components/services/file.service.d.ts +6 -0
- package/core/gipi-components/services/session-storage.service.d.ts +8 -0
- package/core/gipi-components/types/generic.type.d.ts +1 -0
- package/core/gipi-components/types/uuid.type.d.ts +1 -0
- package/core/guards/auth.guard.d.ts +11 -0
- package/core/guards/permission.guard.d.ts +14 -0
- package/core/guards/public.guard.d.ts +11 -0
- package/core/interceptors/auth.interceptor.d.ts +9 -0
- package/core/interceptors/error.interceptor.d.ts +11 -0
- package/core/models/abstract.model.d.ts +3 -0
- package/core/models/archive.model.d.ts +4 -0
- package/core/models/authority.model.d.ts +3 -0
- package/core/models/base-user.model.d.ts +12 -0
- package/core/models/dto/abstract.dto.d.ts +2 -0
- package/core/models/dto/api-error.dto.d.ts +9 -0
- package/core/models/dto/api-sub-error.dto.d.ts +7 -0
- package/core/models/dto/chart.dto.d.ts +5 -0
- package/core/models/dto/confirmation.dto.d.ts +10 -0
- package/core/models/dto/dialog.dto.d.ts +36 -0
- package/core/models/dto/filter.dto.d.ts +8 -0
- package/core/models/dto/input-listbox.dto.d.ts +6 -0
- package/core/models/dto/menu.dto.d.ts +15 -0
- package/core/models/dto/message.dto.d.ts +7 -0
- package/core/models/dto/page.dto.d.ts +8 -0
- package/core/models/dto/sort.dto.d.ts +7 -0
- package/core/models/dto/tab.dto.d.ts +12 -0
- package/core/models/dto/table-column.dto.d.ts +21 -0
- package/core/models/dto/table-group-header.dto.d.ts +7 -0
- package/core/models/dto/table-page-event.dto.d.ts +6 -0
- package/core/models/dto/token.dto.d.ts +8 -0
- package/core/models/enums/criteria-operation.enum.d.ts +13 -0
- package/core/models/enums/criteria-sort-direction.enum.d.ts +4 -0
- package/core/models/enums/menu-type.enum.d.ts +6 -0
- package/core/models/enums/radio-button.enum.d.ts +6 -0
- package/core/models/enums/sort-direction.enum.d.ts +4 -0
- package/core/models/multitenant.model.d.ts +4 -0
- package/core/models/permission.model.d.ts +8 -0
- package/core/models/role.model.d.ts +7 -0
- package/core/pipes/local-time.pipe.d.ts +6 -0
- package/core/services/abstract-crud.service.d.ts +15 -0
- package/core/services/abstract-find.service.d.ts +30 -0
- package/core/services/abstract.service.d.ts +13 -0
- package/core/services/authentication.service.d.ts +23 -0
- package/core/services/breakpoint-observer.service.d.ts +9 -0
- package/core/services/confirmation.service.d.ts +8 -0
- package/core/services/dialog.service.d.ts +8 -0
- package/core/services/message.service.d.ts +8 -0
- package/core/services/nav.service.d.ts +16 -0
- package/core/services/svg-register.service.d.ts +22 -0
- package/core/types/local-time.type.d.ts +5 -0
- package/core/types/ng-class.type.d.ts +10 -0
- package/core/utils/array.util.d.ts +14 -0
- package/core/utils/browser.util.d.ts +4 -0
- package/core/utils/currency.util.d.ts +6 -0
- package/core/utils/date.util.d.ts +39 -0
- package/core/utils/document.util.d.ts +11 -0
- package/core/utils/email.util.d.ts +4 -0
- package/core/utils/number.util.d.ts +8 -0
- package/core/utils/object.util.d.ts +20 -0
- package/core/utils/password.util.d.ts +11 -0
- package/core/utils/phone.util.d.ts +13 -0
- package/core/utils/string.util.d.ts +9 -0
- package/core/utils/table-column-builder.d.ts +40 -0
- package/core/utils/time.util.d.ts +9 -0
- package/core/utils/url-params.util.d.ts +7 -0
- package/core/utils/uuid.util.d.ts +5 -0
- package/core/utils/zindex.util.d.ts +7 -0
- package/core.d.ts +88 -0
- package/esm2015/core/app-messages.js +1 -0
- package/esm2015/core/app.messages.js +12 -0
- package/esm2015/core/components/abstract-crud.component.js +97 -0
- package/esm2015/core/components/abstract-find.component.js +189 -0
- package/esm2015/core/components/abstract.component.js +110 -0
- package/esm2015/core/components/alert/alert.component.js +24 -0
- package/esm2015/core/core.module.js +103 -0
- package/esm2015/core/custom-breakpoints.js +87 -0
- package/esm2015/core/enums/local-time.enum.js +6 -0
- package/esm2015/core/extensions/string.extension.js +37 -0
- package/esm2015/core/gipi-components/components/abstract-crud.component.js +110 -0
- package/esm2015/core/gipi-components/components/abstract-find.component.js +471 -0
- package/esm2015/core/gipi-components/components/abstract.component.js +140 -0
- package/esm2015/core/gipi-components/decorators/autowired.decorator.js +47 -0
- package/esm2015/core/gipi-components/enums/sort-direction.enum.js +6 -0
- package/esm2015/core/gipi-components/interface/abstract-crud.interface.js +1 -0
- package/esm2015/core/gipi-components/interface/abstract-find.interface.js +1 -0
- package/esm2015/core/gipi-components/interface/abstract.interface.js +1 -0
- package/esm2015/core/gipi-components/interface/base-permission.interface.js +1 -0
- package/esm2015/core/gipi-components/models/abstract-filter.model.js +3 -0
- package/esm2015/core/gipi-components/models/abstract.model.js +3 -0
- package/esm2015/core/gipi-components/models/applied-filter.model.js +19 -0
- package/esm2015/core/gipi-components/models/dto/abstract.dto.js +3 -0
- package/esm2015/core/gipi-components/models/page-event.model.js +35 -0
- package/esm2015/core/gipi-components/models/page.model.js +7 -0
- package/esm2015/core/gipi-components/models/sort.model.js +7 -0
- package/esm2015/core/gipi-components/services/abstract-crud.service.js +109 -0
- package/esm2015/core/gipi-components/services/abstract.service.js +47 -0
- package/esm2015/core/gipi-components/services/base.service.js +102 -0
- package/esm2015/core/gipi-components/services/file.service.js +51 -0
- package/esm2015/core/gipi-components/services/session-storage.service.js +44 -0
- package/esm2015/core/gipi-components/types/generic.type.js +1 -0
- package/esm2015/core/gipi-components/types/uuid.type.js +1 -0
- package/esm2015/core/guards/auth.guard.js +48 -0
- package/esm2015/core/guards/permission.guard.js +61 -0
- package/esm2015/core/guards/public.guard.js +45 -0
- package/esm2015/core/interceptors/auth.interceptor.js +28 -0
- package/esm2015/core/interceptors/error.interceptor.js +110 -0
- package/esm2015/core/models/abstract.model.js +3 -0
- package/esm2015/core/models/archive.model.js +3 -0
- package/esm2015/core/models/authority.model.js +3 -0
- package/esm2015/core/models/base-user.model.js +8 -0
- package/esm2015/core/models/dto/abstract.dto.js +3 -0
- package/esm2015/core/models/dto/api-error.dto.js +8 -0
- package/esm2015/core/models/dto/api-sub-error.dto.js +4 -0
- package/esm2015/core/models/dto/chart.dto.js +4 -0
- package/esm2015/core/models/dto/confirmation.dto.js +8 -0
- package/esm2015/core/models/dto/dialog.dto.js +4 -0
- package/esm2015/core/models/dto/filter.dto.js +4 -0
- package/esm2015/core/models/dto/input-listbox.dto.js +7 -0
- package/esm2015/core/models/dto/menu.dto.js +9 -0
- package/esm2015/core/models/dto/message.dto.js +4 -0
- package/esm2015/core/models/dto/page.dto.js +9 -0
- package/esm2015/core/models/dto/sort.dto.js +9 -0
- package/esm2015/core/models/dto/tab.dto.js +10 -0
- package/esm2015/core/models/dto/table-column.dto.js +24 -0
- package/esm2015/core/models/dto/table-group-header.dto.js +10 -0
- package/esm2015/core/models/dto/table-page-event.dto.js +7 -0
- package/esm2015/core/models/dto/token.dto.js +4 -0
- package/esm2015/core/models/enums/criteria-operation.enum.js +15 -0
- package/esm2015/core/models/enums/criteria-sort-direction.enum.js +6 -0
- package/esm2015/core/models/enums/menu-type.enum.js +7 -0
- package/esm2015/core/models/enums/radio-button.enum.js +8 -0
- package/esm2015/core/models/enums/sort-direction.enum.js +6 -0
- package/esm2015/core/models/multitenant.model.js +4 -0
- package/esm2015/core/models/permission.model.js +11 -0
- package/esm2015/core/models/role.model.js +8 -0
- package/esm2015/core/pipes/local-time.pipe.js +21 -0
- package/esm2015/core/services/abstract-crud.service.js +24 -0
- package/esm2015/core/services/abstract-find.service.js +65 -0
- package/esm2015/core/services/abstract.service.js +30 -0
- package/esm2015/core/services/authentication.service.js +100 -0
- package/esm2015/core/services/breakpoint-observer.service.js +42 -0
- package/esm2015/core/services/confirmation.service.js +55 -0
- package/esm2015/core/services/dialog.service.js +41 -0
- package/esm2015/core/services/message.service.js +33 -0
- package/esm2015/core/services/nav.service.js +48 -0
- package/esm2015/core/services/svg-register.service.js +55 -0
- package/esm2015/core/types/local-time.type.js +1 -0
- package/esm2015/core/types/ng-class.type.js +1 -0
- package/esm2015/core/utils/array.util.js +110 -0
- package/esm2015/core/utils/browser.util.js +13 -0
- package/esm2015/core/utils/currency.util.js +21 -0
- package/esm2015/core/utils/date.util.js +257 -0
- package/esm2015/core/utils/document.util.js +153 -0
- package/esm2015/core/utils/email.util.js +25 -0
- package/esm2015/core/utils/number.util.js +28 -0
- package/esm2015/core/utils/object.util.js +199 -0
- package/esm2015/core/utils/password.util.js +38 -0
- package/esm2015/core/utils/phone.util.js +125 -0
- package/esm2015/core/utils/string.util.js +40 -0
- package/esm2015/core/utils/table-column-builder.js +85 -0
- package/esm2015/core/utils/time.util.js +59 -0
- package/esm2015/core/utils/url-params.util.js +12 -0
- package/esm2015/core/utils/uuid.util.js +17 -0
- package/esm2015/core/utils/zindex.util.js +35 -0
- package/esm2015/core.js +89 -0
- package/esm2015/gipi-components.js +105 -0
- package/esm2015/gipisistemas-ng-core.js +21 -0
- package/esm2015/public_api.js +4 -0
- package/esm2015/shared/api/generate-id-component.js +12 -0
- package/esm2015/shared/api/gipi-ng-config.js +76 -0
- package/esm2015/shared/api/overlay-message.js +1 -0
- package/esm2015/shared/api/throttle.js +60 -0
- package/esm2015/shared/api/translation.js +1 -0
- package/esm2015/shared/components/button/button.component.js +110 -0
- package/esm2015/shared/components/card/card.component.js +44 -0
- package/esm2015/shared/components/checkbox/checkbox.component.js +79 -0
- package/esm2015/shared/components/dom/connected-overlay-scroll-handler.js +27 -0
- package/esm2015/shared/components/dom/dom-handler.js +538 -0
- package/esm2015/shared/components/icon/icon.component.js +35 -0
- package/esm2015/shared/components/input/input.component.js +235 -0
- package/esm2015/shared/components/input-currency/input-currency.component.js +115 -0
- package/esm2015/shared/components/input-file/input-file.component.js +161 -0
- package/esm2015/shared/components/loading/loading.component.js +15 -0
- package/esm2015/shared/components/loading-overlay/loading-overlay.component.js +21 -0
- package/esm2015/shared/components/overlay-panel/overlay-panel.component.js +361 -0
- package/esm2015/shared/components/popover/popover-ref.js +25 -0
- package/esm2015/shared/components/popover/popover.component.js +34 -0
- package/esm2015/shared/components/popover/popover.service.js +85 -0
- package/esm2015/shared/components/radio-group-entity/radio-group-entity.component.js +74 -0
- package/esm2015/shared/components/radio-group-enum/radio-group-enum.component.js +126 -0
- package/esm2015/shared/components/select-button/select-button.component.js +181 -0
- package/esm2015/shared/components/select-entity/select-entity.component.js +262 -0
- package/esm2015/shared/components/select-entity-paged/select-entity-paged.component.js +419 -0
- package/esm2015/shared/components/select-entity-paged/shared/default-options.js +35 -0
- package/esm2015/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +69 -0
- package/esm2015/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +59 -0
- package/esm2015/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +20 -0
- package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +547 -0
- package/esm2015/shared/components/select-entity-paged/shared/select-search-clear.directive.js +18 -0
- package/esm2015/shared/components/select-enum/select-enum.component.js +117 -0
- package/esm2015/shared/components/select-month-period/select-month-period.component.js +87 -0
- package/esm2015/shared/components/slide-toggle/slide-toggle.component.js +75 -0
- package/esm2015/shared/components/stepper/stepper.component.js +32 -0
- package/esm2015/shared/components/tab/tab.component.js +57 -0
- package/esm2015/shared/components/tab-group/tab-group.component.js +117 -0
- package/esm2015/shared/components/table/table.component.js +523 -0
- package/esm2015/shared/components/table-scrolled/table-scrolled.component.js +105 -0
- package/esm2015/shared/components/textarea/textarea.component.js +156 -0
- package/esm2015/shared/directives/dynamic-tab.directive.js +18 -0
- package/esm2015/shared/directives/generic-template.directive.js +30 -0
- package/esm2015/shared/directives/input-select-infinite-scroll.directive.js +109 -0
- package/esm2015/shared/directives/lower-case.directive.js +47 -0
- package/esm2015/shared/directives/phone-mask.directive.js +60 -0
- package/esm2015/shared/directives/space-drop.directive.js +47 -0
- package/esm2015/shared/directives/upper-case.directive.js +47 -0
- package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +119 -0
- package/esm2015/shared/gipi-components/action-row/action-row.component.js +30 -0
- package/esm2015/shared/gipi-components/badge/badge.component.js +44 -0
- package/esm2015/shared/gipi-components/button/button.component.js +251 -0
- package/esm2015/shared/gipi-components/chips/chips.component.js +149 -0
- package/esm2015/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +44 -0
- package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +324 -0
- package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +41 -0
- package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +35 -0
- package/esm2015/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +259 -0
- package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +218 -0
- package/esm2015/shared/gipi-components/datepicker/datepicker.module.js +130 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +341 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar.js +397 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +325 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +329 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +41 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +61 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +159 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +35 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +555 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +14 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +303 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +179 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +51 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +124 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +29 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/month-view.js +365 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +305 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +116 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +10 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +294 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +19 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +81 -0
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/year-view.js +294 -0
- package/esm2015/shared/gipi-components/dom/connected-overlay-scroll-handler.js +27 -0
- package/esm2015/shared/gipi-components/dom/dom-handler.js +645 -0
- package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +185 -0
- package/esm2015/shared/gipi-components/expansion-panel/expansion-panel.component.js +81 -0
- package/esm2015/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +240 -0
- package/esm2015/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +92 -0
- package/esm2015/shared/gipi-components/footer/footer.component.js +29 -0
- package/esm2015/shared/gipi-components/form-field/form-field.component.js +262 -0
- package/esm2015/shared/gipi-components/helpful-tip/helpful-tip.component.js +62 -0
- package/esm2015/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +103 -0
- package/esm2015/shared/gipi-components/input-checkbox/input-checkbox.component.js +112 -0
- package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +197 -0
- package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +408 -0
- package/esm2015/shared/gipi-components/input-select/input-select.component.js +655 -0
- package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +311 -0
- package/esm2015/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +422 -0
- package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +374 -0
- package/esm2015/shared/gipi-components/input-select-paged/input-select-paged.component.js +350 -0
- package/esm2015/shared/gipi-components/input-select-radio/input-select-radio.component.js +269 -0
- package/esm2015/shared/gipi-components/layout-grid/col.directive.js +161 -0
- package/esm2015/shared/gipi-components/layout-grid/row.directive.js +124 -0
- package/esm2015/shared/gipi-components/layout-grid/services/breakpoint.service.js +87 -0
- package/esm2015/shared/gipi-components/layout-grid/services/resize.service.js +64 -0
- package/esm2015/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +193 -0
- package/esm2015/shared/gipi-components/month-year-picker/mont-year-picker.module.js +47 -0
- package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +460 -0
- package/esm2015/shared/gipi-components/notification/notification.component.js +104 -0
- package/esm2015/shared/gipi-components/novelties/novelties.component.js +109 -0
- package/esm2015/shared/gipi-components/overlay/overlay.component.js +565 -0
- package/esm2015/shared/gipi-components/overlay/shared/overlay-service.js +21 -0
- package/esm2015/shared/gipi-components/overlay/shared/overlay_options.js +1 -0
- package/esm2015/shared/gipi-components/password-requeriments/password-requeriments.component.js +127 -0
- package/esm2015/shared/gipi-components/popover/popover.component.js +397 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-animations.js +29 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-errors.js +27 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-interfaces.js +1 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-target.js +19 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +514 -0
- package/esm2015/shared/gipi-components/popover/shared/popover-types.js +1 -0
- package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +143 -0
- package/esm2015/shared/gipi-components/range-page/range-page.component.js +254 -0
- package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +345 -0
- package/esm2015/shared/gipi-components/select/select.component.js +211 -0
- package/esm2015/shared/gipi-components/select-button/select-button.component.js +187 -0
- package/esm2015/shared/gipi-components/sidebar/container/container.component.js +83 -0
- package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +240 -0
- package/esm2015/shared/gipi-components/stepper/stepper.component.js +37 -0
- package/esm2015/shared/gipi-components/table/components/table-body/table-body.component.js +203 -0
- package/esm2015/shared/gipi-components/table/components/table-footer/table-footer.component.js +30 -0
- package/esm2015/shared/gipi-components/table/components/table-header/table-header.component.js +152 -0
- package/esm2015/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +122 -0
- package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +225 -0
- package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +1 -0
- package/esm2015/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +105 -0
- package/esm2015/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +102 -0
- package/esm2015/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +30 -0
- package/esm2015/shared/gipi-components/table/models/pipe-transform.model.js +1 -0
- package/esm2015/shared/gipi-components/table/models/sort.model.js +19 -0
- package/esm2015/shared/gipi-components/table/models/sorted-column.model.js +2 -0
- package/esm2015/shared/gipi-components/table/models/table-column-builder.model.js +104 -0
- package/esm2015/shared/gipi-components/table/models/table-column.model.js +162 -0
- package/esm2015/shared/gipi-components/table/table.component.js +159 -0
- package/esm2015/shared/gipi-components/table/types/sort-direction.type.js +1 -0
- package/esm2015/shared/gipi-components/table/types/sort.type.js +1 -0
- package/esm2015/shared/gipi-components/template/template.directive.js +33 -0
- package/esm2015/shared/gipi-components/toolbar/toolbar.component.js +53 -0
- package/esm2015/shared/gipi-components/top-nav/top-nav.component.js +38 -0
- package/esm2015/shared/gipi-components/user-profile/user-profile.component.js +109 -0
- package/esm2015/shared/material.module.js +102 -0
- package/esm2015/shared/shared.module.js +339 -0
- package/esm2015/shared.js +36 -0
- package/esm5/core/app-messages.js +1 -0
- package/esm5/core/app.messages.js +12 -0
- package/esm5/core/components/abstract-crud.component.js +108 -0
- package/esm5/core/components/abstract-find.component.js +201 -0
- package/esm5/core/components/abstract.component.js +112 -0
- package/esm5/core/components/alert/alert.component.js +25 -0
- package/esm5/core/core.module.js +107 -0
- package/esm5/core/custom-breakpoints.js +87 -0
- package/esm5/core/enums/local-time.enum.js +6 -0
- package/esm5/core/extensions/string.extension.js +37 -0
- package/esm5/core/gipi-components/components/abstract-crud.component.js +122 -0
- package/esm5/core/gipi-components/components/abstract-find.component.js +507 -0
- package/esm5/core/gipi-components/components/abstract.component.js +152 -0
- package/esm5/core/gipi-components/decorators/autowired.decorator.js +52 -0
- package/esm5/core/gipi-components/enums/sort-direction.enum.js +6 -0
- package/esm5/core/gipi-components/interface/abstract-crud.interface.js +1 -0
- package/esm5/core/gipi-components/interface/abstract-find.interface.js +1 -0
- package/esm5/core/gipi-components/interface/abstract.interface.js +1 -0
- package/esm5/core/gipi-components/interface/base-permission.interface.js +1 -0
- package/esm5/core/gipi-components/models/abstract-filter.model.js +7 -0
- package/esm5/core/gipi-components/models/abstract.model.js +7 -0
- package/esm5/core/gipi-components/models/applied-filter.model.js +29 -0
- package/esm5/core/gipi-components/models/dto/abstract.dto.js +7 -0
- package/esm5/core/gipi-components/models/page-event.model.js +49 -0
- package/esm5/core/gipi-components/models/page.model.js +9 -0
- package/esm5/core/gipi-components/models/sort.model.js +9 -0
- package/esm5/core/gipi-components/services/abstract-crud.service.js +114 -0
- package/esm5/core/gipi-components/services/abstract.service.js +49 -0
- package/esm5/core/gipi-components/services/base.service.js +143 -0
- package/esm5/core/gipi-components/services/file.service.js +53 -0
- package/esm5/core/gipi-components/services/session-storage.service.js +45 -0
- package/esm5/core/gipi-components/types/generic.type.js +1 -0
- package/esm5/core/gipi-components/types/uuid.type.js +1 -0
- package/esm5/core/guards/auth.guard.js +50 -0
- package/esm5/core/guards/permission.guard.js +74 -0
- package/esm5/core/guards/public.guard.js +47 -0
- package/esm5/core/interceptors/auth.interceptor.js +29 -0
- package/esm5/core/interceptors/error.interceptor.js +129 -0
- package/esm5/core/models/abstract.model.js +7 -0
- package/esm5/core/models/archive.model.js +7 -0
- package/esm5/core/models/authority.model.js +7 -0
- package/esm5/core/models/base-user.model.js +13 -0
- package/esm5/core/models/dto/abstract.dto.js +7 -0
- package/esm5/core/models/dto/api-error.dto.js +13 -0
- package/esm5/core/models/dto/api-sub-error.dto.js +11 -0
- package/esm5/core/models/dto/chart.dto.js +11 -0
- package/esm5/core/models/dto/confirmation.dto.js +13 -0
- package/esm5/core/models/dto/dialog.dto.js +11 -0
- package/esm5/core/models/dto/filter.dto.js +11 -0
- package/esm5/core/models/dto/input-listbox.dto.js +11 -0
- package/esm5/core/models/dto/menu.dto.js +14 -0
- package/esm5/core/models/dto/message.dto.js +11 -0
- package/esm5/core/models/dto/page.dto.js +14 -0
- package/esm5/core/models/dto/sort.dto.js +14 -0
- package/esm5/core/models/dto/tab.dto.js +15 -0
- package/esm5/core/models/dto/table-column.dto.js +29 -0
- package/esm5/core/models/dto/table-group-header.dto.js +15 -0
- package/esm5/core/models/dto/table-page-event.dto.js +11 -0
- package/esm5/core/models/dto/token.dto.js +11 -0
- package/esm5/core/models/enums/criteria-operation.enum.js +15 -0
- package/esm5/core/models/enums/criteria-sort-direction.enum.js +6 -0
- package/esm5/core/models/enums/menu-type.enum.js +7 -0
- package/esm5/core/models/enums/radio-button.enum.js +8 -0
- package/esm5/core/models/enums/sort-direction.enum.js +6 -0
- package/esm5/core/models/multitenant.model.js +11 -0
- package/esm5/core/models/permission.model.js +16 -0
- package/esm5/core/models/role.model.js +13 -0
- package/esm5/core/pipes/local-time.pipe.js +26 -0
- package/esm5/core/services/abstract-crud.service.js +30 -0
- package/esm5/core/services/abstract-find.service.js +71 -0
- package/esm5/core/services/abstract.service.js +32 -0
- package/esm5/core/services/authentication.service.js +121 -0
- package/esm5/core/services/breakpoint-observer.service.js +52 -0
- package/esm5/core/services/confirmation.service.js +66 -0
- package/esm5/core/services/dialog.service.js +44 -0
- package/esm5/core/services/message.service.js +36 -0
- package/esm5/core/services/nav.service.js +51 -0
- package/esm5/core/services/svg-register.service.js +67 -0
- package/esm5/core/types/local-time.type.js +1 -0
- package/esm5/core/types/ng-class.type.js +1 -0
- package/esm5/core/utils/array.util.js +120 -0
- package/esm5/core/utils/browser.util.js +17 -0
- package/esm5/core/utils/currency.util.js +26 -0
- package/esm5/core/utils/date.util.js +269 -0
- package/esm5/core/utils/document.util.js +157 -0
- package/esm5/core/utils/email.util.js +29 -0
- package/esm5/core/utils/number.util.js +32 -0
- package/esm5/core/utils/object.util.js +204 -0
- package/esm5/core/utils/password.util.js +42 -0
- package/esm5/core/utils/phone.util.js +135 -0
- package/esm5/core/utils/string.util.js +44 -0
- package/esm5/core/utils/table-column-builder.js +87 -0
- package/esm5/core/utils/time.util.js +65 -0
- package/esm5/core/utils/url-params.util.js +16 -0
- package/esm5/core/utils/uuid.util.js +21 -0
- package/esm5/core/utils/zindex.util.js +35 -0
- package/esm5/core.js +89 -0
- package/esm5/gipi-components.js +105 -0
- package/esm5/gipisistemas-ng-core.js +21 -0
- package/esm5/public_api.js +4 -0
- package/esm5/shared/api/generate-id-component.js +16 -0
- package/esm5/shared/api/gipi-ng-config.js +77 -0
- package/esm5/shared/api/overlay-message.js +1 -0
- package/esm5/shared/api/throttle.js +60 -0
- package/esm5/shared/api/translation.js +1 -0
- package/esm5/shared/components/button/button.component.js +111 -0
- package/esm5/shared/components/card/card.component.js +45 -0
- package/esm5/shared/components/checkbox/checkbox.component.js +85 -0
- package/esm5/shared/components/dom/connected-overlay-scroll-handler.js +30 -0
- package/esm5/shared/components/dom/dom-handler.js +573 -0
- package/esm5/shared/components/icon/icon.component.js +38 -0
- package/esm5/shared/components/input/input.component.js +242 -0
- package/esm5/shared/components/input-currency/input-currency.component.js +121 -0
- package/esm5/shared/components/input-file/input-file.component.js +165 -0
- package/esm5/shared/components/loading/loading.component.js +18 -0
- package/esm5/shared/components/loading-overlay/loading-overlay.component.js +23 -0
- package/esm5/shared/components/overlay-panel/overlay-panel.component.js +366 -0
- package/esm5/shared/components/popover/popover-ref.js +28 -0
- package/esm5/shared/components/popover/popover.component.js +35 -0
- package/esm5/shared/components/popover/popover.service.js +88 -0
- package/esm5/shared/components/radio-group-entity/radio-group-entity.component.js +80 -0
- package/esm5/shared/components/radio-group-enum/radio-group-enum.component.js +138 -0
- package/esm5/shared/components/select-button/select-button.component.js +195 -0
- package/esm5/shared/components/select-entity/select-entity.component.js +269 -0
- package/esm5/shared/components/select-entity-paged/select-entity-paged.component.js +453 -0
- package/esm5/shared/components/select-entity-paged/shared/default-options.js +35 -0
- package/esm5/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.js +72 -0
- package/esm5/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.js +62 -0
- package/esm5/shared/components/select-entity-paged/shared/select-no-entries-found.directive.js +23 -0
- package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +590 -0
- package/esm5/shared/components/select-entity-paged/shared/select-search-clear.directive.js +21 -0
- package/esm5/shared/components/select-enum/select-enum.component.js +124 -0
- package/esm5/shared/components/select-month-period/select-month-period.component.js +91 -0
- package/esm5/shared/components/slide-toggle/slide-toggle.component.js +81 -0
- package/esm5/shared/components/stepper/stepper.component.js +36 -0
- package/esm5/shared/components/tab/tab.component.js +58 -0
- package/esm5/shared/components/tab-group/tab-group.component.js +125 -0
- package/esm5/shared/components/table/table.component.js +538 -0
- package/esm5/shared/components/table-scrolled/table-scrolled.component.js +107 -0
- package/esm5/shared/components/textarea/textarea.component.js +174 -0
- package/esm5/shared/directives/dynamic-tab.directive.js +19 -0
- package/esm5/shared/directives/generic-template.directive.js +31 -0
- package/esm5/shared/directives/input-select-infinite-scroll.directive.js +113 -0
- package/esm5/shared/directives/lower-case.directive.js +48 -0
- package/esm5/shared/directives/phone-mask.directive.js +61 -0
- package/esm5/shared/directives/space-drop.directive.js +48 -0
- package/esm5/shared/directives/upper-case.directive.js +48 -0
- package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +141 -0
- package/esm5/shared/gipi-components/action-row/action-row.component.js +33 -0
- package/esm5/shared/gipi-components/badge/badge.component.js +46 -0
- package/esm5/shared/gipi-components/button/button.component.js +257 -0
- package/esm5/shared/gipi-components/chips/chips.component.js +159 -0
- package/esm5/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.js +46 -0
- package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +378 -0
- package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.js +42 -0
- package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.js +40 -0
- package/esm5/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.js +291 -0
- package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +252 -0
- package/esm5/shared/gipi-components/datepicker/datepicker.module.js +133 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +349 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar.js +441 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.js +339 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +376 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.js +46 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.js +62 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.js +167 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.js +35 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.js +586 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.js +14 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.js +327 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.js +199 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.js +52 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.js +133 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/datepicker.js +34 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/month-view.js +384 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.js +324 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.js +118 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.js +10 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.js +300 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.js +19 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.js +82 -0
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/year-view.js +313 -0
- package/esm5/shared/gipi-components/dom/connected-overlay-scroll-handler.js +30 -0
- package/esm5/shared/gipi-components/dom/dom-handler.js +681 -0
- package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +191 -0
- package/esm5/shared/gipi-components/expansion-panel/expansion-panel.component.js +83 -0
- package/esm5/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.js +255 -0
- package/esm5/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.js +93 -0
- package/esm5/shared/gipi-components/footer/footer.component.js +32 -0
- package/esm5/shared/gipi-components/form-field/form-field.component.js +276 -0
- package/esm5/shared/gipi-components/helpful-tip/helpful-tip.component.js +68 -0
- package/esm5/shared/gipi-components/infinite-scroll/infinite-scroll.directive.js +106 -0
- package/esm5/shared/gipi-components/input-checkbox/input-checkbox.component.js +118 -0
- package/esm5/shared/gipi-components/input-currency/input-currency.component.js +207 -0
- package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +426 -0
- package/esm5/shared/gipi-components/input-select/input-select.component.js +698 -0
- package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +351 -0
- package/esm5/shared/gipi-components/input-select-listbox/input-select-listbox.component.js +437 -0
- package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +397 -0
- package/esm5/shared/gipi-components/input-select-paged/input-select-paged.component.js +384 -0
- package/esm5/shared/gipi-components/input-select-radio/input-select-radio.component.js +286 -0
- package/esm5/shared/gipi-components/layout-grid/col.directive.js +164 -0
- package/esm5/shared/gipi-components/layout-grid/row.directive.js +127 -0
- package/esm5/shared/gipi-components/layout-grid/services/breakpoint.service.js +90 -0
- package/esm5/shared/gipi-components/layout-grid/services/resize.service.js +68 -0
- package/esm5/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.js +200 -0
- package/esm5/shared/gipi-components/month-year-picker/mont-year-picker.module.js +50 -0
- package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +505 -0
- package/esm5/shared/gipi-components/notification/notification.component.js +106 -0
- package/esm5/shared/gipi-components/novelties/novelties.component.js +111 -0
- package/esm5/shared/gipi-components/overlay/overlay.component.js +670 -0
- package/esm5/shared/gipi-components/overlay/shared/overlay-service.js +22 -0
- package/esm5/shared/gipi-components/overlay/shared/overlay_options.js +1 -0
- package/esm5/shared/gipi-components/password-requeriments/password-requeriments.component.js +157 -0
- package/esm5/shared/gipi-components/popover/popover.component.js +473 -0
- package/esm5/shared/gipi-components/popover/shared/popover-animations.js +29 -0
- package/esm5/shared/gipi-components/popover/shared/popover-errors.js +21 -0
- package/esm5/shared/gipi-components/popover/shared/popover-interfaces.js +1 -0
- package/esm5/shared/gipi-components/popover/shared/popover-target.js +20 -0
- package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +529 -0
- package/esm5/shared/gipi-components/popover/shared/popover-types.js +1 -0
- package/esm5/shared/gipi-components/radio-group/radio-group.component.js +155 -0
- package/esm5/shared/gipi-components/range-page/range-page.component.js +283 -0
- package/esm5/shared/gipi-components/range-slider/range-slider.component.js +364 -0
- package/esm5/shared/gipi-components/select/select.component.js +222 -0
- package/esm5/shared/gipi-components/select-button/select-button.component.js +206 -0
- package/esm5/shared/gipi-components/sidebar/container/container.component.js +96 -0
- package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +267 -0
- package/esm5/shared/gipi-components/stepper/stepper.component.js +43 -0
- package/esm5/shared/gipi-components/table/components/table-body/table-body.component.js +209 -0
- package/esm5/shared/gipi-components/table/components/table-footer/table-footer.component.js +33 -0
- package/esm5/shared/gipi-components/table/components/table-header/table-header.component.js +155 -0
- package/esm5/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.js +123 -0
- package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.js +228 -0
- package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.js +1 -0
- package/esm5/shared/gipi-components/table/components/table-pagination/shared/pagination.service.js +108 -0
- package/esm5/shared/gipi-components/table/components/table-pagination/table-pagination.component.js +116 -0
- package/esm5/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.js +33 -0
- package/esm5/shared/gipi-components/table/models/pipe-transform.model.js +1 -0
- package/esm5/shared/gipi-components/table/models/sort.model.js +29 -0
- package/esm5/shared/gipi-components/table/models/sorted-column.model.js +2 -0
- package/esm5/shared/gipi-components/table/models/table-column-builder.model.js +106 -0
- package/esm5/shared/gipi-components/table/models/table-column.model.js +252 -0
- package/esm5/shared/gipi-components/table/table.component.js +161 -0
- package/esm5/shared/gipi-components/table/types/sort-direction.type.js +1 -0
- package/esm5/shared/gipi-components/table/types/sort.type.js +1 -0
- package/esm5/shared/gipi-components/template/template.directive.js +34 -0
- package/esm5/shared/gipi-components/toolbar/toolbar.component.js +56 -0
- package/esm5/shared/gipi-components/top-nav/top-nav.component.js +40 -0
- package/esm5/shared/gipi-components/user-profile/user-profile.component.js +115 -0
- package/esm5/shared/material.module.js +101 -0
- package/esm5/shared/shared.module.js +340 -0
- package/esm5/shared.js +36 -0
- package/fesm2015/gipisistemas-ng-core.js +25879 -0
- package/fesm2015/gipisistemas-ng-core.js.map +1 -0
- package/fesm5/gipisistemas-ng-core.js +27905 -0
- package/fesm5/gipisistemas-ng-core.js.map +1 -0
- package/gipi-components.d.ts +97 -0
- package/gipisistemas-ng-core.d.ts +20 -0
- package/gipisistemas-ng-core.metadata.json +1 -0
- package/package.json +31 -83
- package/public_api.d.ts +3 -0
- package/shared/api/generate-id-component.d.ts +3 -0
- package/shared/api/gipi-ng-config.d.ts +18 -0
- package/shared/api/overlay-message.d.ts +14 -0
- package/shared/api/throttle.d.ts +17 -0
- package/shared/api/translation.d.ts +45 -0
- package/shared/components/button/button.component.d.ts +26 -0
- package/shared/components/card/card.component.d.ts +10 -0
- package/shared/components/checkbox/checkbox.component.d.ts +20 -0
- package/shared/components/dom/connected-overlay-scroll-handler.d.ts +9 -0
- package/shared/components/dom/dom-handler.d.ts +74 -0
- package/shared/components/icon/icon.component.d.ts +9 -0
- package/shared/components/input/input.component.d.ts +52 -0
- package/shared/components/input-currency/input-currency.component.d.ts +29 -0
- package/shared/components/input-file/input-file.component.d.ts +28 -0
- package/shared/components/loading/loading.component.d.ts +4 -0
- package/shared/components/loading-overlay/loading-overlay.component.d.ts +6 -0
- package/shared/components/overlay-panel/overlay-panel.component.d.ts +67 -0
- package/shared/components/popover/popover-ref.d.ts +17 -0
- package/shared/components/popover/popover.component.d.ts +10 -0
- package/shared/components/popover/popover.service.d.ts +23 -0
- package/shared/components/radio-group-entity/radio-group-entity.component.d.ts +19 -0
- package/shared/components/radio-group-enum/radio-group-enum.component.d.ts +30 -0
- package/shared/components/select-button/select-button.component.d.ts +35 -0
- package/shared/components/select-entity/select-entity.component.d.ts +52 -0
- package/shared/components/select-entity-paged/select-entity-paged.component.d.ts +78 -0
- package/shared/components/select-entity-paged/shared/default-options.d.ts +25 -0
- package/shared/components/select-entity-paged/shared/select-button-add/select-button-add.component.d.ts +18 -0
- package/shared/components/select-entity-paged/shared/select-button-next-batch/select-button-next-batch.component.d.ts +16 -0
- package/shared/components/select-entity-paged/shared/select-no-entries-found.directive.d.ts +11 -0
- package/shared/components/select-entity-paged/shared/select-search/select-search.component.d.ts +119 -0
- package/shared/components/select-entity-paged/shared/select-search-clear.directive.d.ts +9 -0
- package/shared/components/select-enum/select-enum.component.d.ts +29 -0
- package/shared/components/select-month-period/select-month-period.component.d.ts +20 -0
- package/shared/components/slide-toggle/slide-toggle.component.d.ts +19 -0
- package/shared/components/stepper/stepper.component.d.ts +7 -0
- package/shared/components/tab/tab.component.d.ts +14 -0
- package/shared/components/tab-group/tab-group.component.d.ts +22 -0
- package/shared/components/table/table.component.d.ts +86 -0
- package/shared/components/table-scrolled/table-scrolled.component.d.ts +31 -0
- package/shared/components/textarea/textarea.component.d.ts +35 -0
- package/shared/directives/dynamic-tab.directive.d.ts +5 -0
- package/shared/directives/generic-template.directive.d.ts +8 -0
- package/shared/directives/input-select-infinite-scroll.directive.d.ts +35 -0
- package/shared/directives/lower-case.directive.d.ts +9 -0
- package/shared/directives/phone-mask.directive.d.ts +8 -0
- package/shared/directives/space-drop.directive.d.ts +9 -0
- package/shared/directives/upper-case.directive.d.ts +9 -0
- package/shared/gipi-components/abstract-form/abstract-form.component.d.ts +21 -0
- package/shared/gipi-components/action-row/action-row.component.d.ts +5 -0
- package/shared/gipi-components/badge/badge.component.d.ts +8 -0
- package/shared/gipi-components/button/button.component.d.ts +56 -0
- package/shared/gipi-components/chips/chips.component.d.ts +37 -0
- package/shared/gipi-components/confirmation-dialog/confirmation-dialog.component.d.ts +11 -0
- package/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.d.ts +71 -0
- package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range-selection-startegy.d.ts +11 -0
- package/shared/gipi-components/datepicker/date-range-picker/shared/max-range/max-range.directive.d.ts +6 -0
- package/shared/gipi-components/datepicker/date-range-picker/shared/preset-range/preset-range.component.d.ts +40 -0
- package/shared/gipi-components/datepicker/datepicker/datepicker.component.d.ts +49 -0
- package/shared/gipi-components/datepicker/datepicker.module.d.ts +2 -0
- package/shared/gipi-components/datepicker/mat-datepicker/calendar-body.d.ts +143 -0
- package/shared/gipi-components/datepicker/mat-datepicker/calendar.d.ts +152 -0
- package/shared/gipi-components/datepicker/mat-datepicker/date-range-input-parts.d.ts +102 -0
- package/shared/gipi-components/datepicker/mat-datepicker/date-range-input.d.ts +124 -0
- package/shared/gipi-components/datepicker/mat-datepicker/date-range-picker.d.ts +21 -0
- package/shared/gipi-components/datepicker/mat-datepicker/date-range-selection-strategy.d.ts +45 -0
- package/shared/gipi-components/datepicker/mat-datepicker/date-selection-model.d.ts +106 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-animations.d.ts +16 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-base.d.ts +209 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-errors.d.ts +9 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input-base.d.ts +136 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-input.d.ts +68 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-intl.d.ts +38 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker-toggle.d.ts +39 -0
- package/shared/gipi-components/datepicker/mat-datepicker/datepicker.d.ts +11 -0
- package/shared/gipi-components/datepicker/mat-datepicker/month-view.d.ts +120 -0
- package/shared/gipi-components/datepicker/mat-datepicker/multi-year-view.d.ts +85 -0
- package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-adapter.d.ts +225 -0
- package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/date-formats.d.ts +20 -0
- package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-adapter.d.ts +76 -0
- package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/native-date-formats.d.ts +9 -0
- package/shared/gipi-components/datepicker/mat-datepicker/shared/adapter/platform.d.ts +33 -0
- package/shared/gipi-components/datepicker/mat-datepicker/year-view.d.ts +97 -0
- package/shared/gipi-components/dom/connected-overlay-scroll-handler.d.ts +9 -0
- package/shared/gipi-components/dom/dom-handler.d.ts +85 -0
- package/shared/gipi-components/dropdown-menu/dropdown-menu.component.d.ts +36 -0
- package/shared/gipi-components/expansion-panel/expansion-panel.component.d.ts +16 -0
- package/shared/gipi-components/file-drag-and-drop/file-drag-and-drop.component.d.ts +43 -0
- package/shared/gipi-components/file-drag-and-drop/shared/file-drag-and-drop.directive.d.ts +13 -0
- package/shared/gipi-components/footer/footer.component.d.ts +5 -0
- package/shared/gipi-components/form-field/form-field.component.d.ts +61 -0
- package/shared/gipi-components/helpful-tip/helpful-tip.component.d.ts +13 -0
- package/shared/gipi-components/infinite-scroll/infinite-scroll.directive.d.ts +27 -0
- package/shared/gipi-components/input-checkbox/input-checkbox.component.d.ts +28 -0
- package/shared/gipi-components/input-currency/input-currency.component.d.ts +48 -0
- package/shared/gipi-components/input-monthpicker/input-monthpicker.component.d.ts +89 -0
- package/shared/gipi-components/input-select/input-select.component.d.ts +120 -0
- package/shared/gipi-components/input-select-enum/input-select-enum.component.d.ts +65 -0
- package/shared/gipi-components/input-select-listbox/input-select-listbox.component.d.ts +85 -0
- package/shared/gipi-components/input-select-paged/input-search/input-search.component.d.ts +77 -0
- package/shared/gipi-components/input-select-paged/input-select-paged.component.d.ts +66 -0
- package/shared/gipi-components/input-select-radio/input-select-radio.component.d.ts +53 -0
- package/shared/gipi-components/layout-grid/col.directive.d.ts +38 -0
- package/shared/gipi-components/layout-grid/row.directive.d.ts +28 -0
- package/shared/gipi-components/layout-grid/services/breakpoint.service.d.ts +30 -0
- package/shared/gipi-components/layout-grid/services/resize.service.d.ts +17 -0
- package/shared/gipi-components/month-year-picker/calendar-month-year/calendar-month-year.component.d.ts +37 -0
- package/shared/gipi-components/month-year-picker/mont-year-picker.module.d.ts +2 -0
- package/shared/gipi-components/month-year-picker/month-year-picker.component.d.ts +104 -0
- package/shared/gipi-components/notification/notification.component.d.ts +21 -0
- package/shared/gipi-components/novelties/novelties.component.d.ts +22 -0
- package/shared/gipi-components/overlay/overlay.component.d.ts +113 -0
- package/shared/gipi-components/overlay/shared/overlay-service.d.ts +6 -0
- package/shared/gipi-components/overlay/shared/overlay_options.d.ts +50 -0
- package/shared/gipi-components/password-requeriments/password-requeriments.component.d.ts +27 -0
- package/shared/gipi-components/popover/popover.component.d.ts +133 -0
- package/shared/gipi-components/popover/shared/popover-animations.d.ts +13 -0
- package/shared/gipi-components/popover/shared/popover-errors.d.ts +14 -0
- package/shared/gipi-components/popover/shared/popover-interfaces.d.ts +43 -0
- package/shared/gipi-components/popover/shared/popover-target.d.ts +5 -0
- package/shared/gipi-components/popover/shared/popover-trigger.d.ts +140 -0
- package/shared/gipi-components/popover/shared/popover-types.d.ts +4 -0
- package/shared/gipi-components/radio-group/radio-group.component.d.ts +33 -0
- package/shared/gipi-components/range-page/range-page.component.d.ts +55 -0
- package/shared/gipi-components/range-slider/range-slider.component.d.ts +57 -0
- package/shared/gipi-components/select/select.component.d.ts +45 -0
- package/shared/gipi-components/select-button/select-button.component.d.ts +39 -0
- package/shared/gipi-components/sidebar/container/container.component.d.ts +15 -0
- package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +40 -0
- package/shared/gipi-components/stepper/stepper.component.d.ts +8 -0
- package/shared/gipi-components/table/components/table-body/table-body.component.d.ts +36 -0
- package/shared/gipi-components/table/components/table-footer/table-footer.component.d.ts +5 -0
- package/shared/gipi-components/table/components/table-header/table-header.component.d.ts +28 -0
- package/shared/gipi-components/table/components/table-pagination/shared/paginate.pipe.d.ts +40 -0
- package/shared/gipi-components/table/components/table-pagination/shared/pagination-controls.directive.d.ts +81 -0
- package/shared/gipi-components/table/components/table-pagination/shared/pagination-instance.d.ts +24 -0
- package/shared/gipi-components/table/components/table-pagination/shared/pagination.service.d.ts +45 -0
- package/shared/gipi-components/table/components/table-pagination/table-pagination.component.d.ts +21 -0
- package/shared/gipi-components/table/components/table-progress-bar/table-progress-bar.component.d.ts +5 -0
- package/shared/gipi-components/table/models/pipe-transform.model.d.ts +3 -0
- package/shared/gipi-components/table/models/sort.model.d.ts +10 -0
- package/shared/gipi-components/table/models/sorted-column.model.d.ts +6 -0
- package/shared/gipi-components/table/models/table-column-builder.model.d.ts +52 -0
- package/shared/gipi-components/table/models/table-column.model.d.ts +74 -0
- package/shared/gipi-components/table/table.component.d.ts +37 -0
- package/shared/gipi-components/table/types/sort-direction.type.d.ts +1 -0
- package/shared/gipi-components/table/types/sort.type.d.ts +1 -0
- package/shared/gipi-components/template/template.directive.d.ts +8 -0
- package/shared/gipi-components/toolbar/toolbar.component.d.ts +11 -0
- package/shared/gipi-components/top-nav/top-nav.component.d.ts +8 -0
- package/shared/gipi-components/user-profile/user-profile.component.d.ts +24 -0
- package/shared/material.module.d.ts +2 -0
- package/shared/shared.module.d.ts +6 -0
- package/shared.d.ts +35 -0
- package/README.md +0 -38
- package/_ITSS-NG-CI-CD.yml +0 -53
- package/_ITSS-NG-CI-PR.yml +0 -53
- package/angular-cli.json +0 -42
- package/azure-pipelines.yml +0 -35
- package/projects/itss-ng/ng-package.json +0 -7
- package/projects/itss-ng/package.json +0 -25
@@ -0,0 +1,538 @@
|
|
1
|
+
import { __decorate, __metadata, __read, __spread } from "tslib";
|
2
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
3
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';
|
4
|
+
import { MatPaginator, MatSort, MatTableDataSource } from '@angular/material';
|
5
|
+
import { of } from 'rxjs';
|
6
|
+
import { delay } from 'rxjs/operators';
|
7
|
+
import { ArrayUtil, ObjectUtil, StringUtil } from '../../../core';
|
8
|
+
import { TableGroupHeaderDTO } from '../../../core/models/dto/table-group-header.dto';
|
9
|
+
var TableComponent = /** @class */ (function () {
|
10
|
+
function TableComponent() {
|
11
|
+
this._expandedElements = [];
|
12
|
+
this._scrollHeightCalc = 410;
|
13
|
+
this._isPopoverHover = null;
|
14
|
+
this._displayedColumns = [];
|
15
|
+
this.shadow = false;
|
16
|
+
this.columns = [];
|
17
|
+
this.paginator = false;
|
18
|
+
this.backendPagination = true;
|
19
|
+
this.paginatorPageIndex = 0;
|
20
|
+
this.paginatorLength = 0;
|
21
|
+
this.paginatorPageSize = 10;
|
22
|
+
this.paginatorPageSizeOptions = [10, 20, 30];
|
23
|
+
this.showPageSizeOptions = false;
|
24
|
+
this.loading = false;
|
25
|
+
this.expandable = false;
|
26
|
+
this.showHeader = true;
|
27
|
+
this.headerSticky = false;
|
28
|
+
this.groupHeaderSticky = false;
|
29
|
+
this.groupStartExpanded = false;
|
30
|
+
this.infiniteScroll = false;
|
31
|
+
this.scrollDelay = 1000;
|
32
|
+
this.scrollOffset = 1000;
|
33
|
+
this.isFiltering = false;
|
34
|
+
this.showColumnExpandableFixed = false;
|
35
|
+
this.expandableOneRow = false;
|
36
|
+
this.ignoreChildrenExpandRow = false;
|
37
|
+
this.clearSort = false;
|
38
|
+
this.sortActive = '';
|
39
|
+
this.sortDirection = 'asc';
|
40
|
+
this.rowExpandedChange = new EventEmitter(true);
|
41
|
+
this.dataChange = new EventEmitter(true);
|
42
|
+
this.page = new EventEmitter();
|
43
|
+
this.rowHover = new EventEmitter();
|
44
|
+
}
|
45
|
+
Object.defineProperty(TableComponent.prototype, "data", {
|
46
|
+
get: function () {
|
47
|
+
return this._dataValue;
|
48
|
+
},
|
49
|
+
set: function (data) {
|
50
|
+
this._dataValue = data;
|
51
|
+
this.dataChange.emit(this._dataValue);
|
52
|
+
},
|
53
|
+
enumerable: false,
|
54
|
+
configurable: true
|
55
|
+
});
|
56
|
+
Object.defineProperty(TableComponent.prototype, "matTableHeigth", {
|
57
|
+
get: function () {
|
58
|
+
var headerRowHeight;
|
59
|
+
if (!ObjectUtil.isNull(this._matHeaderRowRef)) {
|
60
|
+
headerRowHeight = this._matHeaderRowRef.elementRef.nativeElement.clientHeight;
|
61
|
+
}
|
62
|
+
var paginatorRowHeight;
|
63
|
+
var paginatorRef = this.backendPagination ? this._matBackendPaginatorRowRef : this._matFrontendPaginatorRowRef;
|
64
|
+
if (!ObjectUtil.isNull(paginatorRef)) {
|
65
|
+
paginatorRowHeight = paginatorRef.elementRef.nativeElement.clientHeight;
|
66
|
+
}
|
67
|
+
var matHeaderwHeight = headerRowHeight || 60;
|
68
|
+
var matPaginatorHeight = paginatorRowHeight || 57;
|
69
|
+
var pageSize = this.paginatorPageSize && (this.paginatorPageSize <= 10) ? this.paginatorPageSize : 10;
|
70
|
+
var setHeigth = this.headerSticky && (this.data.length > pageSize);
|
71
|
+
return of(setHeigth ? ((57 * pageSize) + matHeaderwHeight + matPaginatorHeight) + "px" : 'auto');
|
72
|
+
},
|
73
|
+
enumerable: false,
|
74
|
+
configurable: true
|
75
|
+
});
|
76
|
+
TableComponent.prototype.ngOnInit = function () { };
|
77
|
+
TableComponent.prototype.ngAfterViewInit = function () {
|
78
|
+
var _this = this;
|
79
|
+
setTimeout(function () {
|
80
|
+
if (!ObjectUtil.isNull(_this._dataSource)) {
|
81
|
+
_this._dataSource.sort = _this.matSort;
|
82
|
+
if (_this.paginator && !_this.backendPagination && !_this.infiniteScroll) {
|
83
|
+
_this._dataSource.paginator = _this.matFrontendPaginator;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
if (_this.paginator && (_this.backendPagination || _this.infiniteScroll)) {
|
87
|
+
_this.onPage({
|
88
|
+
pageSize: _this.paginatorPageSize,
|
89
|
+
paginatorPageSizeOptions: _this.paginatorPageSizeOptions,
|
90
|
+
pageIndex: 0,
|
91
|
+
length: 0,
|
92
|
+
previousPageIndex: 0
|
93
|
+
});
|
94
|
+
}
|
95
|
+
if (!ObjectUtil.isNull(_this.actionsPopoverRef)) {
|
96
|
+
_this._contextPopover = null;
|
97
|
+
_this._isPopoverHover = false;
|
98
|
+
_this.closePopover(0);
|
99
|
+
var popover = document.getElementById('table-popover');
|
100
|
+
if (!ObjectUtil.isNull(popover)) {
|
101
|
+
popover.style.visibility = 'hidden';
|
102
|
+
}
|
103
|
+
}
|
104
|
+
});
|
105
|
+
};
|
106
|
+
TableComponent.prototype.ngOnChanges = function (changes) {
|
107
|
+
var _this = this;
|
108
|
+
setTimeout(function () {
|
109
|
+
if (changes.data) {
|
110
|
+
_this._createDataSource();
|
111
|
+
}
|
112
|
+
});
|
113
|
+
};
|
114
|
+
TableComponent.prototype._createDataSource = function () {
|
115
|
+
var _this = this;
|
116
|
+
var columns = this.columns.filter(function (c) { return c.visible; }).map(function (c) { return c.property; });
|
117
|
+
if (!ObjectUtil.isNull(this.expandedRef)) {
|
118
|
+
columns = __spread(['expandedColumn'], columns);
|
119
|
+
}
|
120
|
+
if (!ObjectUtil.isNull(this.actionsRef)) {
|
121
|
+
columns = __spread(columns, ['actionsColumn']);
|
122
|
+
}
|
123
|
+
this._displayedColumns = columns;
|
124
|
+
if (this.infiniteScroll) {
|
125
|
+
var dataAll = [];
|
126
|
+
if (!this.isFiltering) {
|
127
|
+
if (!ObjectUtil.isNull(this._dataSource)) {
|
128
|
+
dataAll = ArrayUtil.clone(this._dataSource.data);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
if (!ArrayUtil.isEmpty(this.data)) {
|
132
|
+
dataAll.push.apply(dataAll, __spread(this.data));
|
133
|
+
}
|
134
|
+
this._dataSource = new MatTableDataSource([]);
|
135
|
+
if (!StringUtil.isEmpty(this.groupByColumn) && !ObjectUtil.isNull(this.groupHeaderRef)) {
|
136
|
+
this._dataSource.data = this.genereteGroupsByColumn(dataAll);
|
137
|
+
}
|
138
|
+
else {
|
139
|
+
this._dataSource.data = dataAll;
|
140
|
+
}
|
141
|
+
this.data = dataAll;
|
142
|
+
this.dataChange.emit(this.data);
|
143
|
+
this.calcScrollHeight();
|
144
|
+
}
|
145
|
+
else {
|
146
|
+
this._dataSource = new MatTableDataSource([]);
|
147
|
+
if (!StringUtil.isEmpty(this.groupByColumn) && !ObjectUtil.isNull(this.groupHeaderRef)) {
|
148
|
+
this._dataSource.data = this.genereteGroupsByColumn(this.data);
|
149
|
+
}
|
150
|
+
else {
|
151
|
+
this._dataSource.data = this.data;
|
152
|
+
}
|
153
|
+
}
|
154
|
+
if (!ArrayUtil.isEmpty(this._dataSource.data)) {
|
155
|
+
this._dataSource.sort = this.matSort;
|
156
|
+
this.setSortingDataAccessor();
|
157
|
+
}
|
158
|
+
if (this.paginator && !this.backendPagination) {
|
159
|
+
this._dataSource.paginator = this.matFrontendPaginator;
|
160
|
+
}
|
161
|
+
if (!this.groupStartExpanded && (this.groupHeaderRef || (this.expandable && this.expandedRef)) && !ArrayUtil.isEmpty(this._dataSource.data)) {
|
162
|
+
this._dataSource.data.forEach(function (row) { return _this.addCollapse(row); });
|
163
|
+
}
|
164
|
+
};
|
165
|
+
TableComponent.prototype.calcScrollHeight = function () {
|
166
|
+
if ((this._dataSource && (this._dataSource.data.length > 0)) && (Math.floor(this._scrollHeightCalc) <= 700)) {
|
167
|
+
this._scrollHeightCalc = 130 + (this._dataSource.data.length * 48);
|
168
|
+
}
|
169
|
+
};
|
170
|
+
TableComponent.prototype.onPage = function (pageEvent) {
|
171
|
+
this.paginatorPageSize = pageEvent.pageSize;
|
172
|
+
pageEvent.paginatorPageSizeOptions = ArrayUtil.isEmpty(pageEvent.paginatorPageSizeOptions) ? this.paginatorPageSizeOptions : pageEvent.paginatorPageSizeOptions;
|
173
|
+
this.page.emit(pageEvent);
|
174
|
+
};
|
175
|
+
TableComponent.prototype.isExpansed = function (element) {
|
176
|
+
return this._expandedElements.filter(function (e) { return ObjectUtil.equals(e, element); }).length > 0;
|
177
|
+
};
|
178
|
+
TableComponent.prototype.removeCollapse = function (element) {
|
179
|
+
var _this = this;
|
180
|
+
if (this.expandableOneRow) {
|
181
|
+
this._dataSource.data.forEach(function (row) { return _this.addCollapse(row); });
|
182
|
+
}
|
183
|
+
var expandedElementsAux = ArrayUtil.clone(this._expandedElements);
|
184
|
+
expandedElementsAux.splice(this._expandedElements.indexOf(element), 1);
|
185
|
+
this._expandedElements = ArrayUtil.clone(expandedElementsAux);
|
186
|
+
};
|
187
|
+
TableComponent.prototype.addCollapse = function (element) {
|
188
|
+
var collapsedElement = this._expandedElements.filter(function (e) { return ObjectUtil.equals(e, element); }).length > 0;
|
189
|
+
if (!collapsedElement) {
|
190
|
+
this._expandedElements.push(element);
|
191
|
+
}
|
192
|
+
};
|
193
|
+
TableComponent.prototype.rowExpandedChangeEmit = function (element) {
|
194
|
+
this.rowExpandedChange.emit(element);
|
195
|
+
};
|
196
|
+
TableComponent.prototype.sortData = function (sort) {
|
197
|
+
if (this.infiniteScroll) {
|
198
|
+
this.data = [];
|
199
|
+
this.dataChange.emit([]);
|
200
|
+
this._dataSource = new MatTableDataSource([]);
|
201
|
+
this.calcScrollHeight();
|
202
|
+
}
|
203
|
+
this.onPage({
|
204
|
+
pageSize: this.paginatorPageSize,
|
205
|
+
pageIndex: 0,
|
206
|
+
length: 0,
|
207
|
+
previousPageIndex: 0,
|
208
|
+
paginatorPageSizeOptions: this.paginatorPageSizeOptions,
|
209
|
+
sort: sort
|
210
|
+
});
|
211
|
+
};
|
212
|
+
TableComponent.prototype.showPopover = function (event, data) {
|
213
|
+
var popover = document.getElementById('table-popover');
|
214
|
+
if (!ObjectUtil.isNull(popover)) {
|
215
|
+
popover.style.visibility = 'hidden';
|
216
|
+
if (!this.loading) {
|
217
|
+
var domRectPopover = popover.getBoundingClientRect();
|
218
|
+
var domRectRow = event.currentTarget.getBoundingClientRect();
|
219
|
+
var cells = event.currentTarget.children;
|
220
|
+
if (domRectPopover && domRectRow) {
|
221
|
+
popover.style.visibility = 'visible';
|
222
|
+
popover.style.top = (domRectRow.top + domRectRow.height) - 1 + "px";
|
223
|
+
var startPosition_1 = 0;
|
224
|
+
var endPosition_1 = 0;
|
225
|
+
if (this.columnInitial && (this.columnInitial >= 0)) {
|
226
|
+
if (!cells[this.columnInitial]) {
|
227
|
+
throw new Error('Initial column undefined or null');
|
228
|
+
}
|
229
|
+
startPosition_1 = cells[this.columnInitial].getBoundingClientRect().left;
|
230
|
+
}
|
231
|
+
else {
|
232
|
+
startPosition_1 = domRectRow.left;
|
233
|
+
}
|
234
|
+
if (this.columnFinal && (this.columnFinal >= 0)) {
|
235
|
+
if (!cells[this.columnFinal]) {
|
236
|
+
throw new Error('Final column undefined or null');
|
237
|
+
}
|
238
|
+
endPosition_1 = cells[this.columnFinal].getBoundingClientRect().left - domRectPopover.width;
|
239
|
+
}
|
240
|
+
else {
|
241
|
+
endPosition_1 = domRectRow.right - domRectPopover.width;
|
242
|
+
}
|
243
|
+
setTimeout(function () {
|
244
|
+
if (event.clientX > startPosition_1 + 15 && event.clientX < endPosition_1) {
|
245
|
+
popover.style.left = event.clientX - 15 + "px";
|
246
|
+
}
|
247
|
+
else if (event.clientX <= startPosition_1) {
|
248
|
+
popover.style.left = startPosition_1 + "px";
|
249
|
+
}
|
250
|
+
else if (event.clientX >= endPosition_1) {
|
251
|
+
popover.style.left = endPosition_1 + "px";
|
252
|
+
}
|
253
|
+
});
|
254
|
+
}
|
255
|
+
}
|
256
|
+
}
|
257
|
+
this.rowHover.emit(data);
|
258
|
+
this._contextPopover = data;
|
259
|
+
};
|
260
|
+
TableComponent.prototype.closePopover = function (time) {
|
261
|
+
var _this = this;
|
262
|
+
of(null).pipe(delay(time)).subscribe(function () {
|
263
|
+
if (!ObjectUtil.isNull(_this._isPopoverHover) && !_this._isPopoverHover) {
|
264
|
+
if (!ObjectUtil.isNull(_this._isPopoverHover) && !ObjectUtil.isNull(_this.actionsPopoverRef)) {
|
265
|
+
var popover = document.getElementById('table-popover');
|
266
|
+
if (!ObjectUtil.isNull(popover)) {
|
267
|
+
popover.style.visibility = 'hidden';
|
268
|
+
}
|
269
|
+
}
|
270
|
+
_this._contextPopover = null;
|
271
|
+
_this._isPopoverHover = null;
|
272
|
+
}
|
273
|
+
});
|
274
|
+
};
|
275
|
+
TableComponent.prototype.setSortingDataAccessor = function () {
|
276
|
+
this._dataSource.sortingDataAccessor = function (data, sortHeaderId) {
|
277
|
+
if (typeof data[sortHeaderId] === 'string') {
|
278
|
+
return data[sortHeaderId].toLowerCase();
|
279
|
+
}
|
280
|
+
return data[sortHeaderId];
|
281
|
+
};
|
282
|
+
};
|
283
|
+
// group header
|
284
|
+
TableComponent.prototype.genereteGroupsByColumn = function (data) {
|
285
|
+
var _this = this;
|
286
|
+
var groups = data.reduce(function (group, row) {
|
287
|
+
var dataColumn = row[_this.groupByColumn].toString();
|
288
|
+
if (!group[dataColumn]) {
|
289
|
+
group[dataColumn] = [];
|
290
|
+
}
|
291
|
+
group[dataColumn].push(row);
|
292
|
+
return group;
|
293
|
+
}, {});
|
294
|
+
return Object.keys(groups).map(function (groupValue) {
|
295
|
+
return new TableGroupHeaderDTO(groupValue, groups[groupValue], groups[groupValue].length);
|
296
|
+
});
|
297
|
+
};
|
298
|
+
TableComponent.prototype.getHighlightRow = function (row) {
|
299
|
+
if (!ObjectUtil.isNull(row)) {
|
300
|
+
if (!ObjectUtil.isNull(this.highlightRowFn)) {
|
301
|
+
return this.highlightRowFn(row);
|
302
|
+
}
|
303
|
+
return false;
|
304
|
+
}
|
305
|
+
return false;
|
306
|
+
};
|
307
|
+
TableComponent.prototype.getIndexRow = function (row) {
|
308
|
+
if (!ObjectUtil.isNull(this._dataSource) && !ArrayUtil.isEmpty(this._dataSource.data) && !ObjectUtil.isNull(row)) {
|
309
|
+
return this._dataSource.data.findIndex(function (r) { return r === row; });
|
310
|
+
}
|
311
|
+
};
|
312
|
+
// infinite scroll
|
313
|
+
TableComponent.prototype.hasMore = function () {
|
314
|
+
return !this._dataSource || (this._dataSource.data.length < this.paginatorLength);
|
315
|
+
};
|
316
|
+
TableComponent.prototype.handleScroll = function (scrolled) {
|
317
|
+
if (scrolled && this.hasMore()) {
|
318
|
+
this.onPage({
|
319
|
+
pageSize: this.paginatorPageSize,
|
320
|
+
pageIndex: this.paginatorPageIndex,
|
321
|
+
length: this.paginatorLength,
|
322
|
+
previousPageIndex: this.paginatorPageIndex,
|
323
|
+
});
|
324
|
+
this.paginatorPageIndex += 1;
|
325
|
+
}
|
326
|
+
};
|
327
|
+
__decorate([
|
328
|
+
ViewChild(MatSort, { static: true }),
|
329
|
+
__metadata("design:type", MatSort)
|
330
|
+
], TableComponent.prototype, "matSort", void 0);
|
331
|
+
__decorate([
|
332
|
+
ViewChild(MatPaginator, { static: true }),
|
333
|
+
__metadata("design:type", MatPaginator)
|
334
|
+
], TableComponent.prototype, "matPaginator", void 0);
|
335
|
+
__decorate([
|
336
|
+
ViewChild('frontendPaginator', { static: false }),
|
337
|
+
__metadata("design:type", MatPaginator)
|
338
|
+
], TableComponent.prototype, "matFrontendPaginator", void 0);
|
339
|
+
__decorate([
|
340
|
+
ViewChild('backendPaginator', { static: false }),
|
341
|
+
__metadata("design:type", MatPaginator)
|
342
|
+
], TableComponent.prototype, "matBackendPaginator", void 0);
|
343
|
+
__decorate([
|
344
|
+
ViewChild('matHeaderRow', { static: true }),
|
345
|
+
__metadata("design:type", TemplateRef)
|
346
|
+
], TableComponent.prototype, "_matHeaderRowRef", void 0);
|
347
|
+
__decorate([
|
348
|
+
ViewChild('frontendPaginator', { static: true }),
|
349
|
+
__metadata("design:type", TemplateRef)
|
350
|
+
], TableComponent.prototype, "_matFrontendPaginatorRowRef", void 0);
|
351
|
+
__decorate([
|
352
|
+
ViewChild('backendPaginator', { static: true }),
|
353
|
+
__metadata("design:type", TemplateRef)
|
354
|
+
], TableComponent.prototype, "_matBackendPaginatorRowRef", void 0);
|
355
|
+
__decorate([
|
356
|
+
ContentChild('actions', { static: false }),
|
357
|
+
__metadata("design:type", TemplateRef)
|
358
|
+
], TableComponent.prototype, "actionsRef", void 0);
|
359
|
+
__decorate([
|
360
|
+
ContentChild('actionsPopover', { static: false }),
|
361
|
+
__metadata("design:type", TemplateRef)
|
362
|
+
], TableComponent.prototype, "actionsPopoverRef", void 0);
|
363
|
+
__decorate([
|
364
|
+
ContentChild('footer', { static: false }),
|
365
|
+
__metadata("design:type", TemplateRef)
|
366
|
+
], TableComponent.prototype, "footerRef", void 0);
|
367
|
+
__decorate([
|
368
|
+
ContentChild('expanded', { static: false }),
|
369
|
+
__metadata("design:type", TemplateRef)
|
370
|
+
], TableComponent.prototype, "expandedRef", void 0);
|
371
|
+
__decorate([
|
372
|
+
ContentChild('groupHeader', { static: false }),
|
373
|
+
__metadata("design:type", TemplateRef)
|
374
|
+
], TableComponent.prototype, "groupHeaderRef", void 0);
|
375
|
+
__decorate([
|
376
|
+
ContentChild('groupFooter', { static: false }),
|
377
|
+
__metadata("design:type", TemplateRef)
|
378
|
+
], TableComponent.prototype, "groupFooterRef", void 0);
|
379
|
+
__decorate([
|
380
|
+
Input(),
|
381
|
+
__metadata("design:type", Boolean)
|
382
|
+
], TableComponent.prototype, "shadow", void 0);
|
383
|
+
__decorate([
|
384
|
+
Input(),
|
385
|
+
__metadata("design:type", Array)
|
386
|
+
], TableComponent.prototype, "columns", void 0);
|
387
|
+
__decorate([
|
388
|
+
Input(),
|
389
|
+
__metadata("design:type", Array),
|
390
|
+
__metadata("design:paramtypes", [Array])
|
391
|
+
], TableComponent.prototype, "data", null);
|
392
|
+
__decorate([
|
393
|
+
Input(),
|
394
|
+
__metadata("design:type", Boolean)
|
395
|
+
], TableComponent.prototype, "paginator", void 0);
|
396
|
+
__decorate([
|
397
|
+
Input(),
|
398
|
+
__metadata("design:type", Boolean)
|
399
|
+
], TableComponent.prototype, "backendPagination", void 0);
|
400
|
+
__decorate([
|
401
|
+
Input(),
|
402
|
+
__metadata("design:type", Number)
|
403
|
+
], TableComponent.prototype, "paginatorPageIndex", void 0);
|
404
|
+
__decorate([
|
405
|
+
Input(),
|
406
|
+
__metadata("design:type", Number)
|
407
|
+
], TableComponent.prototype, "paginatorLength", void 0);
|
408
|
+
__decorate([
|
409
|
+
Input(),
|
410
|
+
__metadata("design:type", Number)
|
411
|
+
], TableComponent.prototype, "paginatorPageSize", void 0);
|
412
|
+
__decorate([
|
413
|
+
Input(),
|
414
|
+
__metadata("design:type", Array)
|
415
|
+
], TableComponent.prototype, "paginatorPageSizeOptions", void 0);
|
416
|
+
__decorate([
|
417
|
+
Input(),
|
418
|
+
__metadata("design:type", Boolean)
|
419
|
+
], TableComponent.prototype, "showPageSizeOptions", void 0);
|
420
|
+
__decorate([
|
421
|
+
Input(),
|
422
|
+
__metadata("design:type", Boolean)
|
423
|
+
], TableComponent.prototype, "loading", void 0);
|
424
|
+
__decorate([
|
425
|
+
Input(),
|
426
|
+
__metadata("design:type", Boolean)
|
427
|
+
], TableComponent.prototype, "expandable", void 0);
|
428
|
+
__decorate([
|
429
|
+
Input(),
|
430
|
+
__metadata("design:type", Boolean)
|
431
|
+
], TableComponent.prototype, "showHeader", void 0);
|
432
|
+
__decorate([
|
433
|
+
Input(),
|
434
|
+
__metadata("design:type", Number)
|
435
|
+
], TableComponent.prototype, "columnInitial", void 0);
|
436
|
+
__decorate([
|
437
|
+
Input(),
|
438
|
+
__metadata("design:type", Number)
|
439
|
+
], TableComponent.prototype, "columnFinal", void 0);
|
440
|
+
__decorate([
|
441
|
+
Input(),
|
442
|
+
__metadata("design:type", Boolean)
|
443
|
+
], TableComponent.prototype, "headerSticky", void 0);
|
444
|
+
__decorate([
|
445
|
+
Input(),
|
446
|
+
__metadata("design:type", String)
|
447
|
+
], TableComponent.prototype, "groupByColumn", void 0);
|
448
|
+
__decorate([
|
449
|
+
Input(),
|
450
|
+
__metadata("design:type", Boolean)
|
451
|
+
], TableComponent.prototype, "groupHeaderSticky", void 0);
|
452
|
+
__decorate([
|
453
|
+
Input(),
|
454
|
+
__metadata("design:type", Boolean)
|
455
|
+
], TableComponent.prototype, "groupStartExpanded", void 0);
|
456
|
+
__decorate([
|
457
|
+
Input(),
|
458
|
+
__metadata("design:type", Function)
|
459
|
+
], TableComponent.prototype, "highlightRowFn", void 0);
|
460
|
+
__decorate([
|
461
|
+
Input(),
|
462
|
+
__metadata("design:type", Boolean)
|
463
|
+
], TableComponent.prototype, "infiniteScroll", void 0);
|
464
|
+
__decorate([
|
465
|
+
Input(),
|
466
|
+
__metadata("design:type", Number)
|
467
|
+
], TableComponent.prototype, "scrollDelay", void 0);
|
468
|
+
__decorate([
|
469
|
+
Input(),
|
470
|
+
__metadata("design:type", Number)
|
471
|
+
], TableComponent.prototype, "scrollOffset", void 0);
|
472
|
+
__decorate([
|
473
|
+
Input(),
|
474
|
+
__metadata("design:type", Number)
|
475
|
+
], TableComponent.prototype, "scrollHeigth", void 0);
|
476
|
+
__decorate([
|
477
|
+
Input(),
|
478
|
+
__metadata("design:type", Boolean)
|
479
|
+
], TableComponent.prototype, "isFiltering", void 0);
|
480
|
+
__decorate([
|
481
|
+
Input('columnExpandableFixed'),
|
482
|
+
__metadata("design:type", Boolean)
|
483
|
+
], TableComponent.prototype, "showColumnExpandableFixed", void 0);
|
484
|
+
__decorate([
|
485
|
+
Input(),
|
486
|
+
__metadata("design:type", Boolean)
|
487
|
+
], TableComponent.prototype, "expandableOneRow", void 0);
|
488
|
+
__decorate([
|
489
|
+
Input(),
|
490
|
+
__metadata("design:type", Boolean)
|
491
|
+
], TableComponent.prototype, "ignoreChildrenExpandRow", void 0);
|
492
|
+
__decorate([
|
493
|
+
Input(),
|
494
|
+
__metadata("design:type", Boolean)
|
495
|
+
], TableComponent.prototype, "clearSort", void 0);
|
496
|
+
__decorate([
|
497
|
+
Input(),
|
498
|
+
__metadata("design:type", String)
|
499
|
+
], TableComponent.prototype, "sortActive", void 0);
|
500
|
+
__decorate([
|
501
|
+
Input(),
|
502
|
+
__metadata("design:type", String)
|
503
|
+
], TableComponent.prototype, "sortDirection", void 0);
|
504
|
+
__decorate([
|
505
|
+
Output(),
|
506
|
+
__metadata("design:type", EventEmitter)
|
507
|
+
], TableComponent.prototype, "rowExpandedChange", void 0);
|
508
|
+
__decorate([
|
509
|
+
Output(),
|
510
|
+
__metadata("design:type", EventEmitter)
|
511
|
+
], TableComponent.prototype, "dataChange", void 0);
|
512
|
+
__decorate([
|
513
|
+
Output(),
|
514
|
+
__metadata("design:type", EventEmitter)
|
515
|
+
], TableComponent.prototype, "page", void 0);
|
516
|
+
__decorate([
|
517
|
+
Output(),
|
518
|
+
__metadata("design:type", EventEmitter)
|
519
|
+
], TableComponent.prototype, "rowHover", void 0);
|
520
|
+
TableComponent = __decorate([
|
521
|
+
Component({
|
522
|
+
selector: 'itss-table',
|
523
|
+
template: "<div [class.box-shadow]=\"shadow\"\n [style.height]=\"(matTableHeigth | async)\"\n style=\"background: transparent !important;\"\n fxLayout=\"column\"\n fxFlex>\n\n <itss-table-scrolled [more]=\"hasMore()\"\n [scrollOffset]=\"scrollOffset\"\n [scrollDelay]=\"scrollDelay\"\n (scrolled)=\"handleScroll($event)\"\n [ngStyle]=\"{'flex-basis': scrollHeigth ? scrollHeigth + 'px' : _scrollHeightCalc + 'px' }\"\n *ngIf=\"infiniteScroll; else table\">\n <ng-template *ngTemplateOutlet=\"table\"> </ng-template>\n </itss-table-scrolled>\n\n <ng-template #table>\n <mat-table matSort\n multiTemplateDataRows\n [dataSource]=\"_dataSource\"\n [matSortDisabled]=\"!clearSort\"\n [matSortDisableClear]=\"!clearSort\"\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection?.toLocaleLowerCase()\"\n (matSortChange)=\"sortData($event)\"\n (mouseleave)=\"_isPopoverHover = false; closePopover(0)\">\n\n <ng-container *ngIf=\"expandedRef\"\n cdkColumnDef=\"expandedColumn\">\n <mat-header-cell fxFlex=\"5\"\n fxLayoutAlign=\"end center\"\n *cdkHeaderCellDef>\n </mat-header-cell>\n <mat-cell fxFlex=\"5\"\n fxLayoutAlign=\"end center\"\n *cdkCellDef=\"let row\">\n <itss-button [icon]=\"isExpansed(row) ? 'chevron_right' : 'expand_more'\"\n *ngIf=\"((row?.children) && (row.children.length > 0)) || (row?.expandable) || showColumnExpandableFixed\"\n color=\"primary\"\n type=\"icon\"\n tooltip=\"Expandir | Retrair\"\n (click)=\"(isExpansed(row) ? removeCollapse(row) : addCollapse(row)); rowExpandedChangeEmit(row)\">\n </itss-button>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngFor=\"let column of columns\"\n [cdkColumnDef]=\"column.property\">\n <div *ngIf=\"column.sortable\">\n <mat-header-cell [fxFlex]=\"column.width | async\"\n [fxLayoutAlign]=\"column.align\"\n [ngStyle]=\"{'padding-left': column.sortable && column.align !== '' && (column.align.toLowerCase() === 'center' || column.align.toLowerCase() === 'center center') ? '15px' : '' }\"\n [style.padding-left.px]=\"column.marginLeft | async\"\n [style.padding-right.px]=\"column.marginRight | async\"\n *cdkHeaderCellDef\n mat-sort-header>\n {{ column.name }}\n </mat-header-cell>\n </div>\n <div *ngIf=\"!column.sortable\">\n <mat-header-cell [fxFlex]=\"column.width | async\"\n [fxHide.lt-md]=\"column.hiddenSm\"\n [fxLayoutAlign]=\"column.align\"\n [style.padding-left.px]=\"column.marginLeft | async\"\n [style.padding-right.px]=\"column.marginRight | async\"\n *cdkHeaderCellDef>\n <ng-container *ngIf=\"column.name; else templateHeader\">\n {{ column.name }}\n </ng-container>\n\n <ng-template #templateHeader>\n <ng-container *ngIf=\"column.templateHeader\">\n <ng-container [ngTemplateOutlet]=\"column.templateHeader\"\n [ngTemplateOutletContext]=\"{$implicit: data}\">\n </ng-container>\n </ng-container>\n </ng-template>\n </mat-header-cell>\n </div>\n <mat-cell [fxFlex]=\"column.width | async\"\n [fxHide.lt-md]=\"column.hiddenSm\"\n [fxHide]=\"!column.visible\"\n [fxLayoutAlign]=\"column.align\"\n [class.mat-cell-pointer]=\"column.action\"\n [style.padding-left.px]=\"column.marginLeft | async\"\n [style.padding-right.px]=\"column.marginRight | async\"\n (click)=\"column.action ? column.action(row) : null\"\n *cdkCellDef=\"let row\">\n <ng-container *ngIf=\"column.value; else template\">\n {{ (column.value(row) && (column.value(row).length > (column.sliceLength ? column.sliceLength :\n 50)))\n ? (column.value(row) | slice:0:(column.sliceLength ? column.sliceLength : 50)) + '...'\n : column.value(row) }}\n </ng-container>\n\n <ng-template #template>\n <ng-container *ngIf=\"column.template\">\n <ng-container [ngTemplateOutlet]=\"column.template\"\n [ngTemplateOutletContext]=\"{$implicit: row}\">\n </ng-container>\n </ng-container>\n </ng-template>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"actionsRef\"\n cdkColumnDef=\"actionsColumn\">\n <mat-header-cell fxFlex.gt-md=\"15\"\n fxLayoutAlign=\"center center\"\n *cdkHeaderCellDef>\n A\u00E7\u00F5es\n </mat-header-cell>\n <mat-cell fxFlex=\"15\"\n fxLayoutAlign=\"center center\"\n *cdkCellDef=\"let row\">\n <ng-template [ngTemplateOutlet]=\"actionsRef\"\n [ngTemplateOutletContext]=\"{$implicit: row}\">\n </ng-template>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"expandedRef\"\n matColumnDef=\"expandedDetail\">\n <mat-cell *matCellDef=\"let row\"\n fxFlexFill\n class=\"cell-element-detail\">\n <div class=\"element-detail\"\n *ngIf=\"!ignoreChildrenExpandRow ? (row.children.length > 0) : ignoreChildrenExpandRow\"\n [ngClass]=\"{'collapsed': isExpansed(row), 'expanded': !isExpansed(row)}\">\n <ng-template [ngTemplateOutlet]=\"expandedRef\"\n [ngTemplateOutletContext]=\"{$implicit: row}\">\n </ng-template>\n </div>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"groupByColumn && groupHeaderRef\"\n matColumnDef=\"groupHeader\">\n <mat-cell fxFlex\n [attr.colspan]=\"columns.length\"\n *matCellDef=\"let rowGroup\"\n style=\"cursor: pointer;\"\n [class.group-header-cell-expanded]=\"!isExpansed(rowGroup)\"\n [class.group-header-cell-collapsed]=\"isExpansed(rowGroup)\"\n (click)=\"isExpansed(rowGroup) ? removeCollapse(rowGroup) : addCollapse(rowGroup)\">\n <div class=\"group-header-cell\">\n <itss-button *ngIf=\"rowGroup.childrenGroup.length > 0\"\n [icon]=\"isExpansed(rowGroup) ? 'chevron_right' : 'expand_more'\"\n style.margin-right=\"1.25rem\"\n color=\"primary\"\n type=\"icon\"\n tooltip=\"Expandir | Retrair\"\n (click)=\"isExpansed(rowGroup) ? removeCollapse(rowGroup) : addCollapse(rowGroup)\">\n </itss-button>\n\n <ng-template [ngTemplateOutlet]=\"groupHeaderRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowGroup}\">\n </ng-template>\n </div>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"groupByColumn && groupHeaderRef\"\n matColumnDef=\"expandedGroupHeader\">\n <mat-cell *matCellDef=\"let rowGroup\"\n fxFlexFill>\n <div class=\"element-detail\"\n *ngIf=\"rowGroup.childrenGroup.length > 0\"\n [ngClass]=\"{'collapsed': isExpansed(rowGroup), 'expanded': !isExpansed(rowGroup)}\">\n\n <itss-table *ngIf=\"rowGroup.childrenGroup.length > 0; else noChildrenGroup\"\n [paginator]=\"false\"\n [shadow]=\"false\"\n [showHeader]=\"false\"\n [columns]=\"columns\"\n [data]=\"rowGroup.childrenGroup\"\n class=\"table-level-1\"\n fxFlexFill>\n <ng-template #footer\n *ngIf=\"groupByColumn && groupHeaderRef && groupFooterRef\">\n <ng-template [ngTemplateOutlet]=\"groupFooterRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowGroup}\">\n </ng-template>\n </ng-template>\n </itss-table>\n\n <ng-template #noChildrenGroup>\n <div *ngIf=\"!loading\"\n class=\"no-records\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n <span>Nenhum registro foi encontrado</span>\n </div>\n </ng-template>\n </div>\n </mat-cell>\n </ng-container>\n\n <mat-header-row #matHeaderRow\n (mouseenter)=\"_isPopoverHover = false; closePopover(0)\"\n *matHeaderRowDef=\"_displayedColumns; sticky: headerSticky || groupHeaderSticky\"\n [ngClass]=\"{ 'hidden-header': !showHeader }\">\n </mat-header-row>\n\n <div *ngIf=\"!loading && !expandable && !actionsPopoverRef && !groupByColumn && !groupHeaderRef\">\n <mat-row (mouseover)=\"rowHover.emit(row)\"\n *matRowDef=\"let row; columns: _displayedColumns;\"\n [ngClass]=\"{ 'hoversimulator': row.isMouseHover === true }\"\n [class.highlight]=\"getHighlightRow(row)\"\n [attr.id]=\"'row_'+ getIndexRow(row)\">\n </mat-row>\n </div>\n\n <div *ngIf=\"!loading && !expandable && actionsPopoverRef && !groupByColumn && !groupHeaderRef\">\n <mat-row #rowTemplate\n *matRowDef=\"let row; columns: _displayedColumns;\"\n class=\"element-row\"\n (mousemove)=\"showPopover($event, row)\"\n [class.hoversimulator]=\"_contextPopover === row\"\n [class.highlight]=\"getHighlightRow(row)\"\n [attr.id]=\"'row_'+ getIndexRow(row)\">\n </mat-row>\n </div>\n\n <div *ngIf=\"!loading && expandable && !actionsPopoverRef && !groupByColumn && !groupHeaderRef\">\n <mat-row *matRowDef=\"let row; columns: _displayedColumns;\"\n class=\"element-row\"\n (mouseover)=\"rowHover.emit(row)\"\n [class.expanded-row]=\"_expandedElement === row\"\n [ngClass]=\"{ 'hoversimulator': row.isMouseHover === true }\"\n [class.highlight]=\"getHighlightRow(row)\"\n [attr.id]=\"'row_'+ getIndexRow(row)\">\n </mat-row>\n\n <mat-row *matRowDef=\"let row; columns: ['expandedDetail'];\"\n class=\"detail-row\"\n [attr.id]=\"'row_expand'+ getIndexRow(row)\">\n </mat-row>\n </div>\n\n <div *ngIf=\"!loading && expandable && actionsPopoverRef && !groupByColumn && !groupHeaderRef\">\n <mat-row #rowTemplate\n *matRowDef=\"let row; columns: _displayedColumns;\"\n class=\"element-row\"\n (mousemove)=\"showPopover($event, row)\"\n [class.hoversimulator]=\"_contextPopover === row\"\n [class.expanded-row]=\"_expandedElement === row\"\n [class.highlight]=\"getHighlightRow(row)\"\n [attr.id]=\"'row_'+ getIndexRow(row)\">\n </mat-row>\n\n <mat-row *matRowDef=\"let row; columns: ['expandedDetail'];\"\n class=\"detail-row\"\n [attr.id]=\"'row_expand'+ getIndexRow(row)\">\n </mat-row>\n </div>\n\n <div *ngIf=\"!loading && !expandable && !actionsPopoverRef && groupByColumn && groupHeaderRef\">\n <mat-row *matRowDef=\"let row; columns: ['groupHeader'];\"\n class=\"element-row\"\n (mouseover)=\"rowHover.emit(row)\"\n [class.expanded-row]=\"_expandedElement === row\"\n [class.group-header-sticky]=\"groupHeaderSticky\"\n [ngClass]=\"{ 'hoversimulator': row.isMouseHover === true }\"\n [class.highlight]=\"getHighlightRow(row)\"\n [attr.id]=\"'row_'+ getIndexRow(row)\">\n </mat-row>\n\n <mat-row *matRowDef=\"let row; columns: ['expandedGroupHeader'];\"\n class=\"detail-row\"\n [attr.id]=\"'row_group'+ getIndexRow(row)\">\n </mat-row>\n </div>\n </mat-table>\n\n <mat-progress-bar mode=\"indeterminate\"\n color=\"accent\"\n *ngIf=\"loading\">\n </mat-progress-bar>\n\n <div *ngIf=\"!loading && (data && (data.length > 0)) && footerRef\"\n class=\"footer-row\"\n fxLayout=\"column\"\n fxLayoutGap=\"10px\">\n <ng-template [ngTemplateOutlet]=\"footerRef\"\n [ngTemplateOutletContext]=\"{$implicit: data}\">\n </ng-template>\n </div>\n\n <div *ngIf=\"!loading && (data && (data.length <= 0))\"\n class=\"no-records\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n <span>Nenhum registro foi encontrado</span>\n </div>\n\n <ng-container *ngIf=\"!loading && paginator && (data && (data.length > 0))\">\n <ng-container #backendPaginatorTemplate\n *ngIf=\"backendPagination && !infiniteScroll\">\n <mat-paginator #backendPaginator\n [hidePageSize]=\"!showPageSizeOptions || (paginatorPageSizeOptions && (paginatorPageSizeOptions.length <= 0))\"\n [length]=\"paginatorLength\"\n [pageIndex]=\"paginatorPageIndex\"\n [pageSize]=\"paginatorPageSize\"\n [pageSizeOptions]=\"paginatorPageSizeOptions\"\n (page)=\"onPage($event)\"\n (mouseenter)=\"closePopover(0)\"\n showFirstLastButtons>\n </mat-paginator>\n </ng-container>\n\n <ng-container #frontendPaginatorTemplate\n *ngIf=\"!backendPagination && !infiniteScroll\">\n <mat-paginator #frontendPaginator\n [hidePageSize]=\"!showPageSizeOptions || (paginatorPageSizeOptions && (paginatorPageSizeOptions.length <= 0))\"\n [length]=\"paginatorLength\"\n [pageIndex]=\"paginatorPageIndex\"\n [pageSize]=\"paginatorPageSize\"\n [pageSizeOptions]=\"paginatorPageSizeOptions\"\n (page)=\"onPage($event)\"\n showFirstLastButtons>\n </mat-paginator>\n </ng-container>\n </ng-container>\n\n <ng-container #infiniteScrollPaginatorTemplate\n *ngIf=\"infiniteScroll && (data && (data.length > 0))\">\n <span class=\"infinite-scroll-paginator\">\n 1 - {{ data.length }} de {{ paginatorLength }}\n </span>\n </ng-container>\n </ng-template>\n</div>\n\n<div id=\"table-popover\"\n class=\"table-popover\"\n (mouseover)=\"_isPopoverHover = true\"\n (mouseout)=\"_isPopoverHover = false; closePopover(0)\"\n *ngIf=\"!loading && actionsPopoverRef\">\n <ng-container [ngTemplateOutlet]=\"actionsPopoverRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _contextPopover }\">\n </ng-container>\n</div>",
|
524
|
+
animations: [
|
525
|
+
trigger('detailExpand', [
|
526
|
+
state('collapsed', style({ height: '0px', minHeight: '0', display: 'none' })),
|
527
|
+
state('expanded', style({ height: '*' })),
|
528
|
+
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
529
|
+
]),
|
530
|
+
],
|
531
|
+
styles: [".box-shadow{border-radius:2px;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}table{width:100%}itss-loading{margin:25px;opacity:.7}.no-records{height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin:30px;font-size:14px!important;font-weight:600!important;color:#b3afb3!important}.no-records mat-icon{font-size:32px;height:32px;width:32px;margin-bottom:5px}.footer-row{min-height:57px;font-weight:700;padding:15px 24px;display:flex;align-items:flex-end;justify-content:center;flex-direction:column;color:rgba(0,0,0,.67);border-bottom:1px solid rgba(0,0,0,.12)}.mat-cell-pointer{cursor:pointer}.detail-row{min-height:0!important;border-bottom-width:0}element-row:not(.expanded-row):hover{background:#f5f5f5}element-row:not(.expanded-row):active{background:#efefef}.hoversimulator:not(.highlight){background:#f5f5f5}.hoversimulator:has(.highlight){background-color:rgba(255,217,0,.212)!important}.highlight{background-color:rgba(255,217,0,.102)!important}::ng-deep mat-cell.cell-element-detail{font-weight:400!important}.element-detail{width:100%;overflow:hidden;display:flex;min-height:45px!important}.element-detail.collapsed{height:0!important;min-height:0!important;display:none!important}.element-detail.expanded{height:auto!important}.hidden-header,.hidden-header .mat-header-cell{height:0!important;min-height:0!important}.actions-popover.mat-card{min-width:auto!important;padding:5px!important;background:#f5f5f5;border-radius:5px!important}.actions-popover.mat-card .mat-card-content itss-button .mat-icon-button mat-icon{height:18px!important;width:18px!important}.table-level-1 .mat-table .mat-header-row{border-bottom:unset!important}.mat-column-expandedGroupHeader{padding:0!important}.group-header-cell{display:flex;flex-direction:row;align-items:center;width:100%}.group-header-sticky{position:-webkit-sticky;position:sticky;top:54px}.infinite-scroll-paginator{color:#696969;font-size:14px;display:flex;align-items:center;justify-content:center;height:56px;position:-webkit-sticky;position:sticky;bottom:0;background:#fff;border-top:1px solid #f3465c}.table-popover{position:fixed;display:inline-flex;background-color:#f5f5f5;width:auto;border-radius:0 0 10px 10px;border:1px solid #ddd;border-top-width:0;padding:2px 5px;z-index:1;visibility:hidden}"]
|
532
|
+
}),
|
533
|
+
__metadata("design:paramtypes", [])
|
534
|
+
], TableComponent);
|
535
|
+
return TableComponent;
|
536
|
+
}());
|
537
|
+
export { TableComponent };
|
538
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUosT0FBTyxFQUFtQixZQUFZLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQ3BILE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWdCdEY7SUF3SEk7UUF0SFEsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBRS9CLHNCQUFpQixHQUFXLEdBQUcsQ0FBQztRQUNoQyxvQkFBZSxHQUFRLElBQUksQ0FBQztRQUc1QixzQkFBaUIsR0FBVSxFQUFFLENBQUM7UUFtQjVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFeEIsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFXL0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsdUJBQWtCLEdBQVcsQ0FBQyxDQUFDO1FBRS9CLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBRTVC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YztRQVoxQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsWUFBWTtZQUN0Qiw2Z2tCQUFxQztZQUVyQyxVQUFVLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLGNBQWMsRUFBRTtvQkFDcEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzdFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQ3pDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQztpQkFDeEYsQ0FBQzthQUNMOztTQUNKLENBQUM7O09BQ1csY0FBYyxDQWlaMUI7SUFBRCxxQkFBQztDQUFBLEFBalpELElBaVpDO1NBalpZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRIZWFkZXJSb3dEZWYsIE1hdFBhZ2luYXRvciwgTWF0U29ydCwgTWF0VGFibGVEYXRhU291cmNlLCBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcnJheVV0aWwsIE9iamVjdFV0aWwsIFN0cmluZ1V0aWwgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uRFRPIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvZHRvL3RhYmxlLWNvbHVtbi5kdG8nO1xuaW1wb3J0IHsgVGFibGVHcm91cEhlYWRlckRUTyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by90YWJsZS1ncm91cC1oZWFkZXIuZHRvJztcbmltcG9ydCB7IFRhYmxlUGFnZUV2ZW50RFRPIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvZHRvL3RhYmxlLXBhZ2UtZXZlbnQuZHRvJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2l0c3MtdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcbiAgICAgICAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIG1pbkhlaWdodDogJzAnLCBkaXNwbGF5OiAnbm9uZScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpJykpLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICAgIHByaXZhdGUgX2V4cGFuZGVkRWxlbWVudHM6IGFueVtdID0gW107XG5cbiAgICBwdWJsaWMgX3Njcm9sbEhlaWdodENhbGM6IG51bWJlciA9IDQxMDtcbiAgICBwdWJsaWMgX2lzUG9wb3ZlckhvdmVyOiBhbnkgPSBudWxsO1xuICAgIHB1YmxpYyBfY29udGV4dFBvcG92ZXI6IFQ7XG4gICAgcHVibGljIF9leHBhbmRlZEVsZW1lbnQ6IGFueTtcbiAgICBwdWJsaWMgX2Rpc3BsYXllZENvbHVtbnM6IGFueVtdID0gW107XG4gICAgcHVibGljIF9kYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8+O1xuXG4gICAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXRTb3J0OiBNYXRTb3J0O1xuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgICBAVmlld0NoaWxkKCdmcm9udGVuZFBhZ2luYXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBtYXRGcm9udGVuZFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICAgIEBWaWV3Q2hpbGQoJ2JhY2tlbmRQYWdpbmF0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgbWF0QmFja2VuZFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gICAgQFZpZXdDaGlsZCgnbWF0SGVhZGVyUm93JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBfbWF0SGVhZGVyUm93UmVmOiBUZW1wbGF0ZVJlZjxNYXRIZWFkZXJSb3dEZWY+O1xuICAgIEBWaWV3Q2hpbGQoJ2Zyb250ZW5kUGFnaW5hdG9yJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBfbWF0RnJvbnRlbmRQYWdpbmF0b3JSb3dSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnYmFja2VuZFBhZ2luYXRvcicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgX21hdEJhY2tlbmRQYWdpbmF0b3JSb3dSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKCdhY3Rpb25zJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFjdGlvbnNSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnYWN0aW9uc1BvcG92ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWN0aW9uc1BvcG92ZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvb3RlclJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdleHBhbmRlZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBleHBhbmRlZFJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdncm91cEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBncm91cEhlYWRlclJlZjogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAQ29udGVudENoaWxkKCdncm91cEZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBncm91cEZvb3RlclJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpIHNoYWRvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5EVE9bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfZGF0YVZhbHVlOiBUW107XG4gICAgQElucHV0KCkgZ2V0IGRhdGEoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFWYWx1ZTtcbiAgICB9XG4gICAgc2V0IGRhdGEoZGF0YTogVFtdKSB7XG4gICAgICAgIHRoaXMuX2RhdGFWYWx1ZSA9IGRhdGE7XG4gICAgICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KHRoaXMuX2RhdGFWYWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBiYWNrZW5kUGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBwYWdpbmF0b3JQYWdlSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgICBASW5wdXQoKSBwYWdpbmF0b3JMZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgICBASW5wdXQoKSBwYWdpbmF0b3JQYWdlU2l6ZTogbnVtYmVyID0gMTA7XG5cbiAgICBASW5wdXQoKSBwYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgMzBdO1xuXG4gICAgQElucHV0KCkgc2hvd1BhZ2VTaXplT3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZXhwYW5kYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBjb2x1bW5Jbml0aWFsOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBjb2x1bW5GaW5hbDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgaGVhZGVyU3RpY2t5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBncm91cEJ5Q29sdW1uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBncm91cEhlYWRlclN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZ3JvdXBTdGFydEV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBoaWdobGlnaHRSb3dGbjogKHJvdzogVCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8pID0+IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBpbmZpbml0ZVNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsRGVsYXk6IG51bWJlciA9IDEwMDA7XG5cbiAgICBASW5wdXQoKSBzY3JvbGxPZmZzZXQ6IG51bWJlciA9IDEwMDA7XG5cbiAgICBASW5wdXQoKSBzY3JvbGxIZWlndGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGlzRmlsdGVyaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoJ2NvbHVtbkV4cGFuZGFibGVGaXhlZCcpIHNob3dDb2x1bW5FeHBhbmRhYmxlRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGV4cGFuZGFibGVPbmVSb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGlnbm9yZUNoaWxkcmVuRXhwYW5kUm93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBjbGVhclNvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzb3J0QWN0aXZlOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2FzYyc7XG5cbiAgICBAT3V0cHV0KCkgcm93RXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4odHJ1ZSk7XG4gICAgQE91dHB1dCgpIGRhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KHRydWUpO1xuICAgIEBPdXRwdXQoKSBwYWdlOiBFdmVudEVtaXR0ZXI8VGFibGVQYWdlRXZlbnREVE8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSByb3dIb3ZlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZ2V0IG1hdFRhYmxlSGVpZ3RoKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGxldCBoZWFkZXJSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9tYXRIZWFkZXJSb3dSZWYpKSB7XG4gICAgICAgICAgICBoZWFkZXJSb3dIZWlnaHQgPSAodGhpcy5fbWF0SGVhZGVyUm93UmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhZ2luYXRvclJvd0hlaWdodDogbnVtYmVyO1xuICAgICAgICBjb25zdCBwYWdpbmF0b3JSZWYgPSB0aGlzLmJhY2tlbmRQYWdpbmF0aW9uID8gdGhpcy5fbWF0QmFja2VuZFBhZ2luYXRvclJvd1JlZiA6IHRoaXMuX21hdEZyb250ZW5kUGFnaW5hdG9yUm93UmVmO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBhZ2luYXRvclJlZikpIHtcbiAgICAgICAgICAgIHBhZ2luYXRvclJvd0hlaWdodCA9IChwYWdpbmF0b3JSZWYuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXRIZWFkZXJ3SGVpZ2h0OiBudW1iZXIgPSBoZWFkZXJSb3dIZWlnaHQgfHwgNjA7XG4gICAgICAgIGNvbnN0IG1hdFBhZ2luYXRvckhlaWdodDogbnVtYmVyID0gcGFnaW5hdG9yUm93SGVpZ2h0IHx8IDU3O1xuXG4gICAgICAgIGNvbnN0IHBhZ2VTaXplOiBudW1iZXIgPSB0aGlzLnBhZ2luYXRvclBhZ2VTaXplICYmICh0aGlzLnBhZ2luYXRvclBhZ2VTaXplIDw9IDEwKSA/IHRoaXMucGFnaW5hdG9yUGFnZVNpemUgOiAxMDtcbiAgICAgICAgY29uc3Qgc2V0SGVpZ3RoOiBib29sZWFuID0gdGhpcy5oZWFkZXJTdGlja3kgJiYgKHRoaXMuZGF0YS5sZW5ndGggPiBwYWdlU2l6ZSk7XG5cbiAgICAgICAgcmV0dXJuIG9mKHNldEhlaWd0aCA/IGAkeygoNTcgKiBwYWdlU2l6ZSkgKyBtYXRIZWFkZXJ3SGVpZ2h0ICsgbWF0UGFnaW5hdG9ySGVpZ2h0KX1weGAgOiAnYXV0bycpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IgJiYgIXRoaXMuYmFja2VuZFBhZ2luYXRpb24gJiYgIXRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmICh0aGlzLmJhY2tlbmRQYWdpbmF0aW9uIHx8IHRoaXMuaW5maW5pdGVTY3JvbGwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUG9wb3ZlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BvdmVySG92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigwKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlLXBvcG92ZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEYXRhU291cmNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZURhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUpLm1hcChjID0+IGMucHJvcGVydHkpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZXhwYW5kZWRSZWYpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gWydleHBhbmRlZENvbHVtbicsIC4uLmNvbHVtbnNdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUmVmKSkge1xuICAgICAgICAgICAgY29sdW1ucyA9IFsuLi5jb2x1bW5zLCAnYWN0aW9uc0NvbHVtbiddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnMgPSBjb2x1bW5zO1xuXG4gICAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICBsZXQgZGF0YUFsbDogVFtdID0gW107XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlcmluZykge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUFsbCA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9kYXRhU291cmNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgZGF0YUFsbC5wdXNoKC4uLnRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtdKTtcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbC5pc0VtcHR5KHRoaXMuZ3JvdXBCeUNvbHVtbikgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZ3JvdXBIZWFkZXJSZWYpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5nZW5lcmV0ZUdyb3Vwc0J5Q29sdW1uKGRhdGFBbGwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY1Njcm9sbEhlaWdodCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuICAgICAgICAgICAgaWYgKCFTdHJpbmdVdGlsLmlzRW1wdHkodGhpcy5ncm91cEJ5Q29sdW1uKSAmJiAhT2JqZWN0VXRpbC5pc051bGwodGhpcy5ncm91cEhlYWRlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSB0aGlzLmdlbmVyZXRlR3JvdXBzQnlDb2x1bW4odGhpcy5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9kYXRhU291cmNlLmRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG4gICAgICAgICAgICB0aGlzLnNldFNvcnRpbmdEYXRhQWNjZXNzb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRvciAmJiAhdGhpcy5iYWNrZW5kUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmdyb3VwU3RhcnRFeHBhbmRlZCAmJiAodGhpcy5ncm91cEhlYWRlclJlZiB8fCAodGhpcy5leHBhbmRhYmxlICYmIHRoaXMuZXhwYW5kZWRSZWYpKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkodGhpcy5fZGF0YVNvdXJjZS5kYXRhKSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuYWRkQ29sbGFwc2Uocm93KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxjU2Nyb2xsSGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBpZiAoKHRoaXMuX2RhdGFTb3VyY2UgJiYgKHRoaXMuX2RhdGFTb3VyY2UuZGF0YS5sZW5ndGggPiAwKSkgJiYgKE1hdGguZmxvb3IodGhpcy5fc2Nyb2xsSGVpZ2h0Q2FsYykgPD0gNzAwKSkge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsSGVpZ2h0Q2FsYyA9IDEzMCArICh0aGlzLl9kYXRhU291cmNlLmRhdGEubGVuZ3RoICogNDgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25QYWdlKHBhZ2VFdmVudDogVGFibGVQYWdlRXZlbnREVE8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSA9IHBhZ2VFdmVudC5wYWdlU2l6ZTtcbiAgICAgICAgcGFnZUV2ZW50LnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyA9IEFycmF5VXRpbC5pc0VtcHR5KHBhZ2VFdmVudC5wYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnMpID8gdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnMgOiBwYWdlRXZlbnQucGFnaW5hdG9yUGFnZVNpemVPcHRpb25zO1xuICAgICAgICB0aGlzLnBhZ2UuZW1pdChwYWdlRXZlbnQpO1xuICAgIH1cblxuICAgIGlzRXhwYW5zZWQoZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHBhbmRlZEVsZW1lbnRzLmZpbHRlcihlID0+IE9iamVjdFV0aWwuZXF1YWxzKGUsIGVsZW1lbnQpKS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHJlbW92ZUNvbGxhcHNlKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRhYmxlT25lUm93KSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5hZGRDb2xsYXBzZShyb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4cGFuZGVkRWxlbWVudHNBdXg6IGFueVtdID0gQXJyYXlVdGlsLmNsb25lKHRoaXMuX2V4cGFuZGVkRWxlbWVudHMpO1xuICAgICAgICBleHBhbmRlZEVsZW1lbnRzQXV4LnNwbGljZSh0aGlzLl9leHBhbmRlZEVsZW1lbnRzLmluZGV4T2YoZWxlbWVudCksIDEpO1xuICAgICAgICB0aGlzLl9leHBhbmRlZEVsZW1lbnRzID0gQXJyYXlVdGlsLmNsb25lKGV4cGFuZGVkRWxlbWVudHNBdXgpO1xuICAgIH1cblxuICAgIGFkZENvbGxhcHNlKGVsZW1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWRFbGVtZW50OiBib29sZWFuID0gdGhpcy5fZXhwYW5kZWRFbGVtZW50cy5maWx0ZXIoZSA9PiBPYmplY3RVdGlsLmVxdWFscyhlLCBlbGVtZW50KSkubGVuZ3RoID4gMDtcbiAgICAgICAgaWYgKCFjb2xsYXBzZWRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9leHBhbmRlZEVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByb3dFeHBhbmRlZENoYW5nZUVtaXQoZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucm93RXhwYW5kZWRDaGFuZ2UuZW1pdChlbGVtZW50KTtcbiAgICB9XG5cbiAgICBzb3J0RGF0YShzb3J0OiBTb3J0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KFtdKTtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtdKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY1Njcm9sbEhlaWdodCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yUGFnZVNpemUsXG4gICAgICAgICAgICBwYWdlSW5kZXg6IDAsXG4gICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICBwcmV2aW91c1BhZ2VJbmRleDogMCxcbiAgICAgICAgICAgIHBhZ2luYXRvclBhZ2VTaXplT3B0aW9uczogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnMsXG4gICAgICAgICAgICBzb3J0OiBzb3J0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dQb3BvdmVyKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFibGUtcG9wb3ZlcicpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkb21SZWN0UG9wb3ZlciA9IHBvcG92ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9tUmVjdFJvdyA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxscyA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxUYWJsZVJvd0VsZW1lbnQpLmNoaWxkcmVuO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRvbVJlY3RQb3BvdmVyICYmIGRvbVJlY3RSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnRvcCA9IGAkeyhkb21SZWN0Um93LnRvcCArIGRvbVJlY3RSb3cuaGVpZ2h0KSAtIDF9cHhgO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBzdGFydFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZW5kUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uSW5pdGlhbCAmJiAodGhpcy5jb2x1bW5Jbml0aWFsID49IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNlbGxzW3RoaXMuY29sdW1uSW5pdGlhbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXRpYWwgY29sdW1uIHVuZGVmaW5lZCBvciBudWxsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gY2VsbHNbdGhpcy5jb2x1bW5Jbml0aWFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IGRvbVJlY3RSb3cubGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbkZpbmFsICYmICh0aGlzLmNvbHVtbkZpbmFsID49IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNlbGxzW3RoaXMuY29sdW1uRmluYWxdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaW5hbCBjb2x1bW4gdW5kZWZpbmVkIG9yIG51bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gY2VsbHNbdGhpcy5jb2x1bW5GaW5hbF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIGRvbVJlY3RQb3BvdmVyLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBkb21SZWN0Um93LnJpZ2h0IC0gZG9tUmVjdFBvcG92ZXIud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5jbGllbnRYID4gc3RhcnRQb3NpdGlvbiArIDE1ICYmIGV2ZW50LmNsaWVudFggPCBlbmRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUubGVmdCA9IGAke2V2ZW50LmNsaWVudFggLSAxNX1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPD0gc3RhcnRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUubGVmdCA9IGAke3N0YXJ0UG9zaXRpb259cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jbGllbnRYID49IGVuZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZW5kUG9zaXRpb259cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3dIb3Zlci5lbWl0KGRhdGEpO1xuICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IGRhdGE7XG4gICAgfVxuXG4gICAgY2xvc2VQb3BvdmVyKHRpbWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBvZihudWxsKS5waXBlKGRlbGF5KHRpbWUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9pc1BvcG92ZXJIb3ZlcikgJiYgIXRoaXMuX2lzUG9wb3ZlckhvdmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9pc1BvcG92ZXJIb3ZlcikgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuYWN0aW9uc1BvcG92ZXJSZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlLXBvcG92ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbChwb3BvdmVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGV4dFBvcG92ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzUG9wb3ZlckhvdmVyID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0U29ydGluZ0RhdGFBY2Nlc3NvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKGRhdGE6IGFueSwgc29ydEhlYWRlcklkOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhW3NvcnRIZWFkZXJJZF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFbc29ydEhlYWRlcklkXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRhdGFbc29ydEhlYWRlcklkXTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBncm91cCBoZWFkZXJcbiAgICBnZW5lcmV0ZUdyb3Vwc0J5Q29sdW1uKGRhdGE6IGFueVtdKTogVGFibGVHcm91cEhlYWRlckRUT1tdIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzOiB7fSA9IGRhdGEucmVkdWNlKChncm91cCwgcm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhQ29sdW1uOiBzdHJpbmcgPSByb3dbdGhpcy5ncm91cEJ5Q29sdW1uXS50b1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKCFncm91cFtkYXRhQ29sdW1uXSkge1xuICAgICAgICAgICAgICAgIGdyb3VwW2RhdGFDb2x1bW5dID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBncm91cFtkYXRhQ29sdW1uXS5wdXNoKHJvdyk7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZ3JvdXBzKS5tYXAoZ3JvdXBWYWx1ZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlR3JvdXBIZWFkZXJEVE8oZ3JvdXBWYWx1ZSwgZ3JvdXBzW2dyb3VwVmFsdWVdLCBncm91cHNbZ3JvdXBWYWx1ZV0ubGVuZ3RoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SGlnaGxpZ2h0Um93KHJvdzogVCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbChyb3cpKSB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuaGlnaGxpZ2h0Um93Rm4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Um93Rm4ocm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0SW5kZXhSb3cocm93OiBUIHwgVGFibGVHcm91cEhlYWRlckRUTyk6IG51bWJlciB7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkgJiYgIUFycmF5VXRpbC5pc0VtcHR5KHRoaXMuX2RhdGFTb3VyY2UuZGF0YSkgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHJvdykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlLmRhdGEuZmluZEluZGV4KHIgPT4gciA9PT0gcm93KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluZmluaXRlIHNjcm9sbFxuICAgIGhhc01vcmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5fZGF0YVNvdXJjZSB8fCAodGhpcy5fZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMucGFnaW5hdG9yTGVuZ3RoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVTY3JvbGwoc2Nyb2xsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNjcm9sbGVkICYmIHRoaXMuaGFzTW9yZSgpKSB7XG4gICAgICAgICAgICB0aGlzLm9uUGFnZSh7XG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yUGFnZVNpemUsXG4gICAgICAgICAgICAgICAgcGFnZUluZGV4OiB0aGlzLnBhZ2luYXRvclBhZ2VJbmRleCxcbiAgICAgICAgICAgICAgICBsZW5ndGg6IHRoaXMucGFnaW5hdG9yTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiB0aGlzLnBhZ2luYXRvclBhZ2VJbmRleCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclBhZ2VJbmRleCArPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|