keevo-components 1.8.264 → 1.8.266
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/keevo-components.mjs +5 -0
- package/esm2022/lib/api/base-components/base-component-button.mjs +39 -0
- package/esm2022/lib/api/base-components/base-component-chart.mjs +92 -0
- package/esm2022/lib/api/base-components/base-component-crud-form.mjs +304 -0
- package/esm2022/lib/api/base-components/base-component-crud-list.mjs +93 -0
- package/esm2022/lib/api/base-components/base-component-crud.mjs +80 -0
- package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -0
- package/esm2022/lib/api/base-components/base-component-dropdown.mjs +187 -0
- package/esm2022/lib/api/base-components/base-component-input.mjs +101 -0
- package/esm2022/lib/api/base-components/base-component-multi-select.mjs +130 -0
- package/esm2022/lib/api/base-components/base-component-table.mjs +351 -0
- package/esm2022/lib/api/base-components/base-component.mjs +51 -0
- package/esm2022/lib/api/components/chart/chart.config.mjs +2 -0
- package/esm2022/lib/api/components/chart/chart.model.mjs +2 -0
- package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -0
- package/esm2022/lib/api/components/chart/orchart.item.mjs +2 -0
- package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -0
- package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +2 -0
- package/esm2022/lib/api/components/table/action-item.mjs +2 -0
- package/esm2022/lib/api/components/table/kv-menuitem.mjs +46 -0
- package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -0
- package/esm2022/lib/api/components/table/table.config.column.mjs +2 -0
- package/esm2022/lib/api/components/table/table.config.mjs +2 -0
- package/esm2022/lib/api/components/table/table.paginate.mjs +9 -0
- package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -0
- package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -0
- package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +3 -0
- package/esm2022/lib/api/directives/directives.module.mjs +30 -0
- package/esm2022/lib/api/directives/drag/drag.directive.mjs +52 -0
- package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +31 -0
- package/esm2022/lib/api/directives/template/template.directive.mjs +24 -0
- package/esm2022/lib/api/helpers/component-providers.mjs +16 -0
- package/esm2022/lib/api/helpers/keevo-validators.mjs +106 -0
- package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -0
- package/esm2022/lib/api/modules/primeng.module.mjs +271 -0
- package/esm2022/lib/api/pipes/capitalize.pipe.mjs +28 -0
- package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -0
- package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -0
- package/esm2022/lib/api/pipes/pipes.module.mjs +39 -0
- package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -0
- package/esm2022/lib/api/services/base.api.service.mjs +74 -0
- package/esm2022/lib/api/services/breadcrumbs.service.mjs +73 -0
- package/esm2022/lib/api/services/component.service.mjs +27 -0
- package/esm2022/lib/api/services/docs.service.mjs +129 -0
- package/esm2022/lib/api/services/form.service.mjs +93 -0
- package/esm2022/lib/api/services/imagens.service.mjs +28 -0
- package/esm2022/lib/api/services/notification.service.mjs +69 -0
- package/esm2022/lib/api/services/object.service.mjs +39 -0
- package/esm2022/lib/api/types/breadcrumb.model.mjs +2 -0
- package/esm2022/lib/api/types/severity.mjs +2 -0
- package/esm2022/lib/components/keevo-components.module.mjs +193 -0
- package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +140 -0
- package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +57 -0
- package/esm2022/lib/components/kv-button/kv-button.component.mjs +36 -0
- package/esm2022/lib/components/kv-button/kv-button.module.mjs +28 -0
- package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +25 -0
- package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +34 -0
- package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -0
- package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -0
- package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -0
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +30 -0
- package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -0
- package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +145 -0
- package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +32 -0
- package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -0
- package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -0
- package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +118 -0
- package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +18 -0
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +40 -0
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +20 -0
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +26 -0
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +34 -0
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +26 -0
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +28 -0
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +11 -0
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +19 -0
- package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +27 -0
- package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +32 -0
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +89 -0
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +18 -0
- package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +29 -0
- package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +44 -0
- package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +112 -0
- package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +96 -0
- package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +30 -0
- package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -0
- package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -0
- package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +25 -0
- package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +42 -0
- package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -0
- package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -0
- package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +122 -0
- package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +44 -0
- package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +60 -0
- package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +46 -0
- package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +31 -0
- package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +41 -0
- package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -0
- package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -0
- package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +28 -0
- package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +50 -0
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +250 -0
- package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +17 -0
- package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -0
- package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -0
- package/esm2022/lib/components/kv-login/kv-login.component.mjs +52 -0
- package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -0
- package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +97 -0
- package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +20 -0
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +100 -0
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +24 -0
- package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +191 -0
- package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +41 -0
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +207 -0
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +47 -0
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +78 -0
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +32 -0
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +58 -0
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -0
- package/esm2022/lib/components/kv-report/kv-report.component.mjs +53 -0
- package/esm2022/lib/components/kv-report/kv-report.module.mjs +24 -0
- package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +55 -0
- package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +32 -0
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +584 -0
- package/esm2022/lib/components/kv-table/kv-table.module.mjs +40 -0
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +322 -0
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +41 -0
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +485 -0
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +36 -0
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +298 -0
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +39 -0
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +30 -0
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -0
- package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +72 -0
- package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +60 -0
- package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +22 -0
- package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +63 -0
- package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +64 -0
- package/esm2022/public-api.mjs +236 -0
- package/fesm2022/keevo-components.mjs +8130 -0
- package/fesm2022/keevo-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/api/base-components/base-component-button.d.ts +15 -0
- package/lib/api/base-components/base-component-chart.d.ts +40 -0
- package/lib/api/base-components/base-component-crud-form.d.ts +149 -0
- package/lib/api/base-components/base-component-crud-list.d.ts +70 -0
- package/lib/api/base-components/base-component-crud.d.ts +36 -0
- package/lib/api/base-components/base-component-dropdown-external.d.ts +15 -0
- package/lib/api/base-components/base-component-dropdown.d.ts +47 -0
- package/lib/api/base-components/base-component-input.d.ts +33 -0
- package/lib/api/base-components/base-component-multi-select.d.ts +35 -0
- package/lib/api/base-components/base-component-table.d.ts +87 -0
- package/lib/api/base-components/base-component.d.ts +22 -0
- package/lib/api/components/chart/chart.config.d.ts +11 -0
- package/lib/api/components/chart/chart.model.d.ts +9 -0
- package/lib/api/components/chart/orchart.config.d.ts +35 -0
- package/lib/api/components/chart/orchart.item.d.ts +26 -0
- package/lib/api/components/dropdown/filtro.combo.d.ts +4 -0
- package/lib/api/components/stepper/kv-stepperpanel.d.ts +9 -0
- package/lib/api/components/table/action-item.d.ts +12 -0
- package/lib/api/components/table/kv-menuitem.d.ts +152 -0
- package/lib/api/components/table/table-dropdown-control.d.ts +6 -0
- package/lib/api/components/table/table.config.column.d.ts +28 -0
- package/lib/api/components/table/table.config.d.ts +32 -0
- package/lib/api/components/table/table.paginate.d.ts +6 -0
- package/lib/api/components/table/tabledit.config.d.ts +8 -0
- package/lib/api/components/table/tableedit.config.column.d.ts +10 -0
- package/lib/api/components/tree-table/tree-table.config.d.ts +28 -0
- package/lib/api/directives/directives.module.d.ts +9 -0
- package/lib/api/directives/drag/drag.directive.d.ts +11 -0
- package/lib/api/directives/stepper/dynamicinput.directive.d.ts +15 -0
- package/lib/api/directives/template/template.directive.d.ts +11 -0
- package/lib/api/helpers/component-providers.d.ts +2 -0
- package/lib/api/helpers/keevo-validators.d.ts +14 -0
- package/lib/api/helpers/translate-primeng.d.ts +4 -0
- package/lib/api/modules/primeng.module.d.ts +66 -0
- package/lib/api/pipes/capitalize.pipe.d.ts +8 -0
- package/lib/api/pipes/cpfcnpj.pipe.d.ts +7 -0
- package/lib/api/pipes/mask.pipe.d.ts +7 -0
- package/lib/api/pipes/pipes.module.d.ts +11 -0
- package/lib/api/pipes/telefone.pipe.d.ts +7 -0
- package/lib/api/services/base.api.service.d.ts +25 -0
- package/lib/api/services/breadcrumbs.service.d.ts +16 -0
- package/lib/api/services/component.service.d.ts +11 -0
- package/lib/api/services/docs.service.d.ts +12 -0
- package/lib/api/services/form.service.d.ts +31 -0
- package/lib/api/services/imagens.service.d.ts +10 -0
- package/lib/api/services/notification.service.d.ts +26 -0
- package/lib/api/services/object.service.d.ts +9 -0
- package/lib/api/types/breadcrumb.model.d.ts +5 -0
- package/{src/lib/api/types/severity.ts → lib/api/types/severity.d.ts} +2 -3
- package/lib/components/keevo-components.module.d.ts +32 -0
- package/lib/components/kv-avatar/kv-avatar.component.d.ts +34 -0
- package/lib/components/kv-avatar/kv-avatar.module.d.ts +15 -0
- package/lib/components/kv-button/kv-button.component.d.ts +15 -0
- package/lib/components/kv-button/kv-button.module.d.ts +9 -0
- package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +11 -0
- package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +14 -0
- package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +7 -0
- package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +7 -0
- package/lib/components/kv-buttons/kv-button.module.d.ts +11 -0
- package/lib/components/kv-carousel/kv-carousel.component.d.ts +16 -0
- package/lib/components/kv-carousel/kv-carousel.module.d.ts +9 -0
- package/lib/components/kv-chart/kv-chart.component.d.ts +56 -0
- package/lib/components/kv-chart/kv-chart.module.d.ts +10 -0
- package/lib/components/kv-error/kv-error.component.d.ts +12 -0
- package/lib/components/kv-error/kv-error.module.d.ts +10 -0
- package/lib/components/kv-file-upload/kv-file-upload.component.d.ts +29 -0
- package/lib/components/kv-file-upload/kv-file-upload.module.d.ts +8 -0
- package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +19 -0
- package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +8 -0
- package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +12 -0
- package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +10 -0
- package/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.d.ts +10 -0
- package/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.d.ts +9 -0
- package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +5 -0
- package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +9 -0
- package/lib/components/kv-home-card/kv-home-card.component.d.ts +24 -0
- package/lib/components/kv-home-card/kv-home-card.module.d.ts +11 -0
- package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +25 -0
- package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +8 -0
- package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +12 -0
- package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +16 -0
- package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +27 -0
- package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +29 -0
- package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +12 -0
- package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +19 -0
- package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +13 -0
- package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +10 -0
- package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +16 -0
- package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +16 -0
- package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +10 -0
- package/lib/components/kv-inputs/kv-inputs.module.d.ts +28 -0
- package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +15 -0
- package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +20 -0
- package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +19 -0
- package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +16 -0
- package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +16 -0
- package/lib/components/kv-label/kv-label.component.d.ts +7 -0
- package/lib/components/kv-label/kv-label.module.d.ts +8 -0
- package/lib/components/kv-layout/dropdown-master/dropdown-master.component.d.ts +12 -0
- package/lib/components/kv-layout/kv-layout.module.d.ts +14 -0
- package/lib/components/kv-layout/layout/kv-layout.component.d.ts +109 -0
- package/lib/components/kv-loader/kv-loader.component.d.ts +8 -0
- package/lib/components/kv-loader/kv-loader.module.d.ts +9 -0
- package/lib/components/kv-loader/kv-loader.service.d.ts +10 -0
- package/lib/components/kv-login/kv-login.component.d.ts +30 -0
- package/lib/components/kv-login/kv-login.module.d.ts +13 -0
- package/lib/components/kv-modal/kv-modal.component.d.ts +27 -0
- package/lib/components/kv-modal/kv-modal.module.d.ts +10 -0
- package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +27 -0
- package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +9 -0
- package/lib/components/kv-page-form/kv-page-form.component.d.ts +100 -0
- package/lib/components/kv-page-form/kv-page-form.module.d.ts +12 -0
- package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +84 -0
- package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +13 -0
- package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +30 -0
- package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +10 -0
- package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +67 -0
- package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +9 -0
- package/lib/components/kv-report/kv-report.component.d.ts +20 -0
- package/lib/components/kv-report/kv-report.module.d.ts +8 -0
- package/lib/components/kv-stepper/kv-stepper.component.d.ts +25 -0
- package/lib/components/kv-stepper/kv-stepper.module.d.ts +10 -0
- package/lib/components/kv-table/kv-table.component.d.ts +138 -0
- package/lib/components/kv-table/kv-table.module.d.ts +12 -0
- package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +60 -0
- package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +14 -0
- package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +110 -0
- package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +12 -0
- package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +76 -0
- package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +11 -0
- package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +14 -0
- package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +9 -0
- package/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.d.ts +20 -0
- package/lib/components/kv-workspace/kv-workspace.module.d.ts +17 -0
- package/lib/components/kv-workspace/logo/kv-workspace-logo.component.d.ts +11 -0
- package/lib/components/kv-workspace/master/kv-workspace-master.component.d.ts +18 -0
- package/lib/components/kv-workspace/workspace/kv-workspace.component.d.ts +26 -0
- package/package.json +45 -32
- package/{src/public-api.ts → public-api.d.ts} +232 -272
- package/ng-package.json +0 -7
- package/src/assets/.gitkeep +0 -0
- package/src/assets/images/LogoEvo.png +0 -0
- package/src/assets/images/LogoPequenaEvo.png +0 -0
- package/src/assets/images/background.png +0 -0
- package/src/assets/images/keepass-logo.png +0 -0
- package/src/assets/images/keepass-logo.svg +0 -74
- package/src/assets/images/keevo-logo.png +0 -0
- package/src/assets/images/logokeevo_2.png +0 -0
- package/src/index.ts +0 -1
- package/src/lib/api/base-components/base-component-button.ts +0 -29
- package/src/lib/api/base-components/base-component-chart.ts +0 -105
- package/src/lib/api/base-components/base-component-crud-form.ts +0 -368
- package/src/lib/api/base-components/base-component-crud-list.ts +0 -136
- package/src/lib/api/base-components/base-component-crud.ts +0 -83
- package/src/lib/api/base-components/base-component-dropdown-external.ts +0 -29
- package/src/lib/api/base-components/base-component-dropdown-new.ts +0 -112
- package/src/lib/api/base-components/base-component-dropdown.ts +0 -192
- package/src/lib/api/base-components/base-component-input.ts +0 -121
- package/src/lib/api/base-components/base-component-multi-select.ts +0 -136
- package/src/lib/api/base-components/base-component-table.ts +0 -364
- package/src/lib/api/base-components/base-component.ts +0 -47
- package/src/lib/api/components/chart/chart.config.ts +0 -12
- package/src/lib/api/components/chart/chart.model.ts +0 -9
- package/src/lib/api/components/chart/orchart.config.ts +0 -41
- package/src/lib/api/components/chart/orchart.item.ts +0 -33
- package/src/lib/api/components/dropdown/filtro.combo.ts +0 -4
- package/src/lib/api/components/stepper/kv-stepperpanel.ts +0 -10
- package/src/lib/api/components/table/action-item.ts +0 -12
- package/src/lib/api/components/table/kv-menuitem.ts +0 -198
- package/src/lib/api/components/table/table-dropdown-control.ts +0 -6
- package/src/lib/api/components/table/table.config.column.ts +0 -31
- package/src/lib/api/components/table/table.config.ts +0 -36
- package/src/lib/api/components/table/table.paginate.ts +0 -6
- package/src/lib/api/components/table/tabledit.config.ts +0 -10
- package/src/lib/api/components/table/tableedit.config.column.ts +0 -12
- package/src/lib/api/components/tree-table/tree-table.config.ts +0 -31
- package/src/lib/api/directives/directives.module.ts +0 -19
- package/src/lib/api/directives/drag/drag.directive.ts +0 -40
- package/src/lib/api/directives/stepper/dynamicinput.directive.ts +0 -23
- package/src/lib/api/directives/template/template.directive.ts +0 -15
- package/src/lib/api/helpers/component-providers.ts +0 -16
- package/src/lib/api/helpers/keevo-validators.ts +0 -126
- package/src/lib/api/helpers/severity-color.ts +0 -77
- package/src/lib/api/helpers/translate-primeng.ts +0 -25
- package/src/lib/api/modules/primeng.module.ts +0 -138
- package/src/lib/api/pipes/capitalize.pipe.ts +0 -23
- package/src/lib/api/pipes/cpfcnpj.pipe.ts +0 -21
- package/src/lib/api/pipes/mask.pipe.ts +0 -24
- package/src/lib/api/pipes/pipes.module.ts +0 -26
- package/src/lib/api/pipes/telefone.pipe.ts +0 -38
- package/src/lib/api/services/base.api.service.ts +0 -115
- package/src/lib/api/services/breadcrumbs.service.ts +0 -60
- package/src/lib/api/services/component.service.ts +0 -32
- package/src/lib/api/services/docs.service.ts +0 -129
- package/src/lib/api/services/form.service.ts +0 -137
- package/src/lib/api/services/imagens.service.ts +0 -28
- package/src/lib/api/services/notification.service.ts +0 -88
- package/src/lib/api/services/object.service.ts +0 -33
- package/src/lib/api/types/stimulsoft.reports.d.ts +0 -67463
- package/src/lib/components/keevo-components-styles.scss +0 -194
- package/src/lib/components/keevo-components.module.ts +0 -88
- package/src/lib/components/kv-avatar/kv-avatar.component.html +0 -13
- package/src/lib/components/kv-avatar/kv-avatar.component.scss +0 -58
- package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +0 -23
- package/src/lib/components/kv-avatar/kv-avatar.component.ts +0 -142
- package/src/lib/components/kv-avatar/kv-avatar.module.ts +0 -35
- package/src/lib/components/kv-avatar/kv-crop-image/kv-crop-image.component.html +0 -11
- package/src/lib/components/kv-avatar/kv-crop-image/kv-crop-image.component.scss +0 -27
- package/src/lib/components/kv-avatar/kv-crop-image/kv-crop-image.component.ts +0 -217
- package/src/lib/components/kv-button/kv-button.component.html +0 -13
- package/src/lib/components/kv-button/kv-button.component.scss +0 -152
- package/src/lib/components/kv-button/kv-button.component.spec.ts +0 -23
- package/src/lib/components/kv-button/kv-button.component.ts +0 -21
- package/src/lib/components/kv-button/kv-button.module.ts +0 -20
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +0 -14
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +0 -6
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +0 -25
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +0 -12
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +0 -71
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +0 -36
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +0 -12
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +0 -18
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +0 -14
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +0 -11
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +0 -17
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +0 -14
- package/src/lib/components/kv-buttons/kv-button.module.ts +0 -26
- package/src/lib/components/kv-carousel/kv-carousel.component.html +0 -25
- package/src/lib/components/kv-carousel/kv-carousel.component.scss +0 -32
- package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +0 -23
- package/src/lib/components/kv-carousel/kv-carousel.component.ts +0 -38
- package/src/lib/components/kv-carousel/kv-carousel.module.ts +0 -19
- package/src/lib/components/kv-chart/kv-chart.component.html +0 -38
- package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
- package/src/lib/components/kv-chart/kv-chart.component.spec.ts +0 -28
- package/src/lib/components/kv-chart/kv-chart.component.ts +0 -153
- package/src/lib/components/kv-chart/kv-chart.module.ts +0 -21
- package/src/lib/components/kv-error/kv-error.component.html +0 -3
- package/src/lib/components/kv-error/kv-error.component.scss +0 -5
- package/src/lib/components/kv-error/kv-error.component.ts +0 -27
- package/src/lib/components/kv-error/kv-error.module.ts +0 -26
- package/src/lib/components/kv-file-upload/kv-file-upload.component.html +0 -53
- package/src/lib/components/kv-file-upload/kv-file-upload.component.scss +0 -9
- package/src/lib/components/kv-file-upload/kv-file-upload.component.spec.ts +0 -23
- package/src/lib/components/kv-file-upload/kv-file-upload.component.ts +0 -128
- package/src/lib/components/kv-file-upload/kv-file-upload.module.ts +0 -10
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +0 -16
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +0 -18
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +0 -40
- package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +0 -14
- package/src/lib/components/kv-filter-card/kv-filter-card.component.html +0 -13
- package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +0 -74
- package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +0 -23
- package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +0 -17
- package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +0 -23
- package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.html +0 -21
- package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.scss +0 -22
- package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.spec.ts +0 -23
- package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.ts +0 -20
- package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.ts +0 -20
- package/src/lib/components/kv-g-icon/kv-g-icon.component.html +0 -1
- package/src/lib/components/kv-g-icon/kv-g-icon.component.scss +0 -0
- package/src/lib/components/kv-g-icon/kv-g-icon.component.spec.ts +0 -23
- package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +0 -10
- package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +0 -11
- package/src/lib/components/kv-home-card/kv-home-card.component.html +0 -35
- package/src/lib/components/kv-home-card/kv-home-card.component.scss +0 -5
- package/src/lib/components/kv-home-card/kv-home-card.component.spec.ts +0 -23
- package/src/lib/components/kv-home-card/kv-home-card.component.ts +0 -33
- package/src/lib/components/kv-home-card/kv-home-card.module.ts +0 -18
- package/src/lib/components/kv-image-upload/kv-image-upload.component.html +0 -64
- package/src/lib/components/kv-image-upload/kv-image-upload.component.scss +0 -0
- package/src/lib/components/kv-image-upload/kv-image-upload.component.ts +0 -84
- package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +0 -10
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +0 -12
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +0 -32
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +0 -33
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +0 -91
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.scss +0 -21
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +0 -40
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +0 -113
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +0 -45
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +0 -138
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +0 -31
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +0 -19
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +0 -96
- package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +0 -24
- package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.ts +0 -35
- package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +0 -23
- package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.ts +0 -61
- package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +0 -24
- package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.ts +0 -26
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +0 -23
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +0 -18
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +0 -27
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +0 -35
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.spec.ts +0 -23
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +0 -43
- package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +0 -23
- package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.ts +0 -40
- package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +0 -24
- package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.scss +0 -0
- package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.ts +0 -27
- package/src/lib/components/kv-inputs/kv-inputs.module.ts +0 -78
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +0 -45
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +0 -13
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +0 -44
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +0 -19
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +0 -21
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +0 -63
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +0 -26
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +0 -5
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +0 -21
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +0 -30
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +0 -19
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +0 -25
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +0 -23
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +0 -29
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +0 -20
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +0 -23
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +0 -54
- package/src/lib/components/kv-label/kv-label.component.html +0 -6
- package/src/lib/components/kv-label/kv-label.component.scss +0 -9
- package/src/lib/components/kv-label/kv-label.component.spec.ts +0 -23
- package/src/lib/components/kv-label/kv-label.component.ts +0 -14
- package/src/lib/components/kv-label/kv-label.module.ts +0 -17
- package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.html +0 -16
- package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.scss +0 -0
- package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.spec.ts +0 -28
- package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.ts +0 -34
- package/src/lib/components/kv-layout/kv-layout.module.ts +0 -35
- package/src/lib/components/kv-layout/layout/kv-layout.component.html +0 -373
- package/src/lib/components/kv-layout/layout/kv-layout.component.scss +0 -216
- package/src/lib/components/kv-layout/layout/kv-layout.component.spec.ts +0 -23
- package/src/lib/components/kv-layout/layout/kv-layout.component.ts +0 -277
- package/src/lib/components/kv-loader/kv-loader.component.html +0 -1
- package/src/lib/components/kv-loader/kv-loader.component.ts +0 -15
- package/src/lib/components/kv-loader/kv-loader.module.ts +0 -17
- package/src/lib/components/kv-loader/kv-loader.service.ts +0 -31
- package/src/lib/components/kv-login/kv-login.component.html +0 -116
- package/src/lib/components/kv-login/kv-login.component.scss +0 -99
- package/src/lib/components/kv-login/kv-login.component.spec.ts +0 -23
- package/src/lib/components/kv-login/kv-login.component.ts +0 -81
- package/src/lib/components/kv-login/kv-login.module.ts +0 -33
- package/src/lib/components/kv-modal/kv-modal.component.html +0 -20
- package/src/lib/components/kv-modal/kv-modal.component.scss +0 -33
- package/src/lib/components/kv-modal/kv-modal.component.spec.ts +0 -21
- package/src/lib/components/kv-modal/kv-modal.component.ts +0 -111
- package/src/lib/components/kv-modal/kv-modal.module.ts +0 -12
- package/src/lib/components/kv-orgchart/kv-orgchart.component.html +0 -58
- package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +0 -21
- package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +0 -110
- package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +0 -14
- package/src/lib/components/kv-page-form/kv-page-form.component.html +0 -103
- package/src/lib/components/kv-page-form/kv-page-form.component.scss +0 -76
- package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +0 -28
- package/src/lib/components/kv-page-form/kv-page-form.component.ts +0 -167
- package/src/lib/components/kv-page-form/kv-page-form.module.ts +0 -33
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +0 -251
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +0 -129
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +0 -23
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +0 -223
- package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +0 -34
- package/src/lib/components/kv-pick-list/kv-pick-list.component.html +0 -23
- package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +0 -5
- package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +0 -26
- package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +0 -60
- package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +0 -21
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +0 -38
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +0 -130
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +0 -21
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +0 -75
- package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +0 -19
- package/src/lib/components/kv-report/kv-report.component.html +0 -12
- package/src/lib/components/kv-report/kv-report.component.scss +0 -21
- package/src/lib/components/kv-report/kv-report.component.spec.ts +0 -28
- package/src/lib/components/kv-report/kv-report.component.ts +0 -50
- package/src/lib/components/kv-report/kv-report.module.ts +0 -18
- package/src/lib/components/kv-stepper/kv-stepper.component.html +0 -66
- package/src/lib/components/kv-stepper/kv-stepper.component.scss +0 -41
- package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +0 -23
- package/src/lib/components/kv-stepper/kv-stepper.component.ts +0 -48
- package/src/lib/components/kv-stepper/kv-stepper.module.ts +0 -20
- package/src/lib/components/kv-table/kv-table.component.html +0 -504
- package/src/lib/components/kv-table/kv-table.component.scss +0 -130
- package/src/lib/components/kv-table/kv-table.component.spec.ts +0 -28
- package/src/lib/components/kv-table/kv-table.component.ts +0 -676
- package/src/lib/components/kv-table/kv-table.module.ts +0 -25
- package/src/lib/components/kv-table-edit/kv-table-edit.component.html +0 -825
- package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +0 -712
- package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +0 -391
- package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +0 -28
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +0 -440
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +0 -372
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +0 -519
- package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +0 -22
- package/src/lib/components/kv-tree-table/kv-tree-table.component.html +0 -568
- package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +0 -96
- package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +0 -21
- package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +0 -326
- package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +0 -23
- package/src/lib/components/kv-tree-view/kv-tree-view.component.html +0 -9
- package/src/lib/components/kv-tree-view/kv-tree-view.component.scss +0 -0
- package/src/lib/components/kv-tree-view/kv-tree-view.component.spec.ts +0 -23
- package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +0 -31
- package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +0 -19
- package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.html +0 -14
- package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.scss +0 -0
- package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.spec.ts +0 -28
- package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.ts +0 -77
- package/src/lib/components/kv-workspace/kv-workspace.module.ts +0 -41
- package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.html +0 -20
- package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.scss +0 -0
- package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.spec.ts +0 -28
- package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.ts +0 -18
- package/src/lib/components/kv-workspace/master/kv-workspace-master.component.html +0 -12
- package/src/lib/components/kv-workspace/master/kv-workspace-master.component.scss +0 -0
- package/src/lib/components/kv-workspace/master/kv-workspace-master.component.spec.ts +0 -28
- package/src/lib/components/kv-workspace/master/kv-workspace-master.component.ts +0 -72
- package/src/lib/components/kv-workspace/workspace/kv-workspace.component.html +0 -36
- package/src/lib/components/kv-workspace/workspace/kv-workspace.component.scss +0 -17
- package/src/lib/components/kv-workspace/workspace/kv-workspace.component.ts +0 -54
- package/tsconfig.lib.json +0 -14
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Vldm8tY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2tlZXZvLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BaseComponentButton {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.icon = '';
|
|
6
|
+
this.label = '';
|
|
7
|
+
this.loading = false;
|
|
8
|
+
this.disabled = false;
|
|
9
|
+
this.text = false;
|
|
10
|
+
this.color = 'bg-blue-100';
|
|
11
|
+
this.onClick = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
click(event) {
|
|
14
|
+
this.onClick.emit();
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BaseComponentButton, selector: "ng-component", inputs: { icon: "icon", label: "label", loading: "loading", disabled: "disabled", text: "text", color: "color" }, outputs: { onClick: "onClick" }, ngImport: i0, template: '', isInline: true }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentButton, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
template: '',
|
|
23
|
+
}]
|
|
24
|
+
}], ctorParameters: () => [], propDecorators: { icon: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], label: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], loading: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], disabled: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], text: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], color: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], onClick: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7O0FBS3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUI7UUFYUyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFXLGFBQWEsQ0FBQztRQUk3QixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFMUMsQ0FBQztJQUVqQixLQUFLLENBQUMsS0FBVTtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0FqQlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsdU1BRnBCLEVBQUU7OzJGQUVELG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjt3REFHVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnRCdXR0b24ge1xyXG5cclxuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmcgPSAnYmctYmx1ZS0xMDAnO1xyXG5cclxuXHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgY2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
|
|
2
|
+
import { KvChartComponent, PeriodosChart } from "../../components/kv-chart/kv-chart.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BaseChartComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.selectedData = 0;
|
|
7
|
+
this.enablePeriodos = [];
|
|
8
|
+
this.periodos = PeriodosChart;
|
|
9
|
+
this.onPrintReport = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
changeData(event) {
|
|
12
|
+
if (event) {
|
|
13
|
+
this.selectedData = event?.value;
|
|
14
|
+
this.loadData();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.loadData();
|
|
19
|
+
}
|
|
20
|
+
loadGraphic(obs) {
|
|
21
|
+
obs
|
|
22
|
+
.subscribe({
|
|
23
|
+
next: (data) => {
|
|
24
|
+
this.chartConfig = this.assembleGraphic(data);
|
|
25
|
+
this.chartComponent?.reInit(this.chartConfig);
|
|
26
|
+
},
|
|
27
|
+
error: (error) => { },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
assembleGraphic(data) {
|
|
31
|
+
let labels = [];
|
|
32
|
+
let datasets = [];
|
|
33
|
+
// Tratando legendas
|
|
34
|
+
data.map((element) => {
|
|
35
|
+
if (element.labels && !labels.includes(element.labels)) {
|
|
36
|
+
labels.push(element.labels);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//Descobrindo quantas dimensões tem o gráfico
|
|
40
|
+
let numDatasets = Math.max(...data.map(o => o.numDatasets));
|
|
41
|
+
//Populando datasets
|
|
42
|
+
for (let i = 0; i <= numDatasets; i++) {
|
|
43
|
+
let backgroundColor = [];
|
|
44
|
+
let hoverBackgroundColor = [];
|
|
45
|
+
let borderColor = [];
|
|
46
|
+
let values = [];
|
|
47
|
+
let labelDataset = '';
|
|
48
|
+
data.filter((obj) => {
|
|
49
|
+
return obj.numDatasets === i;
|
|
50
|
+
}).map((obj) => {
|
|
51
|
+
if (obj.backgroundColor && !backgroundColor.includes(obj.backgroundColor)) {
|
|
52
|
+
backgroundColor.push(obj.backgroundColor);
|
|
53
|
+
}
|
|
54
|
+
if (obj.borderColor && !borderColor.includes(obj.borderColor)) {
|
|
55
|
+
borderColor.push(obj.borderColor);
|
|
56
|
+
}
|
|
57
|
+
if (obj.hoverBackgroundColor && !hoverBackgroundColor.includes(obj.hoverBackgroundColor)) {
|
|
58
|
+
hoverBackgroundColor.push(obj.hoverBackgroundColor);
|
|
59
|
+
}
|
|
60
|
+
if (obj.labelDataset)
|
|
61
|
+
labelDataset = obj.labelDataset;
|
|
62
|
+
values.push(obj.datasets);
|
|
63
|
+
});
|
|
64
|
+
datasets.push({
|
|
65
|
+
label: labelDataset,
|
|
66
|
+
backgroundColor: backgroundColor,
|
|
67
|
+
hoverBackgroundColor: hoverBackgroundColor,
|
|
68
|
+
borderColor: borderColor?.length === 0 ? undefined : borderColor,
|
|
69
|
+
data: values
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
let dados = {
|
|
73
|
+
labels: labels,
|
|
74
|
+
datasets: datasets
|
|
75
|
+
};
|
|
76
|
+
return dados;
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BaseChartComponent, selector: "ng-component", outputs: { onPrintReport: "onPrintReport" }, viewQueries: [{ propertyName: "chartComponent", first: true, predicate: KvChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseChartComponent, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{
|
|
84
|
+
template: ''
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: () => [], propDecorators: { chartComponent: [{
|
|
87
|
+
type: ViewChild,
|
|
88
|
+
args: [KvChartComponent]
|
|
89
|
+
}], onPrintReport: [{
|
|
90
|
+
type: Output
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtY2hhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1jaGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFLL0YsTUFBTSxPQUFnQixrQkFBa0I7SUFXdEM7UUFSQSxpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixhQUFRLEdBQUcsYUFBYSxDQUFDO1FBSWYsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVoRCxDQUFDO0lBRVAsVUFBVSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2pCLENBQUM7SUFJUyxXQUFXLENBQUMsR0FBb0I7UUFDeEMsR0FBRzthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBb0IsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELEtBQUss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ZixDQUFDOzhHQTdGbUIsa0JBQWtCO2tHQUFsQixrQkFBa0IsaUpBTzNCLGdCQUFnQixnREFUakIsRUFBRTs7MkZBRVEsa0JBQWtCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dEQVE4QixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFakIsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBjaGFydE1vZGVsIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvY2hhcnQvY2hhcnQubW9kZWxcIjtcclxuaW1wb3J0IHsgQ2hhcnRDb25maWcsIENoYXJ0RGF0YXNldENvbmZpZyB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBLdkNoYXJ0Q29tcG9uZW50LCBQZXJpb2Rvc0NoYXJ0IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMva3YtY2hhcnQva3YtY2hhcnQuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNoYXJ0Q29uZmlnITogQ2hhcnRDb25maWc7XHJcbiAgc2VsZWN0ZWREYXRhOiBudW1iZXIgPSAwO1xyXG4gIGVuYWJsZVBlcmlvZG9zOiBudW1iZXJbXSA9IFtdO1xyXG4gIHBlcmlvZG9zID0gUGVyaW9kb3NDaGFydDtcclxuXHJcbiAgQFZpZXdDaGlsZChLdkNoYXJ0Q29tcG9uZW50KSBjaGFydENvbXBvbmVudD86IEt2Q2hhcnRDb21wb25lbnQ7XHJcblxyXG4gIEBPdXRwdXQoKSBvblByaW50UmVwb3J0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJvdGVjdGVkIGNoYW5nZURhdGEoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gZXZlbnQ/LnZhbHVlO1xyXG4gICAgICB0aGlzLmxvYWREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZERhdGEoKVxyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgbG9hZERhdGEoKTogdm9pZDtcclxuXHJcbiAgcHJvdGVjdGVkIGxvYWRHcmFwaGljKG9iczogT2JzZXJ2YWJsZTxhbnk+KSB7XHJcbiAgICBvYnNcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jaGFydENvbmZpZyA9IHRoaXMuYXNzZW1ibGVHcmFwaGljKGRhdGEgYXMgY2hhcnRNb2RlbFtdKTtcclxuICAgICAgICAgIHRoaXMuY2hhcnRDb21wb25lbnQ/LnJlSW5pdCh0aGlzLmNoYXJ0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3NlbWJsZUdyYXBoaWMoZGF0YTogY2hhcnRNb2RlbFtdKSB7XHJcbiAgICBsZXQgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGRhdGFzZXRzOiBDaGFydERhdGFzZXRDb25maWdbXSA9IFtdO1xyXG5cclxuICAgIC8vIFRyYXRhbmRvIGxlZ2VuZGFzXHJcbiAgICBkYXRhLm1hcCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LmxhYmVscyAmJiAhbGFiZWxzLmluY2x1ZGVzKGVsZW1lbnQubGFiZWxzKSkge1xyXG4gICAgICAgIGxhYmVscy5wdXNoKGVsZW1lbnQubGFiZWxzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy9EZXNjb2JyaW5kbyBxdWFudGFzIGRpbWVuc8O1ZXMgdGVtIG8gZ3LDoWZpY29cclxuICAgIGxldCBudW1EYXRhc2V0cyA9IE1hdGgubWF4KC4uLmRhdGEubWFwKG8gPT4gby5udW1EYXRhc2V0cykpO1xyXG5cclxuICAgIC8vUG9wdWxhbmRvIGRhdGFzZXRzXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBudW1EYXRhc2V0czsgaSsrKSB7XHJcbiAgICAgIGxldCBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGxldCBob3ZlckJhY2tncm91bmRDb2xvcjogc3RyaW5nW10gPSBbXTtcclxuICAgICAgbGV0IGJvcmRlckNvbG9yOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBsZXQgdmFsdWVzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgICBsZXQgbGFiZWxEYXRhc2V0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgIGRhdGEuZmlsdGVyKChvYmopID0+IHtcclxuICAgICAgICByZXR1cm4gb2JqLm51bURhdGFzZXRzID09PSBpO1xyXG4gICAgICB9KS5tYXAoKG9iaikgPT4ge1xyXG4gICAgICAgIGlmIChvYmouYmFja2dyb3VuZENvbG9yICYmICFiYWNrZ3JvdW5kQ29sb3IuaW5jbHVkZXMob2JqLmJhY2tncm91bmRDb2xvcikpIHtcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvci5wdXNoKG9iai5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob2JqLmJvcmRlckNvbG9yICYmICFib3JkZXJDb2xvci5pbmNsdWRlcyhvYmouYm9yZGVyQ29sb3IpKSB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvci5wdXNoKG9iai5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmouaG92ZXJCYWNrZ3JvdW5kQ29sb3IgJiYgIWhvdmVyQmFja2dyb3VuZENvbG9yLmluY2x1ZGVzKG9iai5ob3ZlckJhY2tncm91bmRDb2xvcikpIHtcclxuICAgICAgICAgIGhvdmVyQmFja2dyb3VuZENvbG9yLnB1c2gob2JqLmhvdmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9iai5sYWJlbERhdGFzZXQpIGxhYmVsRGF0YXNldCA9IG9iai5sYWJlbERhdGFzZXQ7XHJcblxyXG4gICAgICAgIHZhbHVlcy5wdXNoKG9iai5kYXRhc2V0cyk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGF0YXNldHMucHVzaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWxEYXRhc2V0LFxyXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICAgICAgICBob3ZlckJhY2tncm91bmRDb2xvcjogaG92ZXJCYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogYm9yZGVyQ29sb3I/Lmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGJvcmRlckNvbG9yLFxyXG4gICAgICAgICAgZGF0YTogdmFsdWVzXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkYWRvczogQ2hhcnRDb25maWcgPSB7XHJcbiAgICAgIGxhYmVsczogbGFiZWxzLFxyXG4gICAgICBkYXRhc2V0czogZGF0YXNldHNcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGRhZG9zO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { FormGroup } from "@angular/forms";
|
|
3
|
+
import { combineLatest, filter, finalize } from "rxjs";
|
|
4
|
+
import { BaseComponentCrud } from "./base-component-crud";
|
|
5
|
+
import { FormService } from "../services/form.service";
|
|
6
|
+
import { loading } from "../../components/kv-loader/kv-loader.service";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "primeng/dynamicdialog";
|
|
9
|
+
import * as i2 from "../services/notification.service";
|
|
10
|
+
import * as i3 from "@angular/router";
|
|
11
|
+
export class BaseComponentCrudForm extends BaseComponentCrud {
|
|
12
|
+
constructor(dialogService, notificationService, activatedRoute, dynamicDialogRef, dynamicDialogConfig, router) {
|
|
13
|
+
super(dialogService, notificationService);
|
|
14
|
+
this.activatedRoute = activatedRoute;
|
|
15
|
+
this.dynamicDialogRef = dynamicDialogRef;
|
|
16
|
+
this.dynamicDialogConfig = dynamicDialogConfig;
|
|
17
|
+
this.router = router;
|
|
18
|
+
this.isAccordionExpanded = false;
|
|
19
|
+
this.isNewRegistry = false;
|
|
20
|
+
this.isSaveLoading = false;
|
|
21
|
+
this.isView = false;
|
|
22
|
+
this.formGroup = new FormGroup({});
|
|
23
|
+
this.actions = [];
|
|
24
|
+
this.popup = false;
|
|
25
|
+
this.registry = null;
|
|
26
|
+
this.onSetFormValues = false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Método disparado para tratamento das notificações do backend
|
|
30
|
+
* @param err - Notificação
|
|
31
|
+
*/
|
|
32
|
+
backendError(err) {
|
|
33
|
+
if (err) {
|
|
34
|
+
if (err.status == 404) {
|
|
35
|
+
this.notificationService.toastError(err.error.item2[0].message);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
else if (err.status == 400) {
|
|
39
|
+
// Erros de validação de domínio do backend
|
|
40
|
+
if (Array.isArray(err.error)) {
|
|
41
|
+
if (err.error?.length) {
|
|
42
|
+
if (err.error.length == 1 && err.error[0].key == '') {
|
|
43
|
+
this.notificationService.toastError(err.error[0].message);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.invalidForm(err.error);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else if (Array.isArray(err.error.item2)) {
|
|
51
|
+
if (err.error.item2?.length) {
|
|
52
|
+
if (err.error.item2.length == 1) {
|
|
53
|
+
this.notificationService.toastError(err.error.item2[0].message);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.invalidForm(err.error.item2);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (err.error?.title) {
|
|
61
|
+
// Erro de json no backend
|
|
62
|
+
this.notificationService.toastError(err.error.title);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (err.status == 415) {
|
|
67
|
+
if (err.error?.title) {
|
|
68
|
+
// Erro de json no backend
|
|
69
|
+
this.notificationService.toastError(err.error.title);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Qualquer outro tipo de erro que tenha mensagem
|
|
74
|
+
if (err.message) {
|
|
75
|
+
this.notificationService.toastError(err.message);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Método disparado ao clicar no botão de cancelamento
|
|
81
|
+
*/
|
|
82
|
+
cancel() {
|
|
83
|
+
this.notificationService.question({
|
|
84
|
+
type: 'question',
|
|
85
|
+
message: 'Deseja cancelar a operação?',
|
|
86
|
+
accept: () => {
|
|
87
|
+
this.navigateList();
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Verifica se houveram alterações nos componentes do formControl
|
|
93
|
+
* @param controls - Nomes do controles no formGroup
|
|
94
|
+
* @returns Observable
|
|
95
|
+
*/
|
|
96
|
+
detectFormControlChanges(controls) {
|
|
97
|
+
const controlList = [];
|
|
98
|
+
controls.forEach(controlName => controlList.push(this.formGroup.controls[controlName].valueChanges));
|
|
99
|
+
return combineLatest(controlList).pipe(filter(() => !this.onSetFormValues));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Método responsável por desabilitar um componente
|
|
103
|
+
* @param controlName - Nome do controle no formGroup
|
|
104
|
+
*/
|
|
105
|
+
disableComponent(controlName) {
|
|
106
|
+
FormService.disableControl(this.formGroup, controlName);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Método responsável por limpar e desabilitar um componente
|
|
110
|
+
* @param controlName - Nome do controle no formGroup
|
|
111
|
+
* @param value - Valor default
|
|
112
|
+
*/
|
|
113
|
+
disableAndClearComponent(controlName, value) {
|
|
114
|
+
FormService.disableAndClearControl(this.formGroup, controlName, value);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Método responsável por habilitar um componente
|
|
118
|
+
* @param controlName - Nome do controle no formGroup
|
|
119
|
+
*/
|
|
120
|
+
enableComponent(controName) {
|
|
121
|
+
FormService.enableControl(this.formGroup, controName);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Método que retorna o valor de um componente
|
|
125
|
+
* @param controlName - Nome do controle no formGroup
|
|
126
|
+
* @returns - Valor
|
|
127
|
+
*/
|
|
128
|
+
getFormValue(controlName) {
|
|
129
|
+
return FormService.getFormValue(this.formGroup, controlName);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Verifica se o componente possui erro
|
|
133
|
+
* @param controlName - Nome do controle no formGroup
|
|
134
|
+
*/
|
|
135
|
+
hasControlError(controlName, errorCode) {
|
|
136
|
+
return FormService.hasControlError(this.formGroup, controlName, errorCode);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Seta inconsistências para o fomulário
|
|
140
|
+
* @param notification - Lista de notificações
|
|
141
|
+
*/
|
|
142
|
+
invalidForm(notification) {
|
|
143
|
+
FormService.invalidForm(this.formGroup, notification);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Tratamento de inconsistências do formulário
|
|
147
|
+
*/
|
|
148
|
+
invalidateForm() {
|
|
149
|
+
this.isAccordionExpanded = true;
|
|
150
|
+
this.invalidForm();
|
|
151
|
+
if (this.dadosTela?.mensagemValidacao) {
|
|
152
|
+
this.notificationService.dialog({
|
|
153
|
+
type: 'alert',
|
|
154
|
+
message: 'Verifique os campos obrigatórios.',
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Método responsável pelo carregamento da tela
|
|
160
|
+
* @param obs - Observable responsável pelo salvamento dos dados
|
|
161
|
+
*/
|
|
162
|
+
loadData(obs) {
|
|
163
|
+
obs
|
|
164
|
+
.pipe(loading())
|
|
165
|
+
.subscribe((data) => {
|
|
166
|
+
this.isNewRegistry = false;
|
|
167
|
+
this.registry = data;
|
|
168
|
+
this.setFormValues(this.registry);
|
|
169
|
+
this.loadGrids();
|
|
170
|
+
this.setTitlePopup();
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
async loadDataAsync(obs) {
|
|
174
|
+
await obs.pipe(loading()).toPromise();
|
|
175
|
+
const data = await obs.toPromise();
|
|
176
|
+
this.isNewRegistry = false;
|
|
177
|
+
this.registry = data;
|
|
178
|
+
this.setFormValues(this.registry);
|
|
179
|
+
this.loadGrids();
|
|
180
|
+
this.setTitlePopup();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Método disparado para carregamento de grids (Disparado após o loadData)
|
|
184
|
+
*/
|
|
185
|
+
loadGrids() { }
|
|
186
|
+
/**
|
|
187
|
+
* Método disparado para retornar a lista
|
|
188
|
+
*/
|
|
189
|
+
navigateList(id = null) {
|
|
190
|
+
if (this.popup) {
|
|
191
|
+
this.dynamicDialogRef.close(id);
|
|
192
|
+
}
|
|
193
|
+
else if (this.dadosTela?.rotaListar) {
|
|
194
|
+
this.router.navigate([this.dadosTela.rotaListar]);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
ngOnDestroy() {
|
|
198
|
+
if (this.dynamicDialogRef) {
|
|
199
|
+
this.dynamicDialogRef.close();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
ngOnInit() {
|
|
203
|
+
this.configureForm();
|
|
204
|
+
this.popup = this.dynamicDialogConfig?.data?.popup || false;
|
|
205
|
+
this.activatedRoute.params.subscribe((params) => {
|
|
206
|
+
if (params['id']) {
|
|
207
|
+
this.loadForm(params['id']);
|
|
208
|
+
}
|
|
209
|
+
else if (this.dynamicDialogConfig?.data?.id) {
|
|
210
|
+
this.loadForm(this.dynamicDialogConfig.data.id);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this.isNewRegistry = true;
|
|
214
|
+
this.loadGrids();
|
|
215
|
+
this.setTitlePopup();
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Método disparado para salvar dados
|
|
221
|
+
* @param obs - Observable responsável pelo salvamento dos dados
|
|
222
|
+
*/
|
|
223
|
+
saveData(obs) {
|
|
224
|
+
obs
|
|
225
|
+
.pipe((src) => {
|
|
226
|
+
this.isSaveLoading = true;
|
|
227
|
+
return src.pipe(finalize(() => {
|
|
228
|
+
this.isSaveLoading = false;
|
|
229
|
+
}));
|
|
230
|
+
})
|
|
231
|
+
.subscribe({
|
|
232
|
+
next: (res) => {
|
|
233
|
+
this.notificationService.toastSuccess(res.item2[0].message);
|
|
234
|
+
this.navigateList(res.item1);
|
|
235
|
+
},
|
|
236
|
+
error: (e) => {
|
|
237
|
+
this.backendError(e);
|
|
238
|
+
},
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Método se atualiza o valor de um componente do formGroup
|
|
243
|
+
* @param controName - Nome do controle
|
|
244
|
+
* @param value - Valor para atualização
|
|
245
|
+
*/
|
|
246
|
+
setControlValue(controName, value) {
|
|
247
|
+
FormService.setControlValue(this.formGroup, controName, value);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Atualiza valores dos componentes do formGroup
|
|
251
|
+
* @param values - Valores para atualização
|
|
252
|
+
*/
|
|
253
|
+
setFormValues(values) {
|
|
254
|
+
this.onSetFormValues = true;
|
|
255
|
+
this.formGroup.patchValue(values, { emitEvent: false });
|
|
256
|
+
this.onSetFormValues = false;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Seta o título do popup
|
|
260
|
+
*/
|
|
261
|
+
setTitlePopup() {
|
|
262
|
+
if (this.popup) {
|
|
263
|
+
if (this.dynamicDialogConfig)
|
|
264
|
+
this.dynamicDialogConfig.header = this.dadosTela?.tituloForm;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Atualiza o validador de um componente do formGroup
|
|
269
|
+
* @param controName - Nome do controle
|
|
270
|
+
* @param validators - Regra de validação
|
|
271
|
+
*/
|
|
272
|
+
setValidators(controName, validators) {
|
|
273
|
+
FormService.setValidators(this.formGroup, controName, validators);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Dispara os métodos de validações do formulário
|
|
277
|
+
* @returns - True/False
|
|
278
|
+
*/
|
|
279
|
+
validateForm() {
|
|
280
|
+
let valid = false;
|
|
281
|
+
if (this.formGroup && this.formGroup.valid) {
|
|
282
|
+
valid = true;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
this.invalidateForm();
|
|
286
|
+
}
|
|
287
|
+
return valid;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Método que dispara a atualização da página inteira
|
|
291
|
+
*/
|
|
292
|
+
refresh() {
|
|
293
|
+
window.location.reload();
|
|
294
|
+
}
|
|
295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentCrudForm, deps: [{ token: i1.DialogService }, { token: i2.NotificationService }, { token: i3.ActivatedRoute }, { token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
296
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BaseComponentCrudForm, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
297
|
+
}
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentCrudForm, decorators: [{
|
|
299
|
+
type: Component,
|
|
300
|
+
args: [{
|
|
301
|
+
template: ''
|
|
302
|
+
}]
|
|
303
|
+
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.NotificationService }, { type: i3.ActivatedRoute }, { type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }, { type: i3.Router }] });
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtY3J1ZC1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7QUFZdkUsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSxpQkFBaUI7SUFnQm5FLFlBQ0UsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQzlCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxtQkFBd0MsRUFDeEMsTUFBYztRQUN4QixLQUFLLENBRUQsYUFBYSxFQUNiLG1CQUFtQixDQUNwQixDQUFDO1FBUk0sbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBcEJoQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxF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RUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUE7O01BRUU7SUFDUSxPQUFPO1FBQ2hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F4Vm1CLHFCQUFxQjtrR0FBckIscUJBQXFCLDJFQUYvQixFQUFFOzsyRkFFUSxxQkFBcUI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gXCJwcmltZW5nL2R5bmFtaWNkaWFsb2dcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIGZpbmFsaXplIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tIFwiLi4vY29tcG9uZW50cy90YWJsZS9hY3Rpb24taXRlbVwiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50Q3J1ZCB9IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50LWNydWRcIjtcclxuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgbG9hZGluZyB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2t2LWxvYWRlci9rdi1sb2FkZXIuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYWRvc1RlbGEge1xyXG4gIHN1YlRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICB0aXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcm90YUxpc3Rhcjogc3RyaW5nO1xyXG4gIG1lbnNhZ2VtVmFsaWRhY2FvOiBib29sZWFuXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudENydWRGb3JtIGV4dGVuZHMgQmFzZUNvbXBvbmVudENydWQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHByb3RlY3RlZCBpc0FjY29yZGlvbkV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIGlzTmV3UmVnaXN0cnkgPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgaXNTYXZlTG9hZGluZyA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBpc1ZpZXcgPSBmYWxzZTtcclxuXHJcbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgcHJvdGVjdGVkIGFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICBwcm90ZWN0ZWQgZGFkb3NUZWxhOiBEYWRvc1RlbGEgfCB1bmRlZmluZWQ7XHJcbiAgcHJvdGVjdGVkIHBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIHJlZ2lzdHJ5OiBhbnkgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIG9uU2V0Rm9ybVZhbHVlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByb3RlY3RlZCBkeW5hbWljRGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG4gICAgcHJvdGVjdGVkIGR5bmFtaWNEaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHN1cGVyXHJcbiAgICAgIChcclxuICAgICAgICBkaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gZGlzcGFyYWRvIHBhcmEgY29uZmlndXJhw6fDo28gZG8gZm9ybVxyXG4gICAqL1xyXG4gIGFic3RyYWN0IGNvbmZpZ3VyZUZvcm0oKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBkaXNwYXJhZG8gcGFyYSBvIGNhcnJlZ2FtZW50byBkbyBmb3JtXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgbG9hZEZvcm0oaWQ6IGFueSk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gZGlzcGFyYWRvIHBhcmEgc2FsdmFtZW50byBkb3MgZGFkb3NcclxuICAgKi9cclxuICBhYnN0cmFjdCBzYXZlKCk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gZGlzcGFyYWRvIHBhcmEgdHJhdGFtZW50byBkYXMgbm90aWZpY2HDp8O1ZXMgZG8gYmFja2VuZFxyXG4gICAqIEBwYXJhbSBlcnIgLSBOb3RpZmljYcOnw6NvXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGJhY2tlbmRFcnJvcihlcnI6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGVycikge1xyXG4gICAgICBpZiAoZXJyLnN0YXR1cyA9PSA0MDQpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudG9hc3RFcnJvcihlcnIuZXJyb3IuaXRlbTJbMF0ubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNDAwKSB7XHJcbiAgICAgICAgLy8gRXJyb3MgZGUgdmFsaWRhw6fDo28gZGUgZG9tw61uaW8gZG8gYmFja2VuZFxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVyci5lcnJvcikpIHtcclxuICAgICAgICAgIGlmIChlcnIuZXJyb3I/Lmxlbmd0aCkge1xyXG5cclxuICAgICAgICAgICAgaWYgKGVyci5lcnJvci5sZW5ndGggPT0gMSAmJiBlcnIuZXJyb3JbMF0ua2V5ID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoZXJyLmVycm9yWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pbnZhbGlkRm9ybShlcnIuZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXJyLmVycm9yLml0ZW0yKSkge1xyXG4gICAgICAgICAgaWYgKGVyci5lcnJvci5pdGVtMj8ubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXJyLmVycm9yLml0ZW0yLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoZXJyLmVycm9yLml0ZW0yWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pbnZhbGlkRm9ybShlcnIuZXJyb3IuaXRlbTIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVyci5lcnJvcj8udGl0bGUpIHtcclxuICAgICAgICAgIC8vIEVycm8gZGUganNvbiBubyBiYWNrZW5kXHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudG9hc3RFcnJvcihlcnIuZXJyb3IudGl0bGUpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQxNSkge1xyXG4gICAgICAgIGlmIChlcnIuZXJyb3I/LnRpdGxlKSB7XHJcbiAgICAgICAgICAvLyBFcnJvIGRlIGpzb24gbm8gYmFja2VuZFxyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoZXJyLmVycm9yLnRpdGxlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFF1YWxxdWVyIG91dHJvIHRpcG8gZGUgZXJybyBxdWUgdGVuaGEgbWVuc2FnZW1cclxuICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBhbyBjbGljYXIgbm8gYm90w6NvIGRlIGNhbmNlbGFtZW50b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucXVlc3Rpb24oe1xyXG4gICAgICB0eXBlOiAncXVlc3Rpb24nLFxyXG4gICAgICBtZXNzYWdlOiAnRGVzZWphIGNhbmNlbGFyIGEgb3BlcmHDp8Ojbz8nLFxyXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRlTGlzdCgpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmljYSBzZSBob3V2ZXJhbSBhbHRlcmHDp8O1ZXMgbm9zIGNvbXBvbmVudGVzIGRvIGZvcm1Db250cm9sXHJcbiAgICogQHBhcmFtIGNvbnRyb2xzIC0gTm9tZXMgZG8gY29udHJvbGVzIG5vIGZvcm1Hcm91cFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZGV0ZWN0Rm9ybUNvbnRyb2xDaGFuZ2VzKGNvbnRyb2xzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGNvbnRyb2xMaXN0OiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgY29udHJvbHMuZm9yRWFjaChjb250cm9sTmFtZSA9PiBjb250cm9sTGlzdC5wdXNoKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXS52YWx1ZUNoYW5nZXMpKTtcclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGNvbnRyb2xMaXN0KS5waXBlKGZpbHRlcigoKSA9PiAhdGhpcy5vblNldEZvcm1WYWx1ZXMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBkZXNhYmlsaXRhciB1bSBjb21wb25lbnRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lIC0gTm9tZSBkbyBjb250cm9sZSBubyBmb3JtR3JvdXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZGlzYWJsZUNvbXBvbmVudChjb250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICBGb3JtU2VydmljZS5kaXNhYmxlQ29udHJvbCh0aGlzLmZvcm1Hcm91cCwgY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGxpbXBhciBlIGRlc2FiaWxpdGFyIHVtIGNvbXBvbmVudGVcclxuICAgKiBAcGFyYW0gY29udHJvbE5hbWUgLSBOb21lIGRvIGNvbnRyb2xlIG5vIGZvcm1Hcm91cFxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbG9yIGRlZmF1bHRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZGlzYWJsZUFuZENsZWFyQ29tcG9uZW50KGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XHJcbiAgICBGb3JtU2VydmljZS5kaXNhYmxlQW5kQ2xlYXJDb250cm9sKHRoaXMuZm9ybUdyb3VwLCBjb250cm9sTmFtZSwgdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGhhYmlsaXRhciB1bSBjb21wb25lbnRlXHJcbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lIC0gTm9tZSBkbyBjb250cm9sZSBubyBmb3JtR3JvdXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZW5hYmxlQ29tcG9uZW50KGNvbnRyb05hbWU6IHN0cmluZykge1xyXG4gICAgRm9ybVNlcnZpY2UuZW5hYmxlQ29udHJvbCh0aGlzLmZvcm1Hcm91cCwgY29udHJvTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSByZXRvcm5hIG8gdmFsb3IgZGUgdW0gY29tcG9uZW50ZVxyXG4gICAqIEBwYXJhbSBjb250cm9sTmFtZSAtIE5vbWUgZG8gY29udHJvbGUgbm8gZm9ybUdyb3VwXHJcbiAgICogQHJldHVybnMgLSBWYWxvclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRGb3JtVmFsdWU8VD4oY29udHJvbE5hbWU6IHN0cmluZyk6IFQge1xyXG4gICAgcmV0dXJuIEZvcm1TZXJ2aWNlLmdldEZvcm1WYWx1ZTxUPih0aGlzLmZvcm1Hcm91cCwgY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpY2Egc2UgbyBjb21wb25lbnRlIHBvc3N1aSBlcnJvXHJcbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lIC0gTm9tZSBkbyBjb250cm9sZSBubyBmb3JtR3JvdXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaGFzQ29udHJvbEVycm9yKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGVycm9yQ29kZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEZvcm1TZXJ2aWNlLmhhc0NvbnRyb2xFcnJvcih0aGlzLmZvcm1Hcm91cCwgY29udHJvbE5hbWUsIGVycm9yQ29kZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRhIGluY29uc2lzdMOqbmNpYXMgcGFyYSBvIGZvbXVsw6FyaW9cclxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIC0gTGlzdGEgZGUgbm90aWZpY2HDp8O1ZXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaW52YWxpZEZvcm0obm90aWZpY2F0aW9uPzogYW55KSB7XHJcbiAgICBGb3JtU2VydmljZS5pbnZhbGlkRm9ybSh0aGlzLmZvcm1Hcm91cCwgbm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYXRhbWVudG8gZGUgaW5jb25zaXN0w6puY2lhcyBkbyBmb3JtdWzDoXJpb1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpbnZhbGlkYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuaXNBY2NvcmRpb25FeHBhbmRlZCA9IHRydWU7XHJcbiAgICB0aGlzLmludmFsaWRGb3JtKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGFkb3NUZWxhPy5tZW5zYWdlbVZhbGlkYWNhbykge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZGlhbG9nKHtcclxuICAgICAgICB0eXBlOiAnYWxlcnQnLFxyXG4gICAgICAgIG1lc3NhZ2U6ICdWZXJpZmlxdWUgb3MgY2FtcG9zIG9icmlnYXTDs3Jpb3MuJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwZWxvIGNhcnJlZ2FtZW50byBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIG9icyAtIE9ic2VydmFibGUgcmVzcG9uc8OhdmVsIHBlbG8gc2FsdmFtZW50byBkb3MgZGFkb3NcclxuICAgKi9cclxuICBwdWJsaWMgbG9hZERhdGE8VD4ob2JzOiBPYnNlcnZhYmxlPGFueT4pIHtcclxuICAgIG9ic1xyXG4gICAgICAucGlwZShsb2FkaW5nKCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNOZXdSZWdpc3RyeSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVnaXN0cnkgPSBkYXRhIGFzIFQ7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtVmFsdWVzKHRoaXMucmVnaXN0cnkpO1xyXG4gICAgICAgIHRoaXMubG9hZEdyaWRzKCk7XHJcbiAgICAgICAgdGhpcy5zZXRUaXRsZVBvcHVwKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbG9hZERhdGFBc3luYzxUPihvYnM6IE9ic2VydmFibGU8YW55Pikge1xyXG4gICAgYXdhaXQgb2JzLnBpcGUobG9hZGluZygpKS50b1Byb21pc2UoKTtcclxuICAgIGNvbnN0IGRhdGE6IGFueSA9IGF3YWl0IG9icy50b1Byb21pc2UoKTtcclxuXHJcbiAgICB0aGlzLmlzTmV3UmVnaXN0cnkgPSBmYWxzZTtcclxuICAgIHRoaXMucmVnaXN0cnkgPSBkYXRhIGFzIFQ7XHJcbiAgICB0aGlzLnNldEZvcm1WYWx1ZXModGhpcy5yZWdpc3RyeSk7XHJcbiAgICB0aGlzLmxvYWRHcmlkcygpO1xyXG4gICAgdGhpcy5zZXRUaXRsZVBvcHVwKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIGNhcnJlZ2FtZW50byBkZSBncmlkcyAoRGlzcGFyYWRvIGFww7NzIG8gbG9hZERhdGEpXHJcbiAgICovXHJcbiAgcHVibGljIGxvYWRHcmlkcygpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIHJldG9ybmFyIGEgbGlzdGFcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbmF2aWdhdGVMaXN0KGlkOiBhbnkgPSBudWxsKSB7XHJcbiAgICBpZiAodGhpcy5wb3B1cCkge1xyXG4gICAgICB0aGlzLmR5bmFtaWNEaWFsb2dSZWYuY2xvc2UoaWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5kYWRvc1RlbGE/LnJvdGFMaXN0YXIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZGFkb3NUZWxhLnJvdGFMaXN0YXJdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLmR5bmFtaWNEaWFsb2dSZWYpIHtcclxuICAgICAgdGhpcy5keW5hbWljRGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZUZvcm0oKTtcclxuXHJcbiAgICB0aGlzLnBvcHVwID0gdGhpcy5keW5hbWljRGlhbG9nQ29uZmlnPy5kYXRhPy5wb3B1cCB8fCBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChwYXJhbXNbJ2lkJ10pIHtcclxuICAgICAgICB0aGlzLmxvYWRGb3JtKHBhcmFtc1snaWQnXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5keW5hbWljRGlhbG9nQ29uZmlnPy5kYXRhPy5pZCkge1xyXG4gICAgICAgIHRoaXMubG9hZEZvcm0odGhpcy5keW5hbWljRGlhbG9nQ29uZmlnLmRhdGEuaWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNOZXdSZWdpc3RyeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkR3JpZHMoKTtcclxuICAgICAgICB0aGlzLnNldFRpdGxlUG9wdXAoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIHNhbHZhciBkYWRvc1xyXG4gICAqIEBwYXJhbSBvYnMgLSBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwZWxvIHNhbHZhbWVudG8gZG9zIGRhZG9zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNhdmVEYXRhKG9iczogT2JzZXJ2YWJsZTxhbnk+KSB7XHJcbiAgICBvYnNcclxuICAgICAgLnBpcGUoKHNyYzogT2JzZXJ2YWJsZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NhdmVMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gc3JjLnBpcGUoZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdFN1Y2Nlc3MocmVzLml0ZW0yWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZUxpc3QocmVzLml0ZW0xKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5iYWNrZW5kRXJyb3IoZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHNlIGF0dWFsaXphIG8gdmFsb3IgZGUgdW0gY29tcG9uZW50ZSBkbyBmb3JtR3JvdXBcclxuICAgKiBAcGFyYW0gY29udHJvTmFtZSAtIE5vbWUgZG8gY29udHJvbGVcclxuICAgKiBAcGFyYW0gdmFsdWUgLSBWYWxvciBwYXJhIGF0dWFsaXphw6fDo29cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0Q29udHJvbFZhbHVlKGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgRm9ybVNlcnZpY2Uuc2V0Q29udHJvbFZhbHVlKHRoaXMuZm9ybUdyb3VwLCBjb250cm9OYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBdHVhbGl6YSB2YWxvcmVzIGRvcyBjb21wb25lbnRlcyBkbyBmb3JtR3JvdXBcclxuICAgKiBAcGFyYW0gdmFsdWVzIC0gVmFsb3JlcyBwYXJhIGF0dWFsaXphw6fDo29cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0Rm9ybVZhbHVlcyh2YWx1ZXM6IGFueSkge1xyXG4gICAgdGhpcy5vblNldEZvcm1WYWx1ZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMub25TZXRGb3JtVmFsdWVzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRhIG8gdMOtdHVsbyBkbyBwb3B1cFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VGl0bGVQb3B1cCgpIHtcclxuICAgIGlmICh0aGlzLnBvcHVwKSB7XHJcbiAgICAgIGlmICh0aGlzLmR5bmFtaWNEaWFsb2dDb25maWcpXHJcbiAgICAgICAgdGhpcy5keW5hbWljRGlhbG9nQ29uZmlnLmhlYWRlciA9IHRoaXMuZGFkb3NUZWxhPy50aXR1bG9Gb3JtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXR1YWxpemEgbyB2YWxpZGFkb3IgZGUgdW0gY29tcG9uZW50ZSBkbyBmb3JtR3JvdXBcclxuICAgKiBAcGFyYW0gY29udHJvTmFtZSAtIE5vbWUgZG8gY29udHJvbGVcclxuICAgKiBAcGFyYW0gdmFsaWRhdG9ycyAtIFJlZ3JhIGRlIHZhbGlkYcOnw6NvXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldFZhbGlkYXRvcnMoY29udHJvTmFtZTogc3RyaW5nLCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsKSB7XHJcbiAgICBGb3JtU2VydmljZS5zZXRWYWxpZGF0b3JzKHRoaXMuZm9ybUdyb3VwLCBjb250cm9OYW1lLCB2YWxpZGF0b3JzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgb3MgbcOpdG9kb3MgZGUgdmFsaWRhw6fDtWVzIGRvIGZvcm11bMOhcmlvXHJcbiAgICogQHJldHVybnMgLSBUcnVlL0ZhbHNlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlRm9ybSgpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRhdGVGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIGRpc3BhcmEgYSBhdHVhbGl6YcOnw6NvIGRhIHDDoWdpbmEgaW50ZWlyYVxyXG4gICAqL1xyXG4gICBwcm90ZWN0ZWQgcmVmcmVzaCgpe1xyXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Component, ViewChild } from "@angular/core";
|
|
2
|
+
import { BaseComponentCrud } from "./base-component-crud";
|
|
3
|
+
import { TablePaginate } from "../components/table/table.paginate";
|
|
4
|
+
import { loading } from "../../components/kv-loader/kv-loader.service";
|
|
5
|
+
import { KvTableComponent } from "../../components/kv-table/kv-table.component";
|
|
6
|
+
import { KvTreetableComponent } from "../../components/kv-tree-table/kv-tree-table.component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "primeng/dynamicdialog";
|
|
9
|
+
import * as i2 from "../services/notification.service";
|
|
10
|
+
import * as i3 from "@angular/router";
|
|
11
|
+
export class BaseComponentCrudList extends BaseComponentCrud {
|
|
12
|
+
constructor(dialogService, notificationService, router) {
|
|
13
|
+
super(dialogService, notificationService);
|
|
14
|
+
this.router = router;
|
|
15
|
+
this.dataSource = [];
|
|
16
|
+
this.totalRecords = 0;
|
|
17
|
+
this.actionsPageList = [];
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.loadFilters();
|
|
21
|
+
this.configureTable();
|
|
22
|
+
// Tabela não configurada para paginação
|
|
23
|
+
if (!this.tableConfig?.lazy)
|
|
24
|
+
this.loadTable(new TablePaginate());
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Método que seta o registro selecionado na tabela
|
|
28
|
+
* @param event - Registro
|
|
29
|
+
*/
|
|
30
|
+
activeItem(event) {
|
|
31
|
+
this.selectedItem = event;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Método que dispara o carregamento da tabela
|
|
35
|
+
* @param obs - Observable de carregamento dos dados
|
|
36
|
+
*/
|
|
37
|
+
loadData(obs) {
|
|
38
|
+
obs
|
|
39
|
+
.pipe(loading())
|
|
40
|
+
.subscribe({
|
|
41
|
+
next: (res) => {
|
|
42
|
+
if (res) {
|
|
43
|
+
if (Array.isArray(res)) {
|
|
44
|
+
//Tratamento para retorno do tipo listar ([])
|
|
45
|
+
this.totalRecords = res.length;
|
|
46
|
+
this.dataSource = res;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
//Tratamento para retorno do tipo listarPaginado (<int,[]>)
|
|
50
|
+
this.totalRecords = res.item1;
|
|
51
|
+
this.dataSource = res.item2;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
error: (e) => {
|
|
56
|
+
this.toastError(e);
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Método que dispara a paginação
|
|
62
|
+
*/
|
|
63
|
+
paginate(event) {
|
|
64
|
+
this.loadTable(event);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Método que dispara a atualização da página inteira
|
|
68
|
+
*/
|
|
69
|
+
refresh() {
|
|
70
|
+
this.loadTable(new TablePaginate());
|
|
71
|
+
}
|
|
72
|
+
resetTable() {
|
|
73
|
+
this.table?.resetTable();
|
|
74
|
+
}
|
|
75
|
+
resetTreeTable() {
|
|
76
|
+
this.treetable?.resetTreeTable();
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentCrudList, deps: [{ token: i1.DialogService }, { token: i2.NotificationService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: BaseComponentCrudList, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: KvTableComponent, descendants: true }, { propertyName: "treetable", first: true, predicate: KvTreetableComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: BaseComponentCrudList, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{
|
|
84
|
+
template: ''
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.NotificationService }, { type: i3.Router }], propDecorators: { table: [{
|
|
87
|
+
type: ViewChild,
|
|
88
|
+
args: [KvTableComponent]
|
|
89
|
+
}], treetable: [{
|
|
90
|
+
type: ViewChild,
|
|
91
|
+
args: [KvTreetableComponent]
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtY3J1ZC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZC1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUtuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7O0FBSzlGLE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsaUJBQWlCO0lBWW5FLFlBQ0UsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ2pDLE1BQWM7UUFDckIsS0FBSyxDQUVELGFBQWEsRUFDYixtQkFBbUIsQ0FDcEIsQ0FBQztRQUxHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFidkIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUdyQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixvQkFBZSxHQUFpQixFQUFFLENBQUM7SUFlbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUE4QkQ7OztPQUdHO0lBQ08sVUFBVSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFFBQVEsQ0FBQyxHQUFvQjtRQUNyQyxHQUFHO2FBQ0EsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2YsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZCLDZDQUE2Qzt3QkFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO3dCQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtvQkFDdkIsQ0FBQzt5QkFDSSxDQUFDO3dCQUNKLDJEQUEyRDt3QkFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO3dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUE7b0JBQzdCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxRQUFRLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNPLE9BQU87UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0FwSG1CLHFCQUFxQjtrR0FBckIscUJBQXFCLDJGQVE5QixnQkFBZ0IsNEVBQ2hCLG9CQUFvQix1RUFYckIsRUFBRTs7MkZBRVEscUJBQXFCO2tCQUgxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3lJQVM4QixLQUFLO3NCQUFqQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDTSxTQUFTO3NCQUF6QyxTQUFTO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvZHluYW1pY2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50Q3J1ZCB9IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50LWNydWRcIjtcclxuaW1wb3J0IHsgVGFibGVQYWdpbmF0ZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnBhZ2luYXRlXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29uZmlnXCI7XHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tIFwiLi4vY29tcG9uZW50cy90YWJsZS9hY3Rpb24taXRlbVwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBsb2FkaW5nIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMva3YtbG9hZGVyL2t2LWxvYWRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyZWVUYWJsZUNvbmZpZyB9IGZyb20gXCIuLi9jb21wb25lbnRzL3RyZWUtdGFibGUvdHJlZS10YWJsZS5jb25maWdcIjtcclxuaW1wb3J0IHsgS3ZUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2t2LXRhYmxlL2t2LXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBLdlRyZWV0YWJsZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2t2LXRyZWUtdGFibGUva3YtdHJlZS10YWJsZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudENydWRMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudENydWQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhU291cmNlOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuICB0YWJsZUNvbmZpZyE6IFRhYmxlQ29uZmlnIHwgVHJlZVRhYmxlQ29uZmlnO1xyXG4gIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBhY3Rpb25zUGFnZUxpc3Q6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICBAVmlld0NoaWxkKEt2VGFibGVDb21wb25lbnQpIHRhYmxlITogS3ZUYWJsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKEt2VHJlZXRhYmxlQ29tcG9uZW50KSB0cmVldGFibGUhOiBLdlRyZWV0YWJsZUNvbXBvbmVudDtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHN1cGVyXHJcbiAgICAgIChcclxuICAgICAgICBkaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5sb2FkRmlsdGVycygpO1xyXG4gICAgdGhpcy5jb25maWd1cmVUYWJsZSgpO1xyXG5cclxuICAgIC8vIFRhYmVsYSBuw6NvIGNvbmZpZ3VyYWRhIHBhcmEgcGFnaW5hw6fDo29cclxuICAgIGlmICghdGhpcy50YWJsZUNvbmZpZz8ubGF6eSlcclxuICAgICAgdGhpcy5sb2FkVGFibGUobmV3IFRhYmxlUGFnaW5hdGUoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIGNvbmZpZ3VyYcOnw6NvIGRhcyB0YWJlbGFzIGRvIGNvbXBvbmVudGUgZGUgbGlzdGFcclxuICAgKi9cclxuICBhYnN0cmFjdCBjb25maWd1cmVUYWJsZSgpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIGVkacOnw6NvIGRlIHJlZ2lzdHJvc1xyXG4gICAqIEBwYXJhbSByZWdpc3RyeSAtIFJlZ2lzdHJvIHF1ZSBlc3TDoSBzZW5kbyBlZGl0YWRvXHJcbiAgICpcclxuICAgKi9cclxuICBhYnN0cmFjdCBlZGl0KHJlZ2lzdHJ5OiBhbnkpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIGRpc3BhcmFkbyBwYXJhIGNhcnJlZ2FtZW50byBkb3MgZmlsdHJvcyBkYSB0ZWxhXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgbG9hZEZpbHRlcnMoKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBkaXNwYXJhZG8gcGFyYSBjYXJyZWdhciBhIHRhYmVsYSBkbyBjb21wb25lbnRlIGRlIGxpc3RhXHJcbiAgICogQHBhcmFtIHRhYmxlUGFnaW5hdGUgLSBDbGFzc2UgZG9zIGRhZG9zIGRhIHBhZ2luYcOnw6NvIGRhIHRhYmVsYVxyXG4gICAqL1xyXG4gIGFic3RyYWN0IGxvYWRUYWJsZSh0YWJsZVBhZ2luYXRlOiBUYWJsZVBhZ2luYXRlKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBkaXNwYXJhZG8gYW8gY2xpY2FyIG5vIGJvdMOjbyBkZSBub3ZvIHJlZ2lzdHJvXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgbmV3UmVnaXN0cnkoKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgc2V0YSBvIHJlZ2lzdHJvIHNlbGVjaW9uYWRvIG5hIHRhYmVsYVxyXG4gICAqIEBwYXJhbSBldmVudCAtIFJlZ2lzdHJvXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFjdGl2ZUl0ZW0oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBldmVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIGRpc3BhcmEgbyBjYXJyZWdhbWVudG8gZGEgdGFiZWxhXHJcbiAgICogQHBhcmFtIG9icyAtIE9ic2VydmFibGUgZGUgY2FycmVnYW1lbnRvIGRvcyBkYWRvc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsb2FkRGF0YShvYnM6IE9ic2VydmFibGU8YW55Pikge1xyXG4gICAgb2JzXHJcbiAgICAgIC5waXBlKGxvYWRpbmcoKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcclxuICAgICAgICAgICAgICAvL1RyYXRhbWVudG8gcGFyYSByZXRvcm5vIGRvIHRpcG8gbGlzdGFyIChbXSlcclxuICAgICAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHJlcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlID0gcmVzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy9UcmF0YW1lbnRvIHBhcmEgcmV0b3JubyBkbyB0aXBvIGxpc3RhclBhZ2luYWRvICg8aW50LFtdPilcclxuICAgICAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHJlcy5pdGVtMTtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSByZXMuaXRlbTJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0RXJyb3IoZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNw6l0b2RvIHF1ZSBkaXNwYXJhIGEgcGFnaW5hw6fDo29cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcGFnaW5hdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkVGFibGUoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgZGlzcGFyYSBhIGF0dWFsaXphw6fDo28gZGEgcMOhZ2luYSBpbnRlaXJhXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmxvYWRUYWJsZShuZXcgVGFibGVQYWdpbmF0ZSgpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXNldFRhYmxlKCkge1xyXG4gICAgdGhpcy50YWJsZT8ucmVzZXRUYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlc2V0VHJlZVRhYmxlKCl7XHJcbiAgICB0aGlzLnRyZWV0YWJsZT8ucmVzZXRUcmVlVGFibGUoKTtcclxuICB9XHJcbn1cclxuIl19
|