keevo-components 1.8.189 → 1.8.191
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/ng-package.json +7 -0
- package/package.json +32 -45
- 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 +74 -0
- package/src/assets/images/keevo-logo.png +0 -0
- package/src/assets/images/logokeevo_2.png +0 -0
- package/src/index.ts +1 -0
- package/src/lib/api/base-components/base-component-button.ts +29 -0
- package/src/lib/api/base-components/base-component-chart.ts +105 -0
- package/src/lib/api/base-components/base-component-crud-form.ts +361 -0
- package/src/lib/api/base-components/base-component-crud-list.ts +122 -0
- package/src/lib/api/base-components/base-component-crud.ts +70 -0
- package/src/lib/api/base-components/base-component-dropdown-external.ts +29 -0
- package/src/lib/api/base-components/base-component-dropdown-new.ts +112 -0
- package/src/lib/api/base-components/base-component-dropdown.ts +192 -0
- package/src/lib/api/base-components/base-component-input.ts +119 -0
- package/src/lib/api/base-components/base-component-multi-select.ts +136 -0
- package/src/lib/api/base-components/base-component-table.ts +326 -0
- package/src/lib/api/base-components/base-component.ts +47 -0
- package/src/lib/api/components/chart/chart.config.ts +12 -0
- package/src/lib/api/components/chart/chart.model.ts +9 -0
- package/src/lib/api/components/chart/orchart.config.ts +41 -0
- package/src/lib/api/components/chart/orchart.item.ts +33 -0
- package/src/lib/api/components/dropdown/filtro.combo.ts +4 -0
- package/src/lib/api/components/stepper/kv-stepperpanel.ts +10 -0
- package/src/lib/api/components/table/action-item.ts +11 -0
- package/src/lib/api/components/table/kv-menuitem.ts +198 -0
- package/src/lib/api/components/table/table-dropdown-control.ts +6 -0
- package/src/lib/api/components/table/table.config.column.ts +31 -0
- package/src/lib/api/components/table/table.config.ts +35 -0
- package/src/lib/api/components/table/table.paginate.ts +6 -0
- package/src/lib/api/components/table/tabledit.config.ts +10 -0
- package/src/lib/api/components/table/tableedit.config.column.ts +12 -0
- package/src/lib/api/components/tree-table/tree-table.config.ts +30 -0
- package/src/lib/api/directives/directives.module.ts +19 -0
- package/src/lib/api/directives/drag/drag.directive.ts +40 -0
- package/src/lib/api/directives/stepper/dynamicinput.directive.ts +23 -0
- package/src/lib/api/directives/template/template.directive.ts +15 -0
- package/src/lib/api/helpers/component-providers.ts +16 -0
- package/src/lib/api/helpers/keevo-validators.ts +97 -0
- package/src/lib/api/helpers/severity-color.ts +77 -0
- package/src/lib/api/helpers/translate-primeng.ts +25 -0
- package/src/lib/api/modules/primeng.module.ts +138 -0
- package/src/lib/api/pipes/capitalize.pipe.ts +23 -0
- package/src/lib/api/pipes/cpfcnpj.pipe.ts +21 -0
- package/src/lib/api/pipes/mask.pipe.ts +24 -0
- package/src/lib/api/pipes/pipes.module.ts +26 -0
- package/src/lib/api/pipes/telefone.pipe.ts +38 -0
- package/src/lib/api/services/base.api.service.ts +115 -0
- package/src/lib/api/services/breadcrumbs.service.ts +58 -0
- package/src/lib/api/services/component.service.ts +32 -0
- package/src/lib/api/services/docs.service.ts +129 -0
- package/src/lib/api/services/form.service.ts +136 -0
- package/src/lib/api/services/imagens.service.ts +28 -0
- package/src/lib/api/services/notification.service.ts +85 -0
- package/src/lib/api/services/object.service.ts +33 -0
- package/{lib/api/types/severity.d.ts → src/lib/api/types/severity.ts} +3 -2
- package/src/lib/api/types/stimulsoft.reports.d.ts +67463 -0
- package/src/lib/components/keevo-components-styles.scss +11 -0
- package/src/lib/components/keevo-components.module.ts +88 -0
- package/src/lib/components/kv-avatar/kv-avatar.component.html +12 -0
- package/src/lib/components/kv-avatar/kv-avatar.component.scss +45 -0
- package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +23 -0
- package/src/lib/components/kv-avatar/kv-avatar.component.ts +72 -0
- package/src/lib/components/kv-avatar/kv-avatar.module.ts +21 -0
- package/src/lib/components/kv-button/kv-button.component.css +0 -0
- package/src/lib/components/kv-button/kv-button.component.html +8 -0
- package/src/lib/components/kv-button/kv-button.component.scss +102 -0
- package/src/lib/components/kv-button/kv-button.component.spec.ts +23 -0
- package/src/lib/components/kv-button/kv-button.component.ts +22 -0
- package/src/lib/components/kv-button/kv-button.module.ts +20 -0
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +14 -0
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +3 -0
- package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +25 -0
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +12 -0
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +31 -0
- package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +36 -0
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +12 -0
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +14 -0
- package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +14 -0
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +11 -0
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +13 -0
- package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +14 -0
- package/src/lib/components/kv-buttons/kv-button.module.ts +26 -0
- package/src/lib/components/kv-carousel/kv-carousel.component.html +8 -0
- package/src/lib/components/kv-carousel/kv-carousel.component.scss +32 -0
- package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +23 -0
- package/src/lib/components/kv-carousel/kv-carousel.component.ts +31 -0
- package/src/lib/components/kv-carousel/kv-carousel.module.ts +19 -0
- package/src/lib/components/kv-chart/kv-chart.component.html +38 -0
- package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
- package/src/lib/components/kv-chart/kv-chart.component.spec.ts +28 -0
- package/src/lib/components/kv-chart/kv-chart.component.ts +153 -0
- package/src/lib/components/kv-chart/kv-chart.module.ts +21 -0
- package/src/lib/components/kv-error/kv-error.component.html +3 -0
- package/src/lib/components/kv-error/kv-error.component.scss +5 -0
- package/src/lib/components/kv-error/kv-error.component.ts +27 -0
- package/src/lib/components/kv-error/kv-error.module.ts +26 -0
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +16 -0
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +18 -0
- package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +33 -0
- package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +14 -0
- package/src/lib/components/kv-filter-card/kv-filter-card.component.html +13 -0
- package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +74 -0
- package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +23 -0
- package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +17 -0
- package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +23 -0
- package/src/lib/components/kv-g-icon/kv-g-icon.component.html +1 -0
- 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 +23 -0
- package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +10 -0
- package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +11 -0
- package/src/lib/components/kv-image-upload/kv-image-upload.component.html +62 -0
- 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 +82 -0
- package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +10 -0
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +12 -0
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +13 -0
- package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +33 -0
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +89 -0
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.scss +21 -0
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +38 -0
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +101 -0
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +21 -0
- package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +113 -0
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +31 -0
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +19 -0
- package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +84 -0
- package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +22 -0
- 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 +35 -0
- package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +23 -0
- 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 +61 -0
- package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +23 -0
- 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 +26 -0
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +22 -0
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +18 -0
- package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +27 -0
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +35 -0
- 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 +23 -0
- package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +43 -0
- package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +23 -0
- 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 +40 -0
- package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +24 -0
- 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 +27 -0
- package/src/lib/components/kv-inputs/kv-inputs.module.ts +78 -0
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +45 -0
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +13 -0
- package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +44 -0
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +19 -0
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +15 -0
- package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +60 -0
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +26 -0
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +5 -0
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +21 -0
- package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +30 -0
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +17 -0
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +26 -0
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +23 -0
- package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +29 -0
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +20 -0
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +5 -0
- package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +54 -0
- package/src/lib/components/kv-label/kv-label.component.html +6 -0
- package/src/lib/components/kv-label/kv-label.component.scss +9 -0
- package/src/lib/components/kv-label/kv-label.component.spec.ts +23 -0
- package/src/lib/components/kv-label/kv-label.component.ts +14 -0
- package/src/lib/components/kv-label/kv-label.module.ts +17 -0
- package/src/lib/components/kv-loader/kv-loader.component.html +1 -0
- package/src/lib/components/kv-loader/kv-loader.component.ts +15 -0
- package/src/lib/components/kv-loader/kv-loader.module.ts +17 -0
- package/src/lib/components/kv-loader/kv-loader.service.ts +31 -0
- package/src/lib/components/kv-login/kv-login.component.html +108 -0
- package/src/lib/components/kv-login/kv-login.component.scss +76 -0
- package/src/lib/components/kv-login/kv-login.component.spec.ts +23 -0
- package/src/lib/components/kv-login/kv-login.component.ts +81 -0
- package/src/lib/components/kv-login/kv-login.module.ts +33 -0
- package/src/lib/components/kv-menu/kv-menu.component.html +292 -0
- package/src/lib/components/kv-menu/kv-menu.component.scss +214 -0
- package/src/lib/components/kv-menu/kv-menu.component.spec.ts +23 -0
- package/src/lib/components/kv-menu/kv-menu.component.ts +195 -0
- package/src/lib/components/kv-menu/kv-menu.module.ts +33 -0
- package/src/lib/components/kv-modal/kv-modal.component.html +20 -0
- package/src/lib/components/kv-modal/kv-modal.component.scss +84 -0
- package/src/lib/components/kv-modal/kv-modal.component.spec.ts +21 -0
- package/src/lib/components/kv-modal/kv-modal.component.ts +114 -0
- package/src/lib/components/kv-modal/kv-modal.module.ts +21 -0
- package/src/lib/components/kv-orgchart/kv-orgchart.component.html +58 -0
- package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +21 -0
- package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +110 -0
- package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +14 -0
- package/src/lib/components/kv-page-form/kv-page-form.component.html +99 -0
- package/src/lib/components/kv-page-form/kv-page-form.component.scss +76 -0
- package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +28 -0
- package/src/lib/components/kv-page-form/kv-page-form.component.ts +163 -0
- package/src/lib/components/kv-page-form/kv-page-form.module.ts +31 -0
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +251 -0
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +129 -0
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +23 -0
- package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +223 -0
- package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +34 -0
- package/src/lib/components/kv-pick-list/kv-pick-list.component.html +23 -0
- package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +5 -0
- package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +26 -0
- package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +60 -0
- package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +21 -0
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +38 -0
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +110 -0
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +21 -0
- package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +75 -0
- package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +19 -0
- package/src/lib/components/kv-report/kv-report.component.html +12 -0
- package/src/lib/components/kv-report/kv-report.component.scss +21 -0
- package/src/lib/components/kv-report/kv-report.component.spec.ts +28 -0
- package/src/lib/components/kv-report/kv-report.component.ts +50 -0
- package/src/lib/components/kv-report/kv-report.module.ts +18 -0
- package/src/lib/components/kv-stepper/kv-stepper.component.html +66 -0
- package/src/lib/components/kv-stepper/kv-stepper.component.scss +41 -0
- package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +23 -0
- package/src/lib/components/kv-stepper/kv-stepper.component.ts +48 -0
- package/src/lib/components/kv-stepper/kv-stepper.module.ts +20 -0
- package/src/lib/components/kv-table/kv-table.component.html +504 -0
- package/src/lib/components/kv-table/kv-table.component.scss +311 -0
- package/src/lib/components/kv-table/kv-table.component.spec.ts +28 -0
- package/src/lib/components/kv-table/kv-table.component.ts +589 -0
- package/src/lib/components/kv-table/kv-table.module.ts +23 -0
- package/src/lib/components/kv-table-edit/kv-table-edit.component.html +823 -0
- package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +711 -0
- package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +352 -0
- package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +28 -0
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +440 -0
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +356 -0
- package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +517 -0
- package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +22 -0
- package/src/lib/components/kv-tree-table/kv-tree-table.component.html +610 -0
- package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +77 -0
- package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +21 -0
- package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +305 -0
- package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +18 -0
- package/src/lib/components/kv-tree-view/kv-tree-view.component.html +9 -0
- 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 +23 -0
- package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +31 -0
- package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +19 -0
- package/src/lib/components/kv-workspace/kv-workspace.component.html +53 -0
- package/src/lib/components/kv-workspace/kv-workspace.component.scss +117 -0
- package/src/lib/components/kv-workspace/kv-workspace.component.ts +201 -0
- package/src/lib/components/kv-workspace/kv-workspace.module.ts +35 -0
- package/{public-api.d.ts → src/public-api.ts} +254 -214
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/keevo-components.mjs +0 -5
- package/esm2022/lib/api/base-components/base-component-button.mjs +0 -39
- package/esm2022/lib/api/base-components/base-component-chart.mjs +0 -92
- package/esm2022/lib/api/base-components/base-component-crud-form.mjs +0 -298
- package/esm2022/lib/api/base-components/base-component-crud-list.mjs +0 -79
- package/esm2022/lib/api/base-components/base-component-crud.mjs +0 -65
- package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +0 -31
- package/esm2022/lib/api/base-components/base-component-dropdown.mjs +0 -187
- package/esm2022/lib/api/base-components/base-component-input.mjs +0 -98
- package/esm2022/lib/api/base-components/base-component-multi-select.mjs +0 -130
- package/esm2022/lib/api/base-components/base-component-table.mjs +0 -320
- package/esm2022/lib/api/base-components/base-component.mjs +0 -51
- package/esm2022/lib/api/components/chart/chart.config.mjs +0 -2
- package/esm2022/lib/api/components/chart/chart.model.mjs +0 -2
- package/esm2022/lib/api/components/chart/orchart.config.mjs +0 -2
- package/esm2022/lib/api/components/chart/orchart.item.mjs +0 -2
- package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +0 -2
- package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +0 -2
- package/esm2022/lib/api/components/table/action-item.mjs +0 -2
- package/esm2022/lib/api/components/table/kv-menuitem.mjs +0 -46
- package/esm2022/lib/api/components/table/table-dropdown-control.mjs +0 -2
- package/esm2022/lib/api/components/table/table.config.column.mjs +0 -2
- package/esm2022/lib/api/components/table/table.config.mjs +0 -2
- package/esm2022/lib/api/components/table/table.paginate.mjs +0 -9
- package/esm2022/lib/api/components/table/tabledit.config.mjs +0 -2
- package/esm2022/lib/api/components/table/tableedit.config.column.mjs +0 -2
- package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +0 -3
- package/esm2022/lib/api/directives/directives.module.mjs +0 -30
- package/esm2022/lib/api/directives/drag/drag.directive.mjs +0 -52
- package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +0 -31
- package/esm2022/lib/api/directives/template/template.directive.mjs +0 -24
- package/esm2022/lib/api/helpers/component-providers.mjs +0 -16
- package/esm2022/lib/api/helpers/keevo-validators.mjs +0 -82
- package/esm2022/lib/api/helpers/translate-primeng.mjs +0 -23
- package/esm2022/lib/api/modules/primeng.module.mjs +0 -271
- package/esm2022/lib/api/pipes/capitalize.pipe.mjs +0 -28
- package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +0 -25
- package/esm2022/lib/api/pipes/mask.pipe.mjs +0 -29
- package/esm2022/lib/api/pipes/pipes.module.mjs +0 -39
- package/esm2022/lib/api/pipes/telefone.pipe.mjs +0 -45
- package/esm2022/lib/api/services/base.api.service.mjs +0 -74
- package/esm2022/lib/api/services/breadcrumbs.service.mjs +0 -57
- package/esm2022/lib/api/services/component.service.mjs +0 -27
- package/esm2022/lib/api/services/docs.service.mjs +0 -129
- package/esm2022/lib/api/services/form.service.mjs +0 -92
- package/esm2022/lib/api/services/imagens.service.mjs +0 -28
- package/esm2022/lib/api/services/notification.service.mjs +0 -67
- package/esm2022/lib/api/services/object.service.mjs +0 -39
- package/esm2022/lib/api/types/severity.mjs +0 -2
- package/esm2022/lib/components/keevo-components.module.mjs +0 -179
- package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +0 -78
- package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +0 -32
- package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +0 -25
- package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +0 -34
- package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +0 -17
- package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +0 -17
- package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +0 -39
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +0 -32
- package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +0 -28
- package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +0 -145
- package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +0 -32
- package/esm2022/lib/components/kv-error/kv-error.component.mjs +0 -26
- package/esm2022/lib/components/kv-error/kv-error.module.mjs +0 -35
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +0 -34
- package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +0 -20
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +0 -26
- package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +0 -34
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +0 -11
- package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +0 -19
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +0 -83
- package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +0 -18
- package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +0 -29
- package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +0 -38
- package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +0 -92
- package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +0 -89
- package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +0 -29
- package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +0 -59
- package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +0 -33
- package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +0 -25
- package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +0 -42
- package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +0 -43
- package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +0 -24
- package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +0 -122
- package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +0 -44
- package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +0 -54
- package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +0 -46
- package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +0 -31
- package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +0 -41
- package/esm2022/lib/components/kv-label/kv-label.component.mjs +0 -15
- package/esm2022/lib/components/kv-label/kv-label.module.mjs +0 -24
- package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +0 -17
- package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +0 -28
- package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +0 -29
- package/esm2022/lib/components/kv-login/kv-login.component.mjs +0 -52
- package/esm2022/lib/components/kv-login/kv-login.module.mjs +0 -47
- package/esm2022/lib/components/kv-menu/kv-menu.component.mjs +0 -198
- package/esm2022/lib/components/kv-menu/kv-menu.module.mjs +0 -47
- package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +0 -98
- package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +0 -31
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +0 -100
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +0 -24
- package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +0 -191
- package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +0 -38
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +0 -207
- package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +0 -47
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +0 -78
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +0 -32
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +0 -58
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +0 -28
- package/esm2022/lib/components/kv-report/kv-report.component.mjs +0 -53
- package/esm2022/lib/components/kv-report/kv-report.module.mjs +0 -24
- package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +0 -55
- package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +0 -32
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +0 -496
- package/esm2022/lib/components/kv-table/kv-table.module.mjs +0 -36
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +0 -288
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +0 -41
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +0 -483
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +0 -36
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +0 -296
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +0 -28
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +0 -30
- package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +0 -28
- package/esm2022/lib/components/kv-workspace/kv-workspace.component.mjs +0 -167
- package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +0 -51
- package/esm2022/public-api.mjs +0 -218
- package/fesm2022/keevo-components.mjs +0 -7357
- package/fesm2022/keevo-components.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/api/base-components/base-component-button.d.ts +0 -15
- package/lib/api/base-components/base-component-chart.d.ts +0 -40
- package/lib/api/base-components/base-component-crud-form.d.ts +0 -145
- package/lib/api/base-components/base-component-crud-list.d.ts +0 -64
- package/lib/api/base-components/base-component-crud.d.ts +0 -36
- package/lib/api/base-components/base-component-dropdown-external.d.ts +0 -15
- package/lib/api/base-components/base-component-dropdown.d.ts +0 -47
- package/lib/api/base-components/base-component-input.d.ts +0 -32
- package/lib/api/base-components/base-component-multi-select.d.ts +0 -35
- package/lib/api/base-components/base-component-table.d.ts +0 -85
- package/lib/api/base-components/base-component.d.ts +0 -22
- package/lib/api/components/chart/chart.config.d.ts +0 -11
- package/lib/api/components/chart/chart.model.d.ts +0 -9
- package/lib/api/components/chart/orchart.config.d.ts +0 -35
- package/lib/api/components/chart/orchart.item.d.ts +0 -26
- package/lib/api/components/dropdown/filtro.combo.d.ts +0 -4
- package/lib/api/components/stepper/kv-stepperpanel.d.ts +0 -9
- package/lib/api/components/table/action-item.d.ts +0 -11
- package/lib/api/components/table/kv-menuitem.d.ts +0 -152
- package/lib/api/components/table/table-dropdown-control.d.ts +0 -6
- package/lib/api/components/table/table.config.column.d.ts +0 -28
- package/lib/api/components/table/table.config.d.ts +0 -32
- package/lib/api/components/table/table.paginate.d.ts +0 -6
- package/lib/api/components/table/tabledit.config.d.ts +0 -8
- package/lib/api/components/table/tableedit.config.column.d.ts +0 -10
- package/lib/api/components/tree-table/tree-table.config.d.ts +0 -28
- package/lib/api/directives/directives.module.d.ts +0 -9
- package/lib/api/directives/drag/drag.directive.d.ts +0 -11
- package/lib/api/directives/stepper/dynamicinput.directive.d.ts +0 -15
- package/lib/api/directives/template/template.directive.d.ts +0 -11
- package/lib/api/helpers/component-providers.d.ts +0 -2
- package/lib/api/helpers/keevo-validators.d.ts +0 -12
- package/lib/api/helpers/translate-primeng.d.ts +0 -4
- package/lib/api/modules/primeng.module.d.ts +0 -66
- package/lib/api/pipes/capitalize.pipe.d.ts +0 -8
- package/lib/api/pipes/cpfcnpj.pipe.d.ts +0 -7
- package/lib/api/pipes/mask.pipe.d.ts +0 -7
- package/lib/api/pipes/pipes.module.d.ts +0 -11
- package/lib/api/pipes/telefone.pipe.d.ts +0 -7
- package/lib/api/services/base.api.service.d.ts +0 -25
- package/lib/api/services/breadcrumbs.service.d.ts +0 -15
- package/lib/api/services/component.service.d.ts +0 -11
- package/lib/api/services/docs.service.d.ts +0 -12
- package/lib/api/services/form.service.d.ts +0 -31
- package/lib/api/services/imagens.service.d.ts +0 -10
- package/lib/api/services/notification.service.d.ts +0 -25
- package/lib/api/services/object.service.d.ts +0 -9
- package/lib/components/keevo-components.module.d.ts +0 -30
- package/lib/components/kv-avatar/kv-avatar.component.d.ts +0 -22
- package/lib/components/kv-avatar/kv-avatar.module.d.ts +0 -10
- package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +0 -11
- package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +0 -14
- package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +0 -7
- package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +0 -7
- package/lib/components/kv-buttons/kv-button.module.d.ts +0 -11
- package/lib/components/kv-carousel/kv-carousel.component.d.ts +0 -14
- package/lib/components/kv-carousel/kv-carousel.module.d.ts +0 -9
- package/lib/components/kv-chart/kv-chart.component.d.ts +0 -56
- package/lib/components/kv-chart/kv-chart.module.d.ts +0 -10
- package/lib/components/kv-error/kv-error.component.d.ts +0 -12
- package/lib/components/kv-error/kv-error.module.d.ts +0 -10
- package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +0 -17
- package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +0 -8
- package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +0 -12
- package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +0 -10
- package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +0 -5
- package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +0 -9
- package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +0 -24
- package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +0 -8
- package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +0 -12
- package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +0 -14
- package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +0 -21
- package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +0 -27
- package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +0 -12
- package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +0 -19
- package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +0 -13
- package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +0 -10
- package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +0 -16
- package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +0 -16
- package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +0 -10
- package/lib/components/kv-inputs/kv-inputs.module.d.ts +0 -28
- package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +0 -15
- package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +0 -18
- package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +0 -19
- package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +0 -16
- package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +0 -16
- package/lib/components/kv-label/kv-label.component.d.ts +0 -7
- package/lib/components/kv-label/kv-label.module.d.ts +0 -8
- package/lib/components/kv-loader/kv-loader.component.d.ts +0 -8
- package/lib/components/kv-loader/kv-loader.module.d.ts +0 -9
- package/lib/components/kv-loader/kv-loader.service.d.ts +0 -10
- package/lib/components/kv-login/kv-login.component.d.ts +0 -30
- package/lib/components/kv-login/kv-login.module.d.ts +0 -13
- package/lib/components/kv-menu/kv-menu.component.d.ts +0 -59
- package/lib/components/kv-menu/kv-menu.module.d.ts +0 -13
- package/lib/components/kv-modal/kv-modal.component.d.ts +0 -28
- package/lib/components/kv-modal/kv-modal.module.d.ts +0 -10
- package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +0 -27
- package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +0 -9
- package/lib/components/kv-page-form/kv-page-form.component.d.ts +0 -97
- package/lib/components/kv-page-form/kv-page-form.module.d.ts +0 -11
- package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +0 -84
- package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +0 -13
- package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +0 -30
- package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +0 -10
- package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +0 -67
- package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +0 -9
- package/lib/components/kv-report/kv-report.component.d.ts +0 -20
- package/lib/components/kv-report/kv-report.module.d.ts +0 -8
- package/lib/components/kv-stepper/kv-stepper.component.d.ts +0 -25
- package/lib/components/kv-stepper/kv-stepper.module.d.ts +0 -10
- package/lib/components/kv-table/kv-table.component.d.ts +0 -119
- package/lib/components/kv-table/kv-table.module.d.ts +0 -11
- package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +0 -58
- package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +0 -14
- package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +0 -110
- package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +0 -12
- package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +0 -71
- package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +0 -9
- package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +0 -14
- package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +0 -9
- package/lib/components/kv-workspace/kv-workspace.component.d.ts +0 -65
- package/lib/components/kv-workspace/kv-workspace.module.d.ts +0 -14
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { KvTableExpandableComponent } from './kv-table-expandable.component';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { KvButtonsModule } from '../kv-buttons/kv-button.module';
|
|
6
|
-
import { KvInputsModule } from '../kv-inputs/kv-inputs.module';
|
|
7
|
-
import { PrimeNgModule } from '../../api/modules/primeng.module';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class KvTableExpandableModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, declarations: [KvTableExpandableComponent], imports: [CommonModule,
|
|
12
|
-
PrimeNgModule,
|
|
13
|
-
FormsModule,
|
|
14
|
-
KvInputsModule,
|
|
15
|
-
KvButtonsModule], exports: [KvTableExpandableComponent] }); }
|
|
16
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, imports: [CommonModule,
|
|
17
|
-
PrimeNgModule,
|
|
18
|
-
FormsModule,
|
|
19
|
-
KvInputsModule,
|
|
20
|
-
KvButtonsModule] }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, decorators: [{
|
|
23
|
-
type: NgModule,
|
|
24
|
-
args: [{
|
|
25
|
-
declarations: [KvTableExpandableComponent],
|
|
26
|
-
imports: [
|
|
27
|
-
CommonModule,
|
|
28
|
-
PrimeNgModule,
|
|
29
|
-
FormsModule,
|
|
30
|
-
KvInputsModule,
|
|
31
|
-
KvButtonsModule,
|
|
32
|
-
],
|
|
33
|
-
exports: [KvTableExpandableComponent]
|
|
34
|
-
}]
|
|
35
|
-
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFibGUtZXhwYW5kYWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFlakUsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBVm5CLDBCQUEwQixhQUV2QyxZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZUFBZSxhQUVQLDBCQUEwQjsrR0FFekIsdUJBQXVCLFlBUmhDLFlBQVk7WUFDWixhQUFhO1lBQ2IsV0FBVztZQUNYLGNBQWM7WUFDZCxlQUFlOzsyRkFJTix1QkFBdUI7a0JBWG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEt2VGFibGVFeHBhbmRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9rdi10YWJsZS1leHBhbmRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdkJ1dHRvbnNNb2R1bGUgfSBmcm9tICcuLi9rdi1idXR0b25zL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdklucHV0c01vZHVsZSB9IGZyb20gJy4uL2t2LWlucHV0cy9rdi1pbnB1dHMubW9kdWxlJztcclxuaW1wb3J0IHsgUHJpbWVOZ01vZHVsZSB9IGZyb20gJy4uLy4uL2FwaS9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtLdlRhYmxlRXhwYW5kYWJsZUNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJpbWVOZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgS3ZJbnB1dHNNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbnNNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbS3ZUYWJsZUV4cGFuZGFibGVDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlRhYmxlRXhwYW5kYWJsZU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
2
|
-
import { getOrExecute, mapToMenuItem, } from '../../api/components/table/kv-menuitem';
|
|
3
|
-
import { TemplateDirective } from '../../api/directives/template/template.directive';
|
|
4
|
-
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "primeng/api";
|
|
8
|
-
import * as i3 from "primeng/autofocus";
|
|
9
|
-
import * as i4 from "primeng/tooltip";
|
|
10
|
-
import * as i5 from "primeng/button";
|
|
11
|
-
import * as i6 from "primeng/inputtext";
|
|
12
|
-
import * as i7 from "primeng/menu";
|
|
13
|
-
import * as i8 from "@angular/cdk/drag-drop";
|
|
14
|
-
import * as i9 from "primeng/table";
|
|
15
|
-
import * as i10 from "primeng/treetable";
|
|
16
|
-
export class KvTreetableComponent {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.menuItems = [];
|
|
19
|
-
this.gridLines = false;
|
|
20
|
-
this.tableCaptalized = false;
|
|
21
|
-
this.selectedItems = [];
|
|
22
|
-
this.paginator = true;
|
|
23
|
-
this.rows = 10;
|
|
24
|
-
this.treeTableDraggable = false;
|
|
25
|
-
this.transferArrayItem = false;
|
|
26
|
-
this.textoEmptyMessage = 'Nenhum registro encontrado';
|
|
27
|
-
this.childrenRecoil = true;
|
|
28
|
-
this.onFilter = new EventEmitter();
|
|
29
|
-
this.onPaginate = new EventEmitter();
|
|
30
|
-
this.onActiveItem = new EventEmitter();
|
|
31
|
-
this.onActiveItemLote = new EventEmitter();
|
|
32
|
-
this.doubleClickEvent = new EventEmitter();
|
|
33
|
-
this.onNodeSelect = new EventEmitter();
|
|
34
|
-
this.onNodeUnselect = new EventEmitter();
|
|
35
|
-
this.onDropItem = new EventEmitter();
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
this.tamanhoTela = window.innerWidth;
|
|
39
|
-
if (this.ordenacao) {
|
|
40
|
-
this.dataSource = this.sortTreeNodes(this.dataSource);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
onWindowResize() {
|
|
44
|
-
this.tamanhoTela = window.innerWidth;
|
|
45
|
-
}
|
|
46
|
-
activeItem(rowData) {
|
|
47
|
-
this.onActiveItem.emit(rowData);
|
|
48
|
-
}
|
|
49
|
-
activeItemLote(rowData) {
|
|
50
|
-
this.onActiveItemLote.emit(rowData);
|
|
51
|
-
}
|
|
52
|
-
getOrExecute(action, data) {
|
|
53
|
-
return getOrExecute(action, data);
|
|
54
|
-
}
|
|
55
|
-
onGlobalFilter(table, event) {
|
|
56
|
-
this.onFilter.emit(event.target.value);
|
|
57
|
-
table.filterGlobal(event.target.value, 'contains');
|
|
58
|
-
}
|
|
59
|
-
paginate($event) {
|
|
60
|
-
if ($event) {
|
|
61
|
-
let paginaInicial = ($event?.first > 0 ? $event.first / $event.rows : $event.first) + 1;
|
|
62
|
-
let termoPesquisa = '';
|
|
63
|
-
let ordenacao = '';
|
|
64
|
-
if ($event.globalFilter)
|
|
65
|
-
termoPesquisa = $event.globalFilter;
|
|
66
|
-
if ($event.sortField)
|
|
67
|
-
ordenacao = `${$event.sortField} ${$event.sortOrder === 1 ? 'ASC' : 'DESC'}`;
|
|
68
|
-
const objeto = {
|
|
69
|
-
paginaInicial: paginaInicial,
|
|
70
|
-
tamanhoPagina: $event.rows,
|
|
71
|
-
termoPesquisa: termoPesquisa,
|
|
72
|
-
ordenacao: ordenacao,
|
|
73
|
-
};
|
|
74
|
-
this.onPaginate.emit(objeto);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
drop(event) {
|
|
78
|
-
const draggedNode = event.item.data;
|
|
79
|
-
const draggedChildData = draggedNode.node.data;
|
|
80
|
-
if (draggedNode.level === 0) {
|
|
81
|
-
moveItemInArray(this.dataSource, event.previousIndex, event.currentIndex);
|
|
82
|
-
}
|
|
83
|
-
else if (draggedNode.level >= 1) {
|
|
84
|
-
const parentNode = draggedNode.node.parent;
|
|
85
|
-
if (parentNode) {
|
|
86
|
-
const parentChildren = parentNode.children.map((child) => child.data);
|
|
87
|
-
const previousChildIndex = parentChildren.indexOf(draggedChildData);
|
|
88
|
-
const relativeCurrentIndex = previousChildIndex + (event.currentIndex - event.previousIndex);
|
|
89
|
-
const targetChildIndex = Math.max(0, Math.min(parentChildren.length - 1, relativeCurrentIndex));
|
|
90
|
-
if (previousChildIndex !== -1 && targetChildIndex !== -1) {
|
|
91
|
-
moveItemInArray(parentNode.children, previousChildIndex, targetChildIndex);
|
|
92
|
-
}
|
|
93
|
-
const dropInfo = {
|
|
94
|
-
previousChildIndex: previousChildIndex + 1,
|
|
95
|
-
targetChildIndex: targetChildIndex + 1,
|
|
96
|
-
};
|
|
97
|
-
this.onDropItem.emit({ event: event, dropChildInfo: dropInfo });
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
this.dataSource = [...this.dataSource];
|
|
101
|
-
if (draggedNode.level === 0) {
|
|
102
|
-
this.onDropItem.emit(event);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
sortTreeNodes(nodes) {
|
|
106
|
-
return nodes
|
|
107
|
-
.sort((a, b) => a.data[this.ordenacao] - b.data[this.ordenacao])
|
|
108
|
-
.map((node) => {
|
|
109
|
-
if (node.children) {
|
|
110
|
-
node.children = this.sortTreeNodes(node.children);
|
|
111
|
-
}
|
|
112
|
-
return node;
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
calculateTargetChildIndex(event, parentChildren, previousChildIndex) {
|
|
116
|
-
const targetChildIndex = previousChildIndex + (event.currentIndex - event.previousIndex);
|
|
117
|
-
if (targetChildIndex < 0) {
|
|
118
|
-
return 0;
|
|
119
|
-
}
|
|
120
|
-
else if (targetChildIndex >= parentChildren.length) {
|
|
121
|
-
return parentChildren.length - 1;
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
return targetChildIndex;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
// returnStyleRow(col: any, rowNode: any): string {
|
|
128
|
-
// const isFirstColumn = col.field === this.config.columns[0].field;
|
|
129
|
-
// const baseOpacity = 1;
|
|
130
|
-
// const maxLevels = 4;
|
|
131
|
-
// if (isFirstColumn && rowNode.level >= 0) {
|
|
132
|
-
// const opacity = baseOpacity - (rowNode.level / maxLevels);
|
|
133
|
-
// return `border-left: solid 4px rgba(59, 110, 158, ${ opacity }) !important;`;
|
|
134
|
-
// }
|
|
135
|
-
// if (rowNode.level == 0)
|
|
136
|
-
// return 'border-left: none !important; border-right: none !important'
|
|
137
|
-
// return '';
|
|
138
|
-
// }
|
|
139
|
-
alignColunasHeader(col) {
|
|
140
|
-
if (col.align) {
|
|
141
|
-
if (col.align == 'right')
|
|
142
|
-
return 'justify-content: end';
|
|
143
|
-
else
|
|
144
|
-
return '';
|
|
145
|
-
}
|
|
146
|
-
else
|
|
147
|
-
return '';
|
|
148
|
-
}
|
|
149
|
-
centralizarColunas(col) {
|
|
150
|
-
if (col.centralize) {
|
|
151
|
-
return 'text-align: center; ';
|
|
152
|
-
}
|
|
153
|
-
else
|
|
154
|
-
return '';
|
|
155
|
-
}
|
|
156
|
-
alignColunas(col) {
|
|
157
|
-
if (col.align) {
|
|
158
|
-
return `text-align: ${col.align}`;
|
|
159
|
-
}
|
|
160
|
-
else
|
|
161
|
-
return '';
|
|
162
|
-
}
|
|
163
|
-
criarMenusModal(data) {
|
|
164
|
-
if (this.config.actions && data) {
|
|
165
|
-
for (const action of this.config.actions) {
|
|
166
|
-
const menuInsert = mapToMenuItem(action, data);
|
|
167
|
-
let item = this.menuItems.filter((x) => x.command == menuInsert.command);
|
|
168
|
-
if (item.length == 0)
|
|
169
|
-
this.menuItems.push(menuInsert);
|
|
170
|
-
else {
|
|
171
|
-
if (menuInsert.label != item[0].label) {
|
|
172
|
-
let index = this.menuItems.indexOf(item[0]);
|
|
173
|
-
this.menuItems.splice(index, 1);
|
|
174
|
-
}
|
|
175
|
-
if (menuInsert.visible != item[0].visible) {
|
|
176
|
-
let index = this.menuItems.indexOf(item[0]);
|
|
177
|
-
this.menuItems.splice(index, 1);
|
|
178
|
-
}
|
|
179
|
-
if (menuInsert.disabled != item[0].disabled) {
|
|
180
|
-
let index = this.menuItems.indexOf(item[0]);
|
|
181
|
-
this.menuItems.splice(index, 1);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
exibirCampo(field, rowData) {
|
|
188
|
-
let visible = field.visible ? field.visible(rowData) : true;
|
|
189
|
-
return visible;
|
|
190
|
-
}
|
|
191
|
-
validateActionPosition(rowNode) {
|
|
192
|
-
if (this.config.actionsPai && rowNode.level == 0)
|
|
193
|
-
return false;
|
|
194
|
-
else
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
doubleClick(e, rowData) {
|
|
198
|
-
let eventDoubleClick = { event: e, rowData: rowData };
|
|
199
|
-
let array = [];
|
|
200
|
-
e.target.classList.forEach((x) => array.push(x));
|
|
201
|
-
// if (array.find((x: any) => x == 'ng-star-inserted') != undefined)
|
|
202
|
-
this.doubleClickEvent.emit(eventDoubleClick);
|
|
203
|
-
}
|
|
204
|
-
isDisabledCheckbox(rowData, rowNode) {
|
|
205
|
-
return this.config.disableControlCheckboxFunction
|
|
206
|
-
? this.config.disableControlCheckboxFunction(rowData, rowNode)
|
|
207
|
-
: false;
|
|
208
|
-
}
|
|
209
|
-
onNodeSelected(event) {
|
|
210
|
-
this.onNodeSelect.emit(event);
|
|
211
|
-
}
|
|
212
|
-
onNodeUnselected(event) {
|
|
213
|
-
this.onNodeUnselect.emit(event);
|
|
214
|
-
}
|
|
215
|
-
getCustomTemplate(templatename) {
|
|
216
|
-
return this._templates[templatename];
|
|
217
|
-
}
|
|
218
|
-
validateShowTemplate(rowNode, col) {
|
|
219
|
-
if (col.templateOnly) {
|
|
220
|
-
if (col.templateOnly === 'pai') {
|
|
221
|
-
return rowNode.level === 0;
|
|
222
|
-
}
|
|
223
|
-
if (col.templateOnly === 'filho') {
|
|
224
|
-
return rowNode.level === 1;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return true;
|
|
228
|
-
}
|
|
229
|
-
getIcon(icon) {
|
|
230
|
-
return icon.includes('pi-') ? `pi ${icon}` : '';
|
|
231
|
-
}
|
|
232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvTreetableComponent, selector: "kv-tree-table", inputs: { config: "config", dataSource: "dataSource", gridLines: "gridLines", tableCaptalized: "tableCaptalized", selectedItems: "selectedItems", paginator: "paginator", rows: "rows", treeTableDraggable: "treeTableDraggable", transferArrayItem: "transferArrayItem", ordenacao: "ordenacao", totalRecords: "totalRecords", textoEmptyMessage: "textoEmptyMessage", childrenRecoil: "childrenRecoil", pageLinksOptions: "pageLinksOptions", pageLinks: "pageLinks", showFirstLastIcon: "showFirstLastIcon", _templates: ["templates", "_templates"] }, outputs: { onFilter: "onFilter", onPaginate: "onPaginate", onActiveItem: "onActiveItem", onActiveItemLote: "onActiveItemLote", doubleClickEvent: "doubleClickEvent", onNodeSelect: "onNodeSelect", onNodeUnselect: "onNodeUnselect", onDropItem: "onDropItem" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div *ngIf=\"!treeTableDraggable\">\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"tamanhoTela > 960 ? true : false\"\r\n [pageLinks]=\"tamanhoTela > 960 ? 2 : 1\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n (onNodeSelect)=\"onNodeSelected($event)\"\r\n (onNodeUnselect)=\"onNodeUnselected($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\"\r\n >\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12 m-0\"\r\n style=\"background-color: #eaeaea\"\r\n >\r\n <div class=\"col-12 flex flex-column\">\r\n <div *ngIf=\"config.title\" class=\"text-md font-bold my-3\">\r\n {{ config.title }}\r\n </div>\r\n <div *ngIf=\"config.subtitle\" class=\"text-sm mb-4 font-medium\">\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 p-0 md:col-6 lg:col-4 justify-content-center {{\r\n tamanhoTela < 768 ? '' : 'input-search'\r\n }}\"\r\n >\r\n <span *ngIf=\"config.enableFilter\" class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"flex flex-row gap-2 btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n *ngIf=\"\r\n (selectedItems.length > 0 || action.showAcoesLote) &&\r\n exibirCampo(action, this.action)\r\n \"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n [style.background-color]=\"'#1DA750'\"\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined\"\r\n style=\"font-size: 25px; color: white\"\r\n >\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"\r\n />\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n centralizarColunas(col) && alignColunasHeader(col) == ''\r\n ? 'flex flex-row justify-content-center'\r\n : 'flex flex-row'\r\n \"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n } }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br />\r\n </th>\r\n } @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ capitalize: tableCaptalized }\"\r\n >\r\n @for(col of columns; track $index){\r\n <td\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"\r\n childrenRecoil && rowNode.level !== 0 ? rowNode.level * 30 : null\r\n \"\r\n [style.borderRight]=\"rowNode.level === 0 ? 'none' : ''\"\r\n [style.borderLeft]=\"\r\n rowNode.level === 0 && col.field != config.columns[0].field\r\n ? 'none'\r\n : ''\r\n \"\r\n >\r\n <div\r\n class=\"flex flex-row {{\r\n col.centralize ? 'justify-content-center' : ''\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n </div>\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-center gap-2\"\r\n >\r\n @if(col.tagColor) {\r\n <div\r\n class=\"tag\"\r\n [pTooltip]=\"\r\n col.tooltipTag &&\r\n col.tooltipTag(rowData, col, rowData[col.field])\r\n \"\r\n [style.background-color]=\"\r\n col.tagColor(rowData, col, rowData[col.field])\r\n \"\r\n ></div>\r\n\r\n }\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{\r\n rowData[col.field] ? 'pi-check text-green-300' : ''\r\n }}\"\r\n style=\"font-size: 1.1rem\"\r\n ></i>\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p *ngIf=\"col.subtitle\" class=\"m-0 text-xs font-semibold\">\r\n {{ rowData[col.subtitle] }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none; text-align: end\"\r\n *ngIf=\"(config.actions?.length ?? 0 > 0) || config.actionsPai\"\r\n >\r\n <div\r\n *ngIf=\"\r\n (config.actions?.length ?? 0 > 0) &&\r\n validateActionPosition(rowNode)\r\n \"\r\n >\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 25px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n @for (actionPai of config.actionsPai; track $index) { @if\r\n (getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n (onClick)=\"activeItem(rowData); actionPai.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span\r\n class=\"material-icons text-xl\"\r\n style=\"font-size: 25px; color: white\"\r\n >{{ actionPai.icon }}</span\r\n >\r\n }\r\n </p-button>\r\n } }\r\n </div>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"config.columns.length + 1\"\r\n style=\"text-align: center\"\r\n >\r\n {{ textoEmptyMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"treeTableDraggable\"\r\n cdkDropList\r\n class=\"example-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12 m-0\"\r\n style=\"background-color: #eaeaea\"\r\n >\r\n <div class=\"col-12 flex flex-column\">\r\n <div *ngIf=\"config.title\" class=\"text-md font-bold my-3\">\r\n {{ config.title }}\r\n </div>\r\n <div *ngIf=\"config.subtitle\" class=\"text-sm mb-4 font-medium\">\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 p-0 md:col-6 lg:col-4 justify-content-center {{\r\n tamanhoTela < 768 ? '' : 'input-search'\r\n }}\"\r\n >\r\n <span *ngIf=\"config.enableFilter\" class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"flex flex-row gap-2 btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n *ngIf=\"\r\n (selectedItems.length > 0 || action.showAcoesLote) &&\r\n exibirCampo(action, this.action)\r\n \"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined md-22\"\r\n style=\"font-size: 25px; color: white\"\r\n >\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"\r\n />\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n centralizarColunas(col) && alignColunasHeader(col) == ''\r\n ? 'flex flex-row justify-content-center'\r\n : 'flex flex-row'\r\n \"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br />\r\n </th>\r\n }\r\n <th [style.width]=\"5\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n cdkDrag\r\n [cdkDragData]=\"rowNode\"\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ capitalize: tableCaptalized }\"\r\n >\r\n @for(col of columns; track $index){\r\n <td\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"\r\n childrenRecoil && rowNode.level !== 0 ? rowNode.level * 30 : null\r\n \"\r\n >\r\n <div\r\n class=\"flex flex-row {{\r\n col.centralize ? 'justify-content-center' : ''\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n </div>\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-center gap-2\"\r\n >\r\n @if(col.tagColor) {\r\n <div\r\n class=\"tag\"\r\n [pTooltip]=\"\r\n col.tooltipTag &&\r\n col.tooltipTag(rowData, col, rowData[col.field])\r\n \"\r\n [style.background-color]=\"\r\n col.tagColor(rowData, col, rowData[col.field])\r\n \"\r\n ></div>\r\n\r\n }\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{\r\n rowData[col.field] ? 'pi-check text-green-300' : ''\r\n }}\"\r\n style=\"font-size: 1.1rem\"\r\n ></i>\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p *ngIf=\"col.subtitle\" class=\"m-0 text-xs font-semibold\">\r\n {{ rowData[col.subtitle] }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none; text-align: end\"\r\n *ngIf=\"(config.actions?.length ?? 0 > 0) || config.actionsPai\"\r\n [style.borderRight]=\"rowNode.level === 0 ? 'none' : ''\"\r\n [style.borderLeft]=\"rowNode.level === 0 ? 'none' : ''\"\r\n >\r\n <div\r\n *ngIf=\"\r\n (config.actions?.length ?? 0 > 0) &&\r\n validateActionPosition(rowNode)\r\n \"\r\n >\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 25px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n @for (actionPai of config.actionsPai; track $index) {\r\n @if(getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{ width: '2rem', height: '2rem' }\"\r\n (onClick)=\"activeItem(rowData); actionPai.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\" style=\"font-size: 25px\">{{\r\n actionPai.icon\r\n }}</span>\r\n }\r\n </p-button>\r\n } }\r\n </div>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"config.columns.length + 1\"\r\n style=\"text-align: center\"\r\n >\r\n {{ textoEmptyMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.4rem}::ng-deep .p-treetable .p-treetable-header{padding:0rem}span{font-size:14px}:host ::ng-deep .p-treetable table{table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.2);transition:color .3s,transform .3s}::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea}.tag{width:5px;height:20px;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i9.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i10.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight", "selectionKeys"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange"] }, { kind: "component", type: i10.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i10.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "directive", type: i10.TTResizableColumn, selector: "[ttResizableColumn]", inputs: ["ttResizableColumnDisabled"] }, { kind: "directive", type: i10.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: i10.TTCheckbox, selector: "p-treeTableCheckbox", inputs: ["disabled", "value"] }, { kind: "component", type: i10.TTHeaderCheckbox, selector: "p-treeTableHeaderCheckbox" }] }); }
|
|
234
|
-
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableComponent, decorators: [{
|
|
236
|
-
type: Component,
|
|
237
|
-
args: [{ selector: 'kv-tree-table', template: "<div *ngIf=\"!treeTableDraggable\">\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"tamanhoTela > 960 ? true : false\"\r\n [pageLinks]=\"tamanhoTela > 960 ? 2 : 1\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n (onNodeSelect)=\"onNodeSelected($event)\"\r\n (onNodeUnselect)=\"onNodeUnselected($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} de {totalRecords}\"\r\n >\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12 m-0\"\r\n style=\"background-color: #eaeaea\"\r\n >\r\n <div class=\"col-12 flex flex-column\">\r\n <div *ngIf=\"config.title\" class=\"text-md font-bold my-3\">\r\n {{ config.title }}\r\n </div>\r\n <div *ngIf=\"config.subtitle\" class=\"text-sm mb-4 font-medium\">\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 p-0 md:col-6 lg:col-4 justify-content-center {{\r\n tamanhoTela < 768 ? '' : 'input-search'\r\n }}\"\r\n >\r\n <span *ngIf=\"config.enableFilter\" class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"flex flex-row gap-2 btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n *ngIf=\"\r\n (selectedItems.length > 0 || action.showAcoesLote) &&\r\n exibirCampo(action, this.action)\r\n \"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n [style.background-color]=\"'#1DA750'\"\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined\"\r\n style=\"font-size: 25px; color: white\"\r\n >\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"\r\n />\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n centralizarColunas(col) && alignColunasHeader(col) == ''\r\n ? 'flex flex-row justify-content-center'\r\n : 'flex flex-row'\r\n \"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n } }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br />\r\n </th>\r\n } @if (config.actions?.length ?? 0 > 0) {\r\n <th [style.width]=\"5\"></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ capitalize: tableCaptalized }\"\r\n >\r\n @for(col of columns; track $index){\r\n <td\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"\r\n childrenRecoil && rowNode.level !== 0 ? rowNode.level * 30 : null\r\n \"\r\n [style.borderRight]=\"rowNode.level === 0 ? 'none' : ''\"\r\n [style.borderLeft]=\"\r\n rowNode.level === 0 && col.field != config.columns[0].field\r\n ? 'none'\r\n : ''\r\n \"\r\n >\r\n <div\r\n class=\"flex flex-row {{\r\n col.centralize ? 'justify-content-center' : ''\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n </div>\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-center gap-2\"\r\n >\r\n @if(col.tagColor) {\r\n <div\r\n class=\"tag\"\r\n [pTooltip]=\"\r\n col.tooltipTag &&\r\n col.tooltipTag(rowData, col, rowData[col.field])\r\n \"\r\n [style.background-color]=\"\r\n col.tagColor(rowData, col, rowData[col.field])\r\n \"\r\n ></div>\r\n\r\n }\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{\r\n rowData[col.field] ? 'pi-check text-green-300' : ''\r\n }}\"\r\n style=\"font-size: 1.1rem\"\r\n ></i>\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p *ngIf=\"col.subtitle\" class=\"m-0 text-xs font-semibold\">\r\n {{ rowData[col.subtitle] }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none; text-align: end\"\r\n *ngIf=\"(config.actions?.length ?? 0 > 0) || config.actionsPai\"\r\n >\r\n <div\r\n *ngIf=\"\r\n (config.actions?.length ?? 0 > 0) &&\r\n validateActionPosition(rowNode)\r\n \"\r\n >\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 25px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n @for (actionPai of config.actionsPai; track $index) { @if\r\n (getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n (onClick)=\"activeItem(rowData); actionPai.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span\r\n class=\"material-icons text-xl\"\r\n style=\"font-size: 25px; color: white\"\r\n >{{ actionPai.icon }}</span\r\n >\r\n }\r\n </p-button>\r\n } }\r\n </div>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"config.columns.length + 1\"\r\n style=\"text-align: center\"\r\n >\r\n {{ textoEmptyMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"treeTableDraggable\"\r\n cdkDropList\r\n class=\"example-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n>\r\n <p-treeTable\r\n #tt\r\n [value]=\"dataSource\"\r\n [columns]=\"config.columns\"\r\n [resizableColumns]=\"true\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [pageLinks]=\"pageLinks\"\r\n [totalRecords]=\"totalRecords\"\r\n [rowsPerPageOptions]=\"[5, 10, 25, 50]\"\r\n [showFirstLastIcon]=\"showFirstLastIcon\"\r\n [styleClass]=\"gridLines ? 'p-treetable-gridlines' : ''\"\r\n [(selection)]=\"selectedItems\"\r\n [lazy]=\"config.lazy\"\r\n (onLazyLoad)=\"paginate($event)\"\r\n currentPageReportTemplate=\"{first} - {last} de {{ totalRecords }}\"\r\n >\r\n <ng-template pTemplate=\"caption\" *ngIf=\"config.enableCation\">\r\n <div\r\n class=\"flex flex-row flex-wrap justify-content-between align-items-center grid formgrid p-fluid col-12 m-0\"\r\n style=\"background-color: #eaeaea\"\r\n >\r\n <div class=\"col-12 flex flex-column\">\r\n <div *ngIf=\"config.title\" class=\"text-md font-bold my-3\">\r\n {{ config.title }}\r\n </div>\r\n <div *ngIf=\"config.subtitle\" class=\"text-sm mb-4 font-medium\">\r\n {{ config.subtitle }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex flex-row align-items-center col-10 p-0 md:col-6 lg:col-4 justify-content-center {{\r\n tamanhoTela < 768 ? '' : 'input-search'\r\n }}\"\r\n >\r\n <span *ngIf=\"config.enableFilter\" class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"true\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(tt, $event)\"\r\n placeholder=\"Pesquisar...\"\r\n class=\"h-2rem\"\r\n />\r\n </span>\r\n </div>\r\n\r\n <div class=\"flex flex-row col-1 justify-content-end p-0\">\r\n <div class=\"flex flex-row gap-2 btns-options\">\r\n @for (action of config.actionsLote; track $index) {\r\n\r\n <p-button\r\n [icon]=\"getIcon(action.icon)\"\r\n *ngIf=\"\r\n (selectedItems.length > 0 || action.showAcoesLote) &&\r\n exibirCampo(action, this.action)\r\n \"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n (onClick)=\"action?.command(); activeItemLote(selectedItems)\"\r\n [pTooltip]=\"getOrExecute(action.tooltip, selectedItems)\"\r\n [tooltipPosition]=\"'bottom'\"\r\n [disabled]=\"getOrExecute(action.disabled, selectedItems)\"\r\n [style]=\"{\r\n width: '2rem',\r\n height: '2rem',\r\n backgroundColor: '#1da750'\r\n }\"\r\n >\r\n @if (!action.icon.includes('pi-')){\r\n <span\r\n class=\"material-symbols-outlined md-22\"\r\n style=\"font-size: 25px; color: white\"\r\n >\r\n {{ getOrExecute(action.icon, selectedItems) }}\r\n </span>\r\n }\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for(col of columns; track $index){\r\n <th\r\n [ttSortableColumn]=\"col.field\"\r\n [ttSortableColumnDisabled]=\"col.sortable === false\"\r\n class=\"text-sm\"\r\n [style.width]=\"col.width\"\r\n >\r\n <div>\r\n <div [ngClass]=\"{ flex: $index == 0, 'gap-3': $index == 0 }\">\r\n <div *ngIf=\"$index == 0 && config.enableSelect\">\r\n <p-treeTableHeaderCheckbox\r\n (click)=\"activeItemLote(selectedItems)\"\r\n />\r\n </div>\r\n\r\n <div\r\n [class]=\"\r\n centralizarColunas(col) && alignColunasHeader(col) == ''\r\n ? 'flex flex-row justify-content-center'\r\n : 'flex flex-row'\r\n \"\r\n [style]=\"alignColunasHeader(col)\"\r\n >\r\n <span>{{ col.header }}</span>\r\n <p-sortIcon\r\n *ngIf=\"col.sortable === true\"\r\n [field]=\"col.field\"\r\n style=\"font-size: 10px\"\r\n />\r\n\r\n <span\r\n *ngIf=\"col.headerTooltip\"\r\n class=\"material-symbols-outlined flex align-items-center\"\r\n [pTooltip]=\"col.headerTooltip\"\r\n >info</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n ttResizableColumn\r\n [style.width]=\"col.width\"\r\n [style]=\"col.centralize ? 'text-align: center;' : ''\"\r\n >\r\n {{ col.header }} <br />\r\n </th>\r\n }\r\n <th [style.width]=\"5\"></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowNode\r\n let-rowData=\"rowData\"\r\n let-columns=\"columns\"\r\n >\r\n <tr\r\n cdkDrag\r\n [cdkDragData]=\"rowNode\"\r\n [ttRow]=\"rowNode\"\r\n (dblclick)=\"doubleClick($event, rowData)\"\r\n [ngClass]=\"{ capitalize: tableCaptalized }\"\r\n >\r\n @for(col of columns; track $index){\r\n <td\r\n [style.position]=\"rowNode.level !== 0 ? 'sticky' : null\"\r\n [style.left.px]=\"\r\n childrenRecoil && rowNode.level !== 0 ? rowNode.level * 30 : null\r\n \"\r\n >\r\n <div\r\n class=\"flex flex-row {{\r\n col.centralize ? 'justify-content-center' : ''\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full-h-full flex align-items-center\"\r\n *ngIf=\"$index == 0\"\r\n >\r\n <p-treeTableToggler class=\"hiddenVisible\" [rowNode]=\"rowNode\" />\r\n\r\n <p-treeTableCheckbox\r\n [disabled]=\"isDisabledCheckbox(rowData, rowNode)\"\r\n (click)=\"activeItemLote(selectedItems)\"\r\n [value]=\"rowNode\"\r\n *ngIf=\"config.enableSelect == true\"\r\n />\r\n </div>\r\n\r\n <div class=\"flex flex-row align-items-center\">\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-center gap-2\"\r\n >\r\n @if(col.tagColor) {\r\n <div\r\n class=\"tag\"\r\n [pTooltip]=\"\r\n col.tooltipTag &&\r\n col.tooltipTag(rowData, col, rowData[col.field])\r\n \"\r\n [style.background-color]=\"\r\n col.tagColor(rowData, col, rowData[col.field])\r\n \"\r\n ></div>\r\n\r\n }\r\n\r\n <i\r\n *ngIf=\"col.boolean\"\r\n class=\"pi {{\r\n rowData[col.field] ? 'pi-check text-green-300' : ''\r\n }}\"\r\n style=\"font-size: 1.1rem\"\r\n ></i>\r\n\r\n <div class=\"flex flex-column\" *ngIf=\"!col.boolean\">\r\n <span class=\"m-0\">{{ rowData[col.field] }}</span>\r\n\r\n <p *ngIf=\"col.subtitle\" class=\"m-0 text-xs font-semibold\">\r\n {{ rowData[col.subtitle] }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <span *ngIf=\"col.template && validateShowTemplate(rowNode, col)\">\r\n <ng-container\r\n *ngIf=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutlet]=\"getCustomTemplate(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n >\r\n </ng-container>\r\n </span>\r\n </td>\r\n }\r\n\r\n <td\r\n style=\"border-left: none; text-align: end\"\r\n *ngIf=\"(config.actions?.length ?? 0 > 0) || config.actionsPai\"\r\n [style.borderRight]=\"rowNode.level === 0 ? 'none' : ''\"\r\n [style.borderLeft]=\"rowNode.level === 0 ? 'none' : ''\"\r\n >\r\n <div\r\n *ngIf=\"\r\n (config.actions?.length ?? 0 > 0) &&\r\n validateActionPosition(rowNode)\r\n \"\r\n >\r\n <span\r\n class=\"material-symbols-outlined cursor-pointer icon-more-horiz\"\r\n style=\"font-size: 25px\"\r\n (click)=\"menu.toggle($event); activeItem(rowData)\"\r\n >\r\n more_horiz\r\n </span>\r\n\r\n @for(action of config.actions; track $index) {\r\n {{ criarMenusModal(rowData) }}\r\n }\r\n\r\n <p-menu\r\n #menu\r\n [popup]=\"true\"\r\n [model]=\"menuItems\"\r\n appendTo=\"body\"\r\n ></p-menu>\r\n </div>\r\n\r\n @if(config.actionsPai?.length ?? 0 > 0 && rowNode.level == 0){\r\n <div class=\"flex justify-content-end\">\r\n @for (actionPai of config.actionsPai; track $index) {\r\n @if(getOrExecute(actionPai.visible, rowData) ?? true) {\r\n <p-button\r\n [icon]=\"getIcon(actionPai.icon)\"\r\n [severity]=\"actionPai.severity ?? 'secondary'\"\r\n [style]=\"{ width: '2rem', height: '2rem' }\"\r\n (onClick)=\"activeItem(rowData); actionPai.command($event)\"\r\n styleClass=\"p-0 flex justify-content-center border-none\"\r\n >\r\n @if(!actionPai.icon.includes('pi-')) {\r\n <span class=\"material-icons text-xl\" style=\"font-size: 25px\">{{\r\n actionPai.icon\r\n }}</span>\r\n }\r\n </p-button>\r\n } }\r\n </div>\r\n }\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"config.columns.length + 1\"\r\n style=\"text-align: center\"\r\n >\r\n {{ textoEmptyMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n</div>\r\n", styles: ["::ng-deep .p-treetable .p-treetable-tbody>tr>td{padding:.4rem}::ng-deep .p-treetable .p-treetable-header{padding:0rem}span{font-size:14px}:host ::ng-deep .p-treetable table{table-layout:auto!important}.icon-more-horiz:hover,.icon-more-horiz:focus{color:#5e5e5e;transform:scale(1.2);transition:color .3s,transform .3s}::ng-deep .p-treetable .p-treetable-thead>tr>th{background-color:#eaeaea}.tag{width:5px;height:20px;border-radius:.25rem}\n"] }]
|
|
238
|
-
}], propDecorators: { config: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], dataSource: [{
|
|
241
|
-
type: Input
|
|
242
|
-
}], gridLines: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], tableCaptalized: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], selectedItems: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], paginator: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], rows: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], treeTableDraggable: [{
|
|
253
|
-
type: Input
|
|
254
|
-
}], transferArrayItem: [{
|
|
255
|
-
type: Input
|
|
256
|
-
}], ordenacao: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], totalRecords: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], textoEmptyMessage: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], childrenRecoil: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], pageLinksOptions: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], pageLinks: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], showFirstLastIcon: [{
|
|
269
|
-
type: Input
|
|
270
|
-
}], onFilter: [{
|
|
271
|
-
type: Output
|
|
272
|
-
}], onPaginate: [{
|
|
273
|
-
type: Output
|
|
274
|
-
}], onActiveItem: [{
|
|
275
|
-
type: Output
|
|
276
|
-
}], onActiveItemLote: [{
|
|
277
|
-
type: Output
|
|
278
|
-
}], doubleClickEvent: [{
|
|
279
|
-
type: Output
|
|
280
|
-
}], onNodeSelect: [{
|
|
281
|
-
type: Output
|
|
282
|
-
}], onNodeUnselect: [{
|
|
283
|
-
type: Output
|
|
284
|
-
}], onDropItem: [{
|
|
285
|
-
type: Output
|
|
286
|
-
}], templates: [{
|
|
287
|
-
type: ContentChildren,
|
|
288
|
-
args: [TemplateDirective]
|
|
289
|
-
}], _templates: [{
|
|
290
|
-
type: Input,
|
|
291
|
-
args: ['templates']
|
|
292
|
-
}], onWindowResize: [{
|
|
293
|
-
type: HostListener,
|
|
294
|
-
args: ['window:resize', ['$event']]
|
|
295
|
-
}] } });
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdHJlZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBRUwsWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLHdDQUF3QyxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXJGLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNRSxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBS2xCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUcxQixzQkFBaUIsR0FBVyw0QkFBNEIsQ0FBQztRQUN6RCxtQkFBYyxHQUFZLElBQUksQ0FBQztRQWU5QixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsZUFB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UztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQVM2QixTQUFTO3NCQUE1QyxlQUFlO3VCQUFDLGlCQUFpQjtnQkFDZCxVQUFVO3NCQUE3QixLQUFLO3VCQUFDLFdBQVc7Z0JBR2xCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSwgVHJlZU5vZGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcclxuaW1wb3J0IHtcclxuICBWYWx1ZU9yRm4sXHJcbiAgZ2V0T3JFeGVjdXRlLFxyXG4gIG1hcFRvTWVudUl0ZW0sXHJcbn0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUva3YtbWVudWl0ZW0nO1xyXG5pbXBvcnQgeyBUYWJsZVBhZ2luYXRlIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUucGFnaW5hdGUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2FwaS9kaXJlY3RpdmVzL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRyZWVUYWJsZUNvbmZpZyB9IGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL3RyZWUtdGFibGUvdHJlZS10YWJsZS5jb25maWcnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXRyZWUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi10cmVlLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlRyZWV0YWJsZUNvbXBvbmVudCB7XHJcbiAgbWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcbiAgdGFtYW5ob1RlbGEhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IFRyZWVUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBkYXRhU291cmNlITogYW55O1xyXG4gIEBJbnB1dCgpIGdyaWRMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYmxlQ2FwdGFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbXM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRyZWVUYWJsZURyYWdnYWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRyYW5zZmVyQXJyYXlJdGVtID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3JkZW5hY2FvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyE6IG51bWJlcjtcclxuICBASW5wdXQoKSB0ZXh0b0VtcHR5TWVzc2FnZTogc3RyaW5nID0gJ05lbmh1bSByZWdpc3RybyBlbmNvbnRyYWRvJztcclxuICBASW5wdXQoKSBjaGlsZHJlblJlY29pbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIE8gdmFsb3IgZGUgcGFnZUxpbmtzIMOpIGF0cmlidcOtZG8gZGUgYWNvcmRvIGNvbSBvIHRhbWFuaG8gZGEgdGVsYSwgZXNzYSBwcm9wcmllZGFkZSBuw6NvIGVzdMOhIHNlbmRvIHV0aWxpemFkYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VMaW5rc09wdGlvbnMhOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgTyB2YWxvciBkZSBwYWdlTGlua3Mgw6kgYXRyaWJ1w61kbyBkZSBhY29yZG8gY29tIG8gdGFtYW5obyBkYSB0ZWxhLCBlc3NhIHByb3ByaWVkYWRlIG7Do28gZXN0w6Egc2VuZG8gdXRpbGl6YWRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgcGFnZUxpbmtzITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIEEgcXVhbnRpZGFkZSBkZSBwYWdpbml0b3JQYWdlSWNvbnMgw6kgYXRyaWJ1w61kbyBkZSBhY29yZG8gY29tIG8gdGFtYW5obyBkYSB0ZWxhLCBlc3NhIHByb3ByaWVkYWRlIG7Do28gZXN0w6Egc2VuZG8gdXRpbGl6YWRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2hvd0ZpcnN0TGFzdEljb24hOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KCkgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblBhZ2luYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25BY3RpdmVJdGVtTG90ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRvdWJsZUNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk5vZGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk5vZGVVbnNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uRHJvcEl0ZW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50YW1hbmhvVGVsYSA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgaWYgKHRoaXMub3JkZW5hY2FvKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuc29ydFRyZWVOb2Rlcyh0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PGFueT47XHJcbiAgQElucHV0KCd0ZW1wbGF0ZXMnKSBfdGVtcGxhdGVzITogYW55O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMudGFtYW5ob1RlbGEgPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVJdGVtKHJvd0RhdGE6IGFueSkge1xyXG4gICAgdGhpcy5vbkFjdGl2ZUl0ZW0uZW1pdChyb3dEYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVJdGVtTG90ZShyb3dEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMub25BY3RpdmVJdGVtTG90ZS5lbWl0KHJvd0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JFeGVjdXRlPFQ+KGFjdGlvbjogVmFsdWVPckZuPFQ+LCBkYXRhOiBhbnkpOiBUIHtcclxuICAgIHJldHVybiBnZXRPckV4ZWN1dGUoYWN0aW9uLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkdsb2JhbEZpbHRlcih0YWJsZTogVHJlZVRhYmxlLCBldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcclxuICAgIHRhYmxlLmZpbHRlckdsb2JhbCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLCAnY29udGFpbnMnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0ZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICBsZXQgcGFnaW5hSW5pY2lhbCA9XHJcbiAgICAgICAgKCRldmVudD8uZmlyc3QgPiAwID8gJGV2ZW50LmZpcnN0IC8gJGV2ZW50LnJvd3MgOiAkZXZlbnQuZmlyc3QpICsgMTtcclxuICAgICAgbGV0IHRlcm1vUGVzcXVpc2EgPSAnJztcclxuICAgICAgbGV0IG9yZGVuYWNhbyA9ICcnO1xyXG5cclxuICAgICAgaWYgKCRldmVudC5nbG9iYWxGaWx0ZXIpIHRlcm1vUGVzcXVpc2EgPSAkZXZlbnQuZ2xvYmFsRmlsdGVyO1xyXG5cclxuICAgICAgaWYgKCRldmVudC5zb3J0RmllbGQpXHJcbiAgICAgICAgb3JkZW5hY2FvID0gYCR7JGV2ZW50LnNvcnRGaWVsZH0gJHtcclxuICAgICAgICAgICRldmVudC5zb3J0T3JkZXIgPT09IDEgPyAnQVNDJyA6ICdERVNDJ1xyXG4gICAgICAgIH1gO1xyXG5cclxuICAgICAgY29uc3Qgb2JqZXRvOiBUYWJsZVBhZ2luYXRlID0ge1xyXG4gICAgICAgIHBhZ2luYUluaWNpYWw6IHBhZ2luYUluaWNpYWwsXHJcbiAgICAgICAgdGFtYW5ob1BhZ2luYTogJGV2ZW50LnJvd3MsXHJcbiAgICAgICAgdGVybW9QZXNxdWlzYTogdGVybW9QZXNxdWlzYSxcclxuICAgICAgICBvcmRlbmFjYW86IG9yZGVuYWNhbyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMub25QYWdpbmF0ZS5lbWl0KG9iamV0byk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KSB7XHJcbiAgICBjb25zdCBkcmFnZ2VkTm9kZSA9IGV2ZW50Lml0ZW0uZGF0YTtcclxuICAgIGNvbnN0IGRyYWdnZWRDaGlsZERhdGEgPSBkcmFnZ2VkTm9kZS5ub2RlLmRhdGE7XHJcblxyXG4gICAgaWYgKGRyYWdnZWROb2RlLmxldmVsID09PSAwKSB7XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmRhdGFTb3VyY2UsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9IGVsc2UgaWYgKGRyYWdnZWROb2RlLmxldmVsID49IDEpIHtcclxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IGRyYWdnZWROb2RlLm5vZGUucGFyZW50O1xyXG5cclxuICAgICAgaWYgKHBhcmVudE5vZGUpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnRDaGlsZHJlbiA9IHBhcmVudE5vZGUuY2hpbGRyZW4ubWFwKFxyXG4gICAgICAgICAgKGNoaWxkOiBhbnkpID0+IGNoaWxkLmRhdGFcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzQ2hpbGRJbmRleCA9IHBhcmVudENoaWxkcmVuLmluZGV4T2YoZHJhZ2dlZENoaWxkRGF0YSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlbGF0aXZlQ3VycmVudEluZGV4ID1cclxuICAgICAgICAgIHByZXZpb3VzQ2hpbGRJbmRleCArIChldmVudC5jdXJyZW50SW5kZXggLSBldmVudC5wcmV2aW91c0luZGV4KTtcclxuXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q2hpbGRJbmRleCA9IE1hdGgubWF4KFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIE1hdGgubWluKHBhcmVudENoaWxkcmVuLmxlbmd0aCAtIDEsIHJlbGF0aXZlQ3VycmVudEluZGV4KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChwcmV2aW91c0NoaWxkSW5kZXggIT09IC0xICYmIHRhcmdldENoaWxkSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoXHJcbiAgICAgICAgICAgIHBhcmVudE5vZGUuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIHByZXZpb3VzQ2hpbGRJbmRleCxcclxuICAgICAgICAgICAgdGFyZ2V0Q2hpbGRJbmRleFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZHJvcEluZm86IGFueSA9IHtcclxuICAgICAgICAgIHByZXZpb3VzQ2hpbGRJbmRleDogcHJldmlvdXNDaGlsZEluZGV4ICsgMSxcclxuICAgICAgICAgIHRhcmdldENoaWxkSW5kZXg6IHRhcmdldENoaWxkSW5kZXggKyAxLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMub25Ecm9wSXRlbS5lbWl0KHsgZXZlbnQ6IGV2ZW50LCBkcm9wQ2hpbGRJbmZvOiBkcm9wSW5mbyB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IFsuLi50aGlzLmRhdGFTb3VyY2VdO1xyXG4gICAgaWYgKGRyYWdnZWROb2RlLmxldmVsID09PSAwKSB7XHJcbiAgICAgIHRoaXMub25Ecm9wSXRlbS5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnRUcmVlTm9kZXMobm9kZXM6IFRyZWVOb2RlW10pOiBUcmVlTm9kZVtdIHtcclxuICAgIHJldHVybiBub2Rlc1xyXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5kYXRhW3RoaXMub3JkZW5hY2FvXSAtIGIuZGF0YVt0aGlzLm9yZGVuYWNhb10pXHJcbiAgICAgIC5tYXAoKG5vZGUpID0+IHtcclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHRoaXMuc29ydFRyZWVOb2Rlcyhub2RlLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlVGFyZ2V0Q2hpbGRJbmRleChcclxuICAgIGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+LFxyXG4gICAgcGFyZW50Q2hpbGRyZW46IGFueVtdLFxyXG4gICAgcHJldmlvdXNDaGlsZEluZGV4OiBudW1iZXJcclxuICApOiBudW1iZXIge1xyXG4gICAgY29uc3QgdGFyZ2V0Q2hpbGRJbmRleCA9XHJcbiAgICAgIHByZXZpb3VzQ2hpbGRJbmRleCArIChldmVudC5jdXJyZW50SW5kZXggLSBldmVudC5wcmV2aW91c0luZGV4KTtcclxuXHJcbiAgICBpZiAodGFyZ2V0Q2hpbGRJbmRleCA8IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9IGVsc2UgaWYgKHRhcmdldENoaWxkSW5kZXggPj0gcGFyZW50Q2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBwYXJlbnRDaGlsZHJlbi5sZW5ndGggLSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRhcmdldENoaWxkSW5kZXg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5TdHlsZVJvdyhjb2w6IGFueSwgcm93Tm9kZTogYW55KTogc3RyaW5nIHtcclxuICAvLyAgIGNvbnN0IGlzRmlyc3RDb2x1bW4gPSBjb2wuZmllbGQgPT09IHRoaXMuY29uZmlnLmNvbHVtbnNbMF0uZmllbGQ7XHJcbiAgLy8gICBjb25zdCBiYXNlT3BhY2l0eSA9IDE7XHJcbiAgLy8gICBjb25zdCBtYXhMZXZlbHMgPSA0O1xyXG5cclxuICAvLyAgIGlmIChpc0ZpcnN0Q29sdW1uICYmIHJvd05vZGUubGV2ZWwgPj0gMCkge1xyXG4gIC8vICAgICBjb25zdCBvcGFjaXR5ID0gYmFzZU9wYWNpdHkgLSAocm93Tm9kZS5sZXZlbCAvIG1heExldmVscyk7XHJcblxyXG4gIC8vICAgICByZXR1cm4gYGJvcmRlci1sZWZ0OiBzb2xpZCA0cHggcmdiYSg1OSwgMTEwLCAxNTgsICR7IG9wYWNpdHkgfSkgIWltcG9ydGFudDtgO1xyXG4gIC8vICAgfVxyXG5cclxuICAvLyAgIGlmIChyb3dOb2RlLmxldmVsID09IDApXHJcbiAgLy8gICAgIHJldHVybiAnYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDsgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQnXHJcblxyXG4gIC8vICAgcmV0dXJuICcnO1xyXG4gIC8vIH1cclxuXHJcbiAgYWxpZ25Db2x1bmFzSGVhZGVyKGNvbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChjb2wuYWxpZ24pIHtcclxuICAgICAgaWYgKGNvbC5hbGlnbiA9PSAncmlnaHQnKSByZXR1cm4gJ2p1c3RpZnktY29udGVudDogZW5kJztcclxuICAgICAgZWxzZSByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2UgcmV0dXJuICcnO1xyXG4gIH1cclxuICBjZW50cmFsaXphckNvbHVuYXMoY29sOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKGNvbC5jZW50cmFsaXplKSB7XHJcbiAgICAgIHJldHVybiAndGV4dC1hbGlnbjogY2VudGVyOyAnO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcbiAgYWxpZ25Db2x1bmFzKGNvbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChjb2wuYWxpZ24pIHtcclxuICAgICAgcmV0dXJuIGB0ZXh0LWFsaWduOiAke2NvbC5hbGlnbn1gO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNyaWFyTWVudXNNb2RhbChkYXRhOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5hY3Rpb25zICYmIGRhdGEpIHtcclxuICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5jb25maWcuYWN0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IG1lbnVJbnNlcnQgPSBtYXBUb01lbnVJdGVtKGFjdGlvbiwgZGF0YSk7XHJcblxyXG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5tZW51SXRlbXMuZmlsdGVyKFxyXG4gICAgICAgICAgKHgpID0+IHguY29tbWFuZCA9PSBtZW51SW5zZXJ0LmNvbW1hbmRcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5sZW5ndGggPT0gMCkgdGhpcy5tZW51SXRlbXMucHVzaChtZW51SW5zZXJ0KTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChtZW51SW5zZXJ0LmxhYmVsICE9IGl0ZW1bMF0ubGFiZWwpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5tZW51SXRlbXMuaW5kZXhPZihpdGVtWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobWVudUluc2VydC52aXNpYmxlICE9IGl0ZW1bMF0udmlzaWJsZSkge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLm1lbnVJdGVtcy5pbmRleE9mKGl0ZW1bMF0pO1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChtZW51SW5zZXJ0LmRpc2FibGVkICE9IGl0ZW1bMF0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5tZW51SXRlbXMuaW5kZXhPZihpdGVtWzBdKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4aWJpckNhbXBvKGZpZWxkOiBhbnksIHJvd0RhdGE6IGFueSkge1xyXG4gICAgbGV0IHZpc2libGUgPSBmaWVsZC52aXNpYmxlID8gZmllbGQudmlzaWJsZShyb3dEYXRhKSA6IHRydWU7XHJcbiAgICByZXR1cm4gdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQWN0aW9uUG9zaXRpb24ocm93Tm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5jb25maWcuYWN0aW9uc1BhaSAmJiByb3dOb2RlLmxldmVsID09IDApIHJldHVybiBmYWxzZTtcclxuICAgIGVsc2UgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBkb3VibGVDbGljayhlOiBhbnksIHJvd0RhdGE6IGFueSkge1xyXG4gICAgbGV0IGV2ZW50RG91YmxlQ2xpY2sgPSB7IGV2ZW50OiBlLCByb3dEYXRhOiByb3dEYXRhIH07XHJcblxyXG4gICAgbGV0IGFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZS50YXJnZXQuY2xhc3NMaXN0LmZvckVhY2goKHg6IGFueSkgPT4gYXJyYXkucHVzaCh4KSk7XHJcblxyXG4gICAgLy8gaWYgKGFycmF5LmZpbmQoKHg6IGFueSkgPT4geCA9PSAnbmctc3Rhci1pbnNlcnRlZCcpICE9IHVuZGVmaW5lZClcclxuICAgIHRoaXMuZG91YmxlQ2xpY2tFdmVudC5lbWl0KGV2ZW50RG91YmxlQ2xpY2spO1xyXG4gIH1cclxuXHJcbiAgaXNEaXNhYmxlZENoZWNrYm94KHJvd0RhdGE6IGFueSwgcm93Tm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGlzYWJsZUNvbnRyb2xDaGVja2JveEZ1bmN0aW9uXHJcbiAgICAgID8gdGhpcy5jb25maWcuZGlzYWJsZUNvbnRyb2xDaGVja2JveEZ1bmN0aW9uKHJvd0RhdGEsIHJvd05vZGUpXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTm9kZVNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uTm9kZVVuc2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk5vZGVVbnNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGdldEN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlbmFtZTogc3RyaW5nKTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVzW3RlbXBsYXRlbmFtZV07XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVNob3dUZW1wbGF0ZShyb3dOb2RlOiBhbnksIGNvbDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY29sLnRlbXBsYXRlT25seSkge1xyXG4gICAgICBpZiAoY29sLnRlbXBsYXRlT25seSA9PT0gJ3BhaScpIHtcclxuICAgICAgICByZXR1cm4gcm93Tm9kZS5sZXZlbCA9PT0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29sLnRlbXBsYXRlT25seSA9PT0gJ2ZpbGhvJykge1xyXG4gICAgICAgIHJldHVybiByb3dOb2RlLmxldmVsID09PSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldEljb24oaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpY29uLmluY2x1ZGVzKCdwaS0nKSA/IGBwaSAke2ljb259YCA6ICcnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIXRyZWVUYWJsZURyYWdnYWJsZVwiPlxyXG4gIDxwLXRyZWVUYWJsZVxyXG4gICAgI3R0XHJcbiAgICBbdmFsdWVdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiXHJcbiAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgIFt0YWJsZVN0eWxlXT1cInsgJ21pbi13aWR0aCc6ICc1MHJlbScgfVwiXHJcbiAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbNSwgMTAsIDI1LCA1MF1cIlxyXG4gICAgW3Nob3dGaXJzdExhc3RJY29uXT1cInRhbWFuaG9UZWxhID4gOTYwID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgIFtwYWdlTGlua3NdPVwidGFtYW5ob1RlbGEgPiA5NjAgPyAyIDogMVwiXHJcbiAgICBbc3R5bGVDbGFzc109XCJncmlkTGluZXMgPyAncC10cmVldGFibGUtZ3JpZGxpbmVzJyA6ICcnXCJcclxuICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgIFtsYXp5XT1cImNvbmZpZy5sYXp5XCJcclxuICAgIChvbkxhenlMb2FkKT1cInBhZ2luYXRlKCRldmVudClcIlxyXG4gICAgKG9uTm9kZVNlbGVjdCk9XCJvbk5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIChvbk5vZGVVbnNlbGVjdCk9XCJvbk5vZGVVbnNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuICAgIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJ7Zmlyc3R9IC0ge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9XCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiICpuZ0lmPVwiY29uZmlnLmVuYWJsZUNhdGlvblwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ3JpZCBmb3JtZ3JpZCBwLWZsdWlkIGNvbC0xMiBtLTBcIlxyXG4gICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcudGl0bGVcIiBjbGFzcz1cInRleHQtbWQgZm9udC1ib2xkIG15LTNcIj5cclxuICAgICAgICAgICAge3sgY29uZmlnLnRpdGxlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuc3VidGl0bGVcIiBjbGFzcz1cInRleHQtc20gbWItNCBmb250LW1lZGl1bVwiPlxyXG4gICAgICAgICAgICB7eyBjb25maWcuc3VidGl0bGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGNvbC0xMCBwLTAgbWQ6Y29sLTYgbGc6Y29sLTQganVzdGlmeS1jb250ZW50LWNlbnRlciB7e1xyXG4gICAgICAgICAgICB0YW1hbmhvVGVsYSA8IDc2OCA/ICcnIDogJ2lucHV0LXNlYXJjaCdcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5lbmFibGVGaWx0ZXJcIiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxyXG5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgIHBBdXRvRm9jdXNcclxuICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAoaW5wdXQpPVwib25HbG9iYWxGaWx0ZXIodHQsICRldmVudClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUGVzcXVpc2FyLi4uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImgtMnJlbVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGNvbC0xIGp1c3RpZnktY29udGVudC1lbmQgcC0wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMiBidG5zLW9wdGlvbnNcIj5cclxuICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGNvbmZpZy5hY3Rpb25zTG90ZTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oYWN0aW9uLmljb24pXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCB8fCBhY3Rpb24uc2hvd0Fjb2VzTG90ZSkgJiZcclxuICAgICAgICAgICAgICAgIGV4aWJpckNhbXBvKGFjdGlvbiwgdGhpcy5hY3Rpb24pXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC0wIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBib3JkZXItbm9uZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiJyMxREE3NTAnXCJcclxuICAgICAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24/LmNvbW1hbmQoKTsgYWN0aXZlSXRlbUxvdGUoc2VsZWN0ZWRJdGVtcylcIlxyXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJnZXRPckV4ZWN1dGUoYWN0aW9uLnRvb2x0aXAsIHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20nXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0T3JFeGVjdXRlKGFjdGlvbi5kaXNhYmxlZCwgc2VsZWN0ZWRJdGVtcylcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzJyZW0nLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMnJlbScsXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMWRhNzUwJ1xyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgQGlmICghYWN0aW9uLmljb24uaW5jbHVkZXMoJ3BpLScpKXtcclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyNXB4OyBjb2xvcjogd2hpdGVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IGdldE9yRXhlY3V0ZShhY3Rpb24uaWNvbiwgc2VsZWN0ZWRJdGVtcykgfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIEBmb3IoY29sIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCl7XHJcbiAgICAgICAgPHRoXHJcbiAgICAgICAgICBbdHRTb3J0YWJsZUNvbHVtbl09XCJjb2wuZmllbGRcIlxyXG4gICAgICAgICAgW3R0U29ydGFibGVDb2x1bW5EaXNhYmxlZF09XCJjb2wuc29ydGFibGUgPT09IGZhbHNlXCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1zbVwiXHJcbiAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sLndpZHRoXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgZmxleDogJGluZGV4ID09IDAsICdnYXAtMyc6ICRpbmRleCA9PSAwIH1cIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiJGluZGV4ID09IDAgJiYgY29uZmlnLmVuYWJsZVNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtdHJlZVRhYmxlSGVhZGVyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgICAgICAgICAgY2VudHJhbGl6YXJDb2x1bmFzKGNvbCkgJiYgYWxpZ25Db2x1bmFzSGVhZGVyKGNvbCkgPT0gJydcclxuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgOiAnZmxleCBmbGV4LXJvdydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGVdPVwiYWxpZ25Db2x1bmFzSGVhZGVyKGNvbClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbC5oZWFkZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8cC1zb3J0SWNvblxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5zb3J0YWJsZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtmaWVsZF09XCJjb2wuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMTBweFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sLmhlYWRlclRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiY29sLmhlYWRlclRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICA+aW5mbzwvc3BhblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgQGlmIChjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwKSB7XHJcbiAgICAgICAgPHRoIFtzdHlsZS53aWR0aF09XCI1XCI+PC90aD5cclxuICAgICAgICB9IH1cclxuICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgQGZvciAoY29sIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDx0aFxyXG4gICAgICAgICAgdHRSZXNpemFibGVDb2x1bW5cclxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGhcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cImNvbC5jZW50cmFsaXplID8gJ3RleHQtYWxpZ246IGNlbnRlcjsnIDogJydcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX0gPGJyIC8+XHJcbiAgICAgICAgPC90aD5cclxuICAgICAgICB9IEBpZiAoY29uZmlnLmFjdGlvbnM/Lmxlbmd0aCA/PyAwID4gMCkge1xyXG4gICAgICAgIDx0aCBbc3R5bGUud2lkdGhdPVwiNVwiPjwvdGg+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgcFRlbXBsYXRlPVwiYm9keVwiXHJcbiAgICAgIGxldC1yb3dOb2RlXHJcbiAgICAgIGxldC1yb3dEYXRhPVwicm93RGF0YVwiXHJcbiAgICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXHJcbiAgICA+XHJcbiAgICAgIDx0clxyXG4gICAgICAgIFt0dFJvd109XCJyb3dOb2RlXCJcclxuICAgICAgICAoZGJsY2xpY2spPVwiZG91YmxlQ2xpY2soJGV2ZW50LCByb3dEYXRhKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBjYXBpdGFsaXplOiB0YWJsZUNhcHRhbGl6ZWQgfVwiXHJcbiAgICAgID5cclxuICAgICAgICBAZm9yKGNvbCBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgW3N0eWxlLnBvc2l0aW9uXT1cInJvd05vZGUubGV2ZWwgIT09IDAgPyAnc3RpY2t5JyA6IG51bGxcIlxyXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiXHJcbiAgICAgICAgICAgIGNoaWxkcmVuUmVjb2lsICYmIHJvd05vZGUubGV2ZWwgIT09IDAgPyByb3dOb2RlLmxldmVsICogMzAgOiBudWxsXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgW3N0eWxlLmJvcmRlclJpZ2h0XT1cInJvd05vZGUubGV2ZWwgPT09IDAgPyAnbm9uZScgOiAnJ1wiXHJcbiAgICAgICAgICBbc3R5bGUuYm9yZGVyTGVmdF09XCJcclxuICAgICAgICAgICAgcm93Tm9kZS5sZXZlbCA9PT0gMCAmJiBjb2wuZmllbGQgIT0gY29uZmlnLmNvbHVtbnNbMF0uZmllbGRcclxuICAgICAgICAgICAgICA/ICdub25lJ1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgIHt7XHJcbiAgICAgICAgICAgICAgY29sLmNlbnRyYWxpemUgPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnJ1xyXG4gICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbC1oLWZ1bGwgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiJGluZGV4ID09IDBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHAtdHJlZVRhYmxlVG9nZ2xlciBjbGFzcz1cImhpZGRlblZpc2libGVcIiBbcm93Tm9kZV09XCJyb3dOb2RlXCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgPHAtdHJlZVRhYmxlQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkQ2hlY2tib3gocm93RGF0YSwgcm93Tm9kZSlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3dOb2RlXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmVuYWJsZVNlbGVjdCA9PSB0cnVlXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmKGNvbC50YWdDb2xvcikge1xyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICBjb2wudG9vbHRpcFRhZyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbC50b29sdGlwVGFnKHJvd0RhdGEsIGNvbCwgcm93RGF0YVtjb2wuZmllbGRdKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcclxuICAgICAgICAgICAgICAgICAgICBjb2wudGFnQ29sb3Iocm93RGF0YSwgY29sLCByb3dEYXRhW2NvbC5maWVsZF0pXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuYm9vbGVhblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGkge3tcclxuICAgICAgICAgICAgICAgICAgICByb3dEYXRhW2NvbC5maWVsZF0gPyAncGktY2hlY2sgdGV4dC1ncmVlbi0zMDAnIDogJydcclxuICAgICAgICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMS4xcmVtXCJcclxuICAgICAgICAgICAgICAgID48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW5cIiAqbmdJZj1cIiFjb2wuYm9vbGVhblwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tMFwiPnt7IHJvd0RhdGFbY29sLmZpZWxkXSB9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY29sLnN1YnRpdGxlXCIgY2xhc3M9XCJtLTAgdGV4dC14cyBmb250LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcm93RGF0YVtjb2wuc3VidGl0bGVdIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sLnRlbXBsYXRlICYmIHZhbGlkYXRlU2hvd1RlbXBsYXRlKHJvd05vZGUsIGNvbClcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0Q3VzdG9tVGVtcGxhdGUoY29sLnRlbXBsYXRlLm5hbWUpXCJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnZXRDdXN0b21UZW1wbGF0ZShjb2wudGVtcGxhdGUubmFtZSlcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93RGF0YSB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICBzdHlsZT1cImJvcmRlci1sZWZ0OiBub25lOyB0ZXh0LWFsaWduOiBlbmRcIlxyXG4gICAgICAgICAgKm5nSWY9XCIoY29uZmlnLmFjdGlvbnM/Lmxlbmd0aCA/PyAwID4gMCkgfHwgY29uZmlnLmFjdGlvbnNQYWlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoY29uZmlnLmFjdGlvbnM/Lmxlbmd0aCA/PyAwID4gMCkgJiZcclxuICAgICAgICAgICAgICB2YWxpZGF0ZUFjdGlvblBvc2l0aW9uKHJvd05vZGUpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGN1cnNvci1wb2ludGVyIGljb24tbW9yZS1ob3JpelwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDI1cHhcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpOyBhY3RpdmVJdGVtKHJvd0RhdGEpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIG1vcmVfaG9yaXpcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgQGZvcihhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICB7eyBjcmlhck1lbnVzTW9kYWwocm93RGF0YSkgfX1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPHAtbWVudVxyXG4gICAgICAgICAgICAgICNtZW51XHJcbiAgICAgICAgICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJtZW51SXRlbXNcIlxyXG4gICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgID48L3AtbWVudT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIEBpZihjb25maWcuYWN0aW9uc1BhaT8ubGVuZ3RoID8/IDAgPiAwICYmIHJvd05vZGUubGV2ZWwgPT0gMCl7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGFjdGlvblBhaSBvZiBjb25maWcuYWN0aW9uc1BhaTsgdHJhY2sgJGluZGV4KSB7IEBpZlxyXG4gICAgICAgICAgICAoZ2V0T3JFeGVjdXRlKGFjdGlvblBhaS52aXNpYmxlLCByb3dEYXRhKSA/PyB0cnVlKSB7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oYWN0aW9uUGFpLmljb24pXCJcclxuICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwiYWN0aW9uUGFpLnNldmVyaXR5ID8/ICdzZWNvbmRhcnknXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcycmVtJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzJyZW0nLFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzFkYTc1MCdcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAob25DbGljayk9XCJhY3RpdmVJdGVtKHJvd0RhdGEpOyBhY3Rpb25QYWkuY29tbWFuZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC0wIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBib3JkZXItbm9uZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBAaWYoIWFjdGlvblBhaS5pY29uLmluY2x1ZGVzKCdwaS0nKSkge1xyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHRleHQteGxcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDI1cHg7IGNvbG9yOiB3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICA+e3sgYWN0aW9uUGFpLmljb24gfX08L3NwYW5cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICB9IH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNvbmZpZy5jb2x1bW5zLmxlbmd0aCArIDFcIlxyXG4gICAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHRleHRvRW1wdHlNZXNzYWdlIH19XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLXRyZWVUYWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgKm5nSWY9XCJ0cmVlVGFibGVEcmFnZ2FibGVcIlxyXG4gIGNka0Ryb3BMaXN0XHJcbiAgY2xhc3M9XCJleGFtcGxlLWxpc3RcIlxyXG4gIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuPlxyXG4gIDxwLXRyZWVUYWJsZVxyXG4gICAgI3R0XHJcbiAgICBbdmFsdWVdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiXHJcbiAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgIFt0YWJsZVN0eWxlXT1cInsgJ21pbi13aWR0aCc6ICc1MHJlbScgfVwiXHJcbiAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgW3BhZ2VMaW5rc109XCJwYWdlTGlua3NcIlxyXG4gICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbNSwgMTAsIDI1LCA1MF1cIlxyXG4gICAgW3Nob3dGaXJzdExhc3RJY29uXT1cInNob3dGaXJzdExhc3RJY29uXCJcclxuICAgIFtzdHlsZUNsYXNzXT1cImdyaWRMaW5lcyA/ICdwLXRyZWV0YWJsZS1ncmlkbGluZXMnIDogJydcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbXNcIlxyXG4gICAgW2xhenldPVwiY29uZmlnLmxhenlcIlxyXG4gICAgKG9uTGF6eUxvYWQpPVwicGFnaW5hdGUoJGV2ZW50KVwiXHJcbiAgICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie2ZpcnN0fSAtIHtsYXN0fSBkZSB7eyB0b3RhbFJlY29yZHMgfX1cIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCIgKm5nSWY9XCJjb25maWcuZW5hYmxlQ2F0aW9uXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBncmlkIGZvcm1ncmlkIHAtZmx1aWQgY29sLTEyIG0tMFwiXHJcbiAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy50aXRsZVwiIGNsYXNzPVwidGV4dC1tZCBmb250LWJvbGQgbXktM1wiPlxyXG4gICAgICAgICAgICB7eyBjb25maWcudGl0bGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdWJ0aXRsZVwiIGNsYXNzPVwidGV4dC1zbSBtYi00IGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbmZpZy5zdWJ0aXRsZSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgY29sLTEwIHAtMCBtZDpjb2wtNiBsZzpjb2wtNCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHt7XHJcbiAgICAgICAgICAgIHRhbWFuaG9UZWxhIDwgNzY4ID8gJycgOiAnaW5wdXQtc2VhcmNoJ1xyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29uZmlnLmVuYWJsZUZpbHRlclwiIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnRcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XHJcblxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xyXG4gICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJvbkdsb2JhbEZpbHRlcih0dCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQZXNxdWlzYXIuLi5cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaC0ycmVtXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgY29sLTEganVzdGlmeS1jb250ZW50LWVuZCBwLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGJ0bnMtb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNMb3RlOyB0cmFjayAkaW5kZXgpIHtcclxuXHJcbiAgICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImdldEljb24oYWN0aW9uLmljb24pXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCB8fCBhY3Rpb24uc2hvd0Fjb2VzTG90ZSkgJiZcclxuICAgICAgICAgICAgICAgIGV4aWJpckNhbXBvKGFjdGlvbiwgdGhpcy5hY3Rpb24pXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC0wIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBib3JkZXItbm9uZVwiXHJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uPy5jb21tYW5kKCk7IGFjdGl2ZUl0ZW1Mb3RlKHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiZ2V0T3JFeGVjdXRlKGFjdGlvbi50b29sdGlwLCBzZWxlY3RlZEl0ZW1zKVwiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tJ1wiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdldE9yRXhlY3V0ZShhY3Rpb24uZGlzYWJsZWQsIHNlbGVjdGVkSXRlbXMpXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcycmVtJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzJyZW0nLFxyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzFkYTc1MCdcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIEBpZiAoIWFjdGlvbi5pY29uLmluY2x1ZGVzKCdwaS0nKSl7XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtZC0yMlwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMjVweDsgY29sb3I6IHdoaXRlXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBnZXRPckV4ZWN1dGUoYWN0aW9uLmljb24sIHNlbGVjdGVkSXRlbXMpIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICBAZm9yKGNvbCBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgIDx0aFxyXG4gICAgICAgICAgW3R0U29ydGFibGVDb2x1bW5dPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgIFt0dFNvcnRhYmxlQ29sdW1uRGlzYWJsZWRdPVwiY29sLnNvcnRhYmxlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtc21cIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbC53aWR0aFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IGZsZXg6ICRpbmRleCA9PSAwLCAnZ2FwLTMnOiAkaW5kZXggPT0gMCB9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiRpbmRleCA9PSAwICYmIGNvbmZpZy5lbmFibGVTZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZUhlYWRlckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmVJdGVtTG90ZShzZWxlY3RlZEl0ZW1zKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRyYWxpemFyQ29sdW5hcyhjb2wpICYmIGFsaWduQ29sdW5hc0hlYWRlcihjb2wpID09ICcnXHJcbiAgICAgICAgICAgICAgICAgICAgPyAnZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xyXG4gICAgICAgICAgICAgICAgICAgIDogJ2ZsZXggZmxleC1yb3cnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImFsaWduQ29sdW5hc0hlYWRlcihjb2wpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wuaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHAtc29ydEljb25cclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2wuc29ydGFibGUgPT09IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZmllbGRdPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEwcHhcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5oZWFkZXJUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImNvbC5oZWFkZXJUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgPmluZm88L3NwYW5cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIH1cclxuICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgQGZvciAoY29sIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDx0aFxyXG4gICAgICAgICAgdHRSZXNpemFibGVDb2x1bW5cclxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGhcIlxyXG4gICAgICAgICAgW3N0eWxlXT1cImNvbC5jZW50cmFsaXplID8gJ3RleHQtYWxpZ246IGNlbnRlcjsnIDogJydcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX0gPGJyIC8+XHJcbiAgICAgICAgPC90aD5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHRoIFtzdHlsZS53aWR0aF09XCI1XCI+PC90aD5cclxuICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgIHBUZW1wbGF0ZT1cImJvZHlcIlxyXG4gICAgICBsZXQtcm93Tm9kZVxyXG4gICAgICBsZXQtcm93RGF0YT1cInJvd0RhdGFcIlxyXG4gICAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxyXG4gICAgPlxyXG4gICAgICA8dHJcclxuICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgW2Nka0RyYWdEYXRhXT1cInJvd05vZGVcIlxyXG4gICAgICAgIFt0dFJvd109XCJyb3dOb2RlXCJcclxuICAgICAgICAoZGJsY2xpY2spPVwiZG91YmxlQ2xpY2soJGV2ZW50LCByb3dEYXRhKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBjYXBpdGFsaXplOiB0YWJsZUNhcHRhbGl6ZWQgfVwiXHJcbiAgICAgID5cclxuICAgICAgICBAZm9yKGNvbCBvZiBjb2x1bW5zOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgW3N0eWxlLnBvc2l0aW9uXT1cInJvd05vZGUubGV2ZWwgIT09IDAgPyAnc3RpY2t5JyA6IG51bGxcIlxyXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiXHJcbiAgICAgICAgICAgIGNoaWxkcmVuUmVjb2lsICYmIHJvd05vZGUubGV2ZWwgIT09IDAgPyByb3dOb2RlLmxldmVsICogMzAgOiBudWxsXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93ICB7e1xyXG4gICAgICAgICAgICAgIGNvbC5jZW50cmFsaXplID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInIDogJydcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwtaC1mdWxsIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiRpbmRleCA9PSAwXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXIgY2xhc3M9XCJoaWRkZW5WaXNpYmxlXCIgW3Jvd05vZGVdPVwicm93Tm9kZVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxwLXRyZWVUYWJsZUNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZENoZWNrYm94KHJvd0RhdGEsIHJvd05vZGUpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmVJdGVtTG90ZShzZWxlY3RlZEl0ZW1zKVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicm93Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTZWxlY3QgPT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEBpZihjb2wudGFnQ29sb3IpIHtcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWdcIlxyXG4gICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sLnRvb2x0aXBUYWcgJiZcclxuICAgICAgICAgICAgICAgICAgICBjb2wudG9vbHRpcFRhZyhyb3dEYXRhLCBjb2wsIHJvd0RhdGFbY29sLmZpZWxkXSlcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sLnRhZ0NvbG9yKHJvd0RhdGEsIGNvbCwgcm93RGF0YVtjb2wuZmllbGRdKVxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbC5ib29sZWFuXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaSB7e1xyXG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGFbY29sLmZpZWxkXSA/ICdwaS1jaGVjayB0ZXh0LWdyZWVuLTMwMCcgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxLjFyZW1cIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiIWNvbC5ib29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS0wXCI+e3sgcm93RGF0YVtjb2wuZmllbGRdIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjb2wuc3VidGl0bGVcIiBjbGFzcz1cIm0tMCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyByb3dEYXRhW2NvbC5zdWJ0aXRsZV0gfX1cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2wudGVtcGxhdGUgJiYgdmFsaWRhdGVTaG93VGVtcGxhdGUocm93Tm9kZSwgY29sKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJnZXRDdXN0b21UZW1wbGF0ZShjb2wudGVtcGxhdGUubmFtZSlcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEN1c3RvbVRlbXBsYXRlKGNvbC50ZW1wbGF0ZS5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3dEYXRhIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8dGRcclxuICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IG5vbmU7IHRleHQtYWxpZ246IGVuZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIihjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwKSB8fCBjb25maWcuYWN0aW9uc1BhaVwiXHJcbiAgICAgICAgICBbc3R5bGUuYm9yZGVyUmlnaHRdPVwicm93Tm9kZS5sZXZlbCA9PT0gMCA/ICdub25lJyA6ICcnXCJcclxuICAgICAgICAgIFtzdHlsZS5ib3JkZXJMZWZ0XT1cInJvd05vZGUubGV2ZWwgPT09IDAgPyAnbm9uZScgOiAnJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIChjb25maWcuYWN0aW9ucz8ubGVuZ3RoID8/IDAgPiAwKSAmJlxyXG4gICAgICAgICAgICAgIHZhbGlkYXRlQWN0aW9uUG9zaXRpb24ocm93Tm9kZSlcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgY3Vyc29yLXBvaW50ZXIgaWNvbi1tb3JlLWhvcml6XCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMjVweFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudCk7IGFjdGl2ZUl0ZW0ocm93RGF0YSlcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgbW9yZV9ob3JpelxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICBAZm9yKGFjdGlvbiBvZiBjb25maWcuYWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIHt7IGNyaWFyTWVudXNNb2RhbChyb3dEYXRhKSB9fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgI21lbnVcclxuICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cIm1lbnVJdGVtc1wiXHJcbiAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgPjwvcC1tZW51PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgQGlmKGNvbmZpZy5hY3Rpb25zUGFpPy5sZW5ndGggPz8gMCA+IDAgJiYgcm93Tm9kZS5sZXZlbCA9PSAwKXtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgQGZvciAoYWN0aW9uUGFpIG9mIGNvbmZpZy5hY3Rpb25zUGFpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgQGlmKGdldE9yRXhlY3V0ZShhY3Rpb25QYWkudmlzaWJsZSwgcm93RGF0YSkgPz8gdHJ1ZSkge1xyXG4gICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRJY29uKGFjdGlvblBhaS5pY29uKVwiXHJcbiAgICAgICAgICAgICAgW3NldmVyaXR5XT1cImFjdGlvblBhaS5zZXZlcml0eSA/PyAnc2Vjb25kYXJ5J1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgd2lkdGg6ICcycmVtJywgaGVpZ2h0OiAnMnJlbScgfVwiXHJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aXZlSXRlbShyb3dEYXRhKTsgYWN0aW9uUGFpLmNvbW1hbmQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtMCBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYm9yZGVyLW5vbmVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgQGlmKCFhY3Rpb25QYWkuaWNvbi5pbmNsdWRlcygncGktJykpIHtcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHRleHQteGxcIiBzdHlsZT1cImZvbnQtc2l6ZTogMjVweFwiPnt7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb25QYWkuaWNvblxyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgfSB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZFxyXG4gICAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjb25maWcuY29sdW1ucy5sZW5ndGggKyAxXCJcclxuICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyB0ZXh0b0VtcHR5TWVzc2FnZSB9fVxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC10cmVlVGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { KvTreetableComponent } from './kv-tree-table.component';
|
|
4
|
-
import { PrimeNgModule } from '../../api/modules/primeng.module';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class KvTreetableModule {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableModule, declarations: [KvTreetableComponent], imports: [CommonModule,
|
|
9
|
-
PrimeNgModule], exports: [KvTreetableComponent] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableModule, imports: [CommonModule,
|
|
11
|
-
PrimeNgModule] }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTreetableModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
declarations: [
|
|
17
|
-
KvTreetableComponent
|
|
18
|
-
],
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule,
|
|
21
|
-
PrimeNgModule,
|
|
22
|
-
],
|
|
23
|
-
exports: [
|
|
24
|
-
KvTreetableComponent
|
|
25
|
-
]
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdHJlZS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFjakUsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBVjFCLG9CQUFvQixhQUdwQixZQUFZO1lBQ1osYUFBYSxhQUdiLG9CQUFvQjsrR0FHWCxpQkFBaUIsWUFQMUIsWUFBWTtZQUNaLGFBQWE7OzJGQU1KLGlCQUFpQjtrQkFaN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZUcmVldGFibGVDb21wb25lbnQgfSBmcm9tICcuL2t2LXRyZWUtdGFibGUuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vYXBpL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEt2VHJlZXRhYmxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcmltZU5nTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZUcmVldGFibGVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlRyZWV0YWJsZU1vZHVsZSB7IH1cclxuIl19
|