@updevs/components 1.0.0-alpha.9 → 1.0.0-alpha.91
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/README.md +1 -1
- package/assets/styles/_core.scss +9 -0
- package/assets/styles/_debug.scss +49 -0
- package/assets/styles/_props.scss +91 -0
- package/assets/styles/_updevs.scss +12 -0
- package/assets/styles/_utilities-marketing.scss +209 -0
- package/assets/styles/_utilities.scss +127 -92
- package/assets/styles/_variables-dark.scss +8 -6
- package/assets/styles/_variables.scss +326 -257
- package/assets/styles/helpers/_index.scss +143 -0
- package/assets/styles/layout/_core.scss +3 -2
- package/assets/styles/layout/_dark.scss +40 -35
- package/assets/styles/layout/_footer.scss +1 -1
- package/assets/styles/layout/_navbar.scss +31 -19
- package/assets/styles/layout/_page.scss +6 -5
- package/assets/styles/layout/_root.scss +26 -34
- package/assets/styles/marketing/_browser.scss +67 -0
- package/assets/styles/marketing/_core.scss +8 -0
- package/assets/styles/marketing/_hero.scss +70 -0
- package/assets/styles/marketing/_pricing.scss +111 -0
- package/assets/styles/marketing/_sections.scss +124 -0
- package/assets/styles/marketing/_shape.scss +31 -0
- package/assets/styles/mixins/_functions.scss +53 -0
- package/assets/styles/mixins/_mixins.scss +9 -9
- package/assets/styles/ui/_accordion.scss +165 -11
- package/assets/styles/ui/_alerts.scss +80 -38
- package/assets/styles/ui/_avatars.scss +36 -9
- package/assets/styles/ui/_badges.scss +47 -13
- package/assets/styles/ui/_button-group.scss +1 -1
- package/assets/styles/ui/_buttons.scss +33 -37
- package/assets/styles/ui/_calendars.scss +2 -2
- package/assets/styles/ui/_cards.scss +9 -0
- package/assets/styles/ui/_carousel.scss +1 -1
- package/assets/styles/ui/_charts.scss +1 -1
- package/assets/styles/ui/_chat.scss +38 -0
- package/assets/styles/ui/_close.scss +54 -1
- package/assets/styles/ui/_datagrid.scss +1 -1
- package/assets/styles/ui/_dropdowns.scss +3 -0
- package/assets/styles/ui/_empty.scss +0 -5
- package/assets/styles/ui/_flags.scss +2 -2
- package/assets/styles/ui/_forms.scss +33 -7
- package/assets/styles/ui/_grid.scss +1 -1
- package/assets/styles/ui/_icons.scss +1 -1
- package/assets/styles/ui/_images.scss +4 -0
- package/assets/styles/ui/_lists.scss +12 -16
- package/assets/styles/ui/_loaders.scss +1 -1
- package/assets/styles/ui/_markdown.scss +15 -4
- package/assets/styles/ui/_modals.scss +2 -2
- package/assets/styles/ui/_nav.scss +17 -3
- package/assets/styles/ui/_offcanvas.scss +2 -2
- package/assets/styles/ui/_pagination.scss +2 -0
- package/assets/styles/ui/_payments.scss +1 -1
- package/assets/styles/ui/_placeholder.scss +1 -1
- package/assets/styles/ui/_progress.scss +1 -1
- package/assets/styles/ui/_ribbons.scss +1 -0
- package/assets/styles/ui/_segmented.scss +101 -0
- package/assets/styles/ui/_signature.scss +15 -0
- package/assets/styles/ui/_social.scss +52 -0
- package/assets/styles/ui/_status.scss +1 -1
- package/assets/styles/ui/_steps.scss +5 -1
- package/assets/styles/ui/_switch-icon.scss +1 -1
- package/assets/styles/ui/_tables.scss +27 -1
- package/assets/styles/ui/_tags.scss +1 -1
- package/assets/styles/ui/_timeline.scss +1 -1
- package/assets/styles/ui/_toasts.scss +0 -1
- package/assets/styles/ui/_tracking.scss +1 -1
- package/assets/styles/ui/_type.scss +169 -8
- package/assets/styles/ui/forms/_form-check.scss +1 -1
- package/assets/styles/ui/forms/_form-colorinput.scss +1 -1
- package/assets/styles/ui/forms/_form-custom.scss +1 -1
- package/assets/styles/ui/forms/_form-imagecheck.scss +6 -5
- package/assets/styles/ui/forms/_form-selectgroup.scss +2 -2
- package/assets/styles/ui/typo/_hr.scss +4 -2
- package/assets/styles/utils/_colors.scss +72 -11
- package/assets/styles/utils/_opacity.scss +1 -1
- package/assets/styles/utils/_scroll.scss +0 -2
- package/assets/styles/utils/_sizing.scss +1 -1
- package/assets/styles/utils/_text.scss +1 -2
- package/assets/styles/vendor/_apexcharts.scss +52 -0
- package/assets/styles/vendor/_coloris.scss +72 -0
- package/assets/styles/vendor/_dropzone.scss +27 -0
- package/assets/styles/vendor/_fslightbox.scss +13 -0
- package/assets/styles/vendor/_jsvectormap.scss +47 -0
- package/assets/styles/vendor/_litepicker.scss +69 -0
- package/assets/styles/vendor/_nouislider.scss +49 -0
- package/assets/styles/vendor/_plyr.scss +3 -0
- package/assets/styles/vendor/_stars-rating.scss +22 -0
- package/assets/styles/vendor/_tom-select.scss +81 -0
- package/assets/styles/vendor/_turbo.scss +3 -0
- package/assets/styles/vendor/_typed.scss +4 -0
- package/assets/styles/vendor/_wysiwyg.scss +46 -0
- package/badge/badge-config.model.d.ts +14 -0
- package/badge/badge.component.d.ts +23 -0
- package/badge/badge.config.d.ts +12 -0
- package/badge/upd-badge.module.d.ts +8 -0
- package/button/button.component.d.ts +61 -0
- package/button/upd-button.module.d.ts +10 -0
- package/calendar/calendar.component.d.ts +63 -0
- package/calendar/models/calendar-date.model.d.ts +10 -0
- package/calendar/models/calendar-month.model.d.ts +7 -0
- package/calendar/models/calendar-selected.model.d.ts +5 -0
- package/calendar/models/calendar-year.model.d.ts +6 -0
- package/calendar/models/date-range.model.d.ts +22 -0
- package/calendar/models/enums/calendar-view.enum.d.ts +5 -0
- package/calendar/models/public-api.d.ts +7 -0
- package/calendar/services/calendar-range-strategy.service.d.ts +35 -0
- package/calendar/services/calendar-signals.service.d.ts +24 -0
- package/calendar/upd-calendar.module.d.ts +13 -0
- package/card/card.component.d.ts +54 -0
- package/card/directives/card-actions.directive.d.ts +7 -0
- package/card/directives/card-footer.directive.d.ts +7 -0
- package/card/directives/card-header.directive.d.ts +7 -0
- package/card/directives/card-image.directive.d.ts +7 -0
- package/card/public-api.d.ts +4 -0
- package/card/upd-card.module.d.ts +14 -0
- package/drag-and-drop/drag-and-drop.component.d.ts +26 -0
- package/drag-and-drop/models/drag-and-drop-column.config.d.ts +8 -0
- package/drag-and-drop/models/drag-and-drop-column.model.d.ts +10 -0
- package/drag-and-drop/models/drag-and-drop-item.d.ts +7 -0
- package/drag-and-drop/models/drag-and-drop-item.model.d.ts +13 -0
- package/drag-and-drop/models/drag-and-drop.config.d.ts +6 -0
- package/drag-and-drop/upd-drag-and-drop.module.d.ts +9 -0
- package/dropdown/dropdown.component.d.ts +80 -0
- package/dropdown/models/dropdown-action-clicked.model.d.ts +6 -0
- package/dropdown/models/dropdown-item.d.ts +25 -0
- package/dropdown/upd-dropdown.module.d.ts +12 -0
- package/esm2022/badge/badge-config.model.mjs +14 -0
- package/esm2022/badge/badge.component.mjs +48 -0
- package/esm2022/badge/badge.config.mjs +2 -0
- package/esm2022/badge/index.mjs +2 -0
- package/esm2022/badge/public-api.mjs +4 -0
- package/esm2022/badge/upd-badge.module.mjs +24 -0
- package/esm2022/badge/updevs-components-badge.mjs +5 -0
- package/esm2022/button/button.component.mjs +157 -0
- package/esm2022/button/index.mjs +2 -0
- package/esm2022/button/public-api.mjs +3 -0
- package/esm2022/button/upd-button.module.mjs +32 -0
- package/esm2022/button/updevs-components-button.mjs +5 -0
- package/esm2022/calendar/calendar.component.mjs +318 -0
- package/esm2022/calendar/index.mjs +2 -0
- package/esm2022/calendar/models/calendar-date.model.mjs +2 -0
- package/esm2022/calendar/models/calendar-month.model.mjs +2 -0
- package/esm2022/calendar/models/calendar-selected.model.mjs +2 -0
- package/esm2022/calendar/models/calendar-user-event.model.mjs +2 -0
- package/esm2022/calendar/models/calendar-year.model.mjs +2 -0
- package/esm2022/calendar/models/date-range.model.mjs +18 -0
- package/esm2022/calendar/models/enums/calendar-view.enum.mjs +7 -0
- package/esm2022/calendar/models/public-api.mjs +8 -0
- package/esm2022/calendar/public-api.mjs +6 -0
- package/esm2022/calendar/services/calendar-range-strategy.service.mjs +99 -0
- package/esm2022/calendar/services/calendar-signals.service.mjs +47 -0
- package/esm2022/calendar/services/public-api.mjs +2 -0
- package/esm2022/calendar/types/calendar-view.type.mjs +2 -0
- package/esm2022/calendar/types/public-api.mjs +2 -0
- package/esm2022/calendar/upd-calendar.module.mjs +52 -0
- package/esm2022/calendar/updevs-components-calendar.mjs +5 -0
- package/esm2022/card/card.component.mjs +136 -0
- package/esm2022/card/directives/card-actions.directive.mjs +16 -0
- package/esm2022/card/directives/card-footer.directive.mjs +16 -0
- package/esm2022/card/directives/card-header.directive.mjs +16 -0
- package/esm2022/card/directives/card-image.directive.mjs +16 -0
- package/esm2022/card/directives/public-api.mjs +5 -0
- package/esm2022/card/index.mjs +2 -0
- package/esm2022/card/public-api.mjs +5 -0
- package/esm2022/card/types/card-state.type.mjs +2 -0
- package/esm2022/card/types/card-style.type.mjs +2 -0
- package/esm2022/card/types/hover-effect.type.mjs +2 -0
- package/esm2022/card/types/public-api.mjs +6 -0
- package/esm2022/card/types/ribbon-style.type.mjs +2 -0
- package/esm2022/card/types/status-position.type.mjs +2 -0
- package/esm2022/card/upd-card.module.mjs +50 -0
- package/esm2022/card/updevs-components-card.mjs +5 -0
- package/esm2022/drag-and-drop/drag-and-drop.component.mjs +134 -0
- package/esm2022/drag-and-drop/index.mjs +2 -0
- package/esm2022/drag-and-drop/models/drag-and-drop-column.config.mjs +2 -0
- package/esm2022/drag-and-drop/models/drag-and-drop-column.model.mjs +9 -0
- package/esm2022/drag-and-drop/models/drag-and-drop-item.mjs +2 -0
- package/esm2022/drag-and-drop/models/drag-and-drop-item.model.mjs +14 -0
- package/esm2022/drag-and-drop/models/drag-and-drop.config.mjs +2 -0
- package/esm2022/drag-and-drop/models/public-api.mjs +5 -0
- package/esm2022/drag-and-drop/public-api.mjs +4 -0
- package/esm2022/drag-and-drop/upd-drag-and-drop.module.mjs +28 -0
- package/esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs +5 -0
- package/esm2022/dropdown/dropdown.component.mjs +203 -0
- package/esm2022/dropdown/index.mjs +2 -0
- package/esm2022/dropdown/models/dropdown-action-clicked.model.mjs +2 -0
- package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
- package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
- package/esm2022/dropdown/models/public-api.mjs +5 -0
- package/esm2022/dropdown/models/toolbar.type.mjs +2 -0
- package/esm2022/dropdown/public-api.mjs +4 -0
- package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
- package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
- package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +180 -0
- package/esm2022/form/form.component.mjs +180 -0
- package/esm2022/form/index.mjs +2 -0
- package/esm2022/form/models/attachment-rule.model.mjs +2 -0
- package/esm2022/form/models/button-field.model.mjs +2 -0
- package/esm2022/form/models/button-group-field.model.mjs +2 -0
- package/esm2022/form/models/checkbox-field.model.mjs +2 -0
- package/esm2022/form/models/checkbox-group-field.model.mjs +2 -0
- package/esm2022/form/models/dynamic-field.model.mjs +2 -0
- package/esm2022/form/models/enums/attachment-type.enum.mjs +15 -0
- package/esm2022/form/models/enums/dynamic-field.type.mjs +17 -0
- package/esm2022/form/models/enums/public-api.mjs +3 -0
- package/esm2022/form/models/file-upload-field.model.mjs +2 -0
- package/esm2022/form/models/form-config.mjs +2 -0
- package/esm2022/form/models/form-row.model.mjs +2 -0
- package/esm2022/form/models/form-update-on.type.mjs +2 -0
- package/esm2022/form/models/input-field.model.mjs +2 -0
- package/esm2022/form/models/masked-input-field.model.mjs +2 -0
- package/esm2022/form/models/public-api.mjs +19 -0
- package/esm2022/form/models/radio-field.model.mjs +2 -0
- package/esm2022/form/models/radio-group-field.model.mjs +2 -0
- package/esm2022/form/models/select-field.model.mjs +2 -0
- package/esm2022/form/models/single-select-field.model.mjs +2 -0
- package/esm2022/form/models/textarea-field.model.mjs +2 -0
- package/esm2022/form/models/validator-config.mjs +2 -0
- package/esm2022/form/public-api.mjs +4 -0
- package/esm2022/form/tools/errors-helper.mjs +54 -0
- package/esm2022/form/upd-form.module.mjs +84 -0
- package/esm2022/form/updevs-components-form.mjs +5 -0
- package/esm2022/form-controls/abstractions/base-control.mjs +99 -0
- package/esm2022/form-controls/abstractions/index.mjs +2 -0
- package/esm2022/form-controls/abstractions/public-api.mjs +2 -0
- package/esm2022/form-controls/abstractions/updevs-components-form-controls-abstractions.mjs +5 -0
- package/esm2022/form-controls/checkbox/checkbox.component.mjs +63 -0
- package/esm2022/form-controls/checkbox/index.mjs +2 -0
- package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
- package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +32 -0
- package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
- package/esm2022/form-controls/date-picker/date-picker.component.mjs +132 -0
- package/esm2022/form-controls/date-picker/index.mjs +2 -0
- package/esm2022/form-controls/date-picker/public-api.mjs +3 -0
- package/esm2022/form-controls/date-picker/upd-date-picker.module.mjs +40 -0
- package/esm2022/form-controls/date-picker/updevs-components-form-controls-date-picker.mjs +5 -0
- package/esm2022/form-controls/file-upload/assets/i18n/en.json +15 -0
- package/esm2022/form-controls/file-upload/assets/i18n/pt.json +15 -0
- package/esm2022/form-controls/file-upload/file-upload-changed.event.mjs +2 -0
- package/esm2022/form-controls/file-upload/file-upload.component.mjs +177 -0
- package/esm2022/form-controls/file-upload/index.mjs +2 -0
- package/esm2022/form-controls/file-upload/public-api.mjs +4 -0
- package/esm2022/form-controls/file-upload/upd-file-upload.module.mjs +48 -0
- package/esm2022/form-controls/file-upload/updevs-components-form-controls-file-upload.mjs +5 -0
- package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
- package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
- package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
- package/esm2022/form-controls/input/index.mjs +2 -0
- package/esm2022/form-controls/input/input.component.mjs +205 -0
- package/esm2022/form-controls/input/public-api.mjs +5 -0
- package/esm2022/form-controls/input/types/input.type.mjs +2 -0
- package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
- package/esm2022/form-controls/input/types/public-api.mjs +3 -0
- package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
- package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
- package/esm2022/form-controls/radio/index.mjs +2 -0
- package/esm2022/form-controls/radio/public-api.mjs +3 -0
- package/esm2022/form-controls/radio/radio.component.mjs +62 -0
- package/esm2022/form-controls/radio/upd-radio.module.mjs +32 -0
- package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
- package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +109 -0
- package/esm2022/form-controls/select/components/single/select.component.mjs +179 -0
- package/esm2022/form-controls/select/index.mjs +2 -0
- package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +246 -0
- package/esm2022/form-controls/select/models/defaults.mjs +8 -0
- package/esm2022/form-controls/select/models/public-api.mjs +4 -0
- package/esm2022/form-controls/select/models/select-item.mjs +2 -0
- package/esm2022/form-controls/select/models/types.mjs +2 -0
- package/esm2022/form-controls/select/public-api.mjs +5 -0
- package/esm2022/form-controls/select/upd-select.module.mjs +57 -0
- package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
- package/esm2022/form-controls/textarea/index.mjs +2 -0
- package/esm2022/form-controls/textarea/public-api.mjs +3 -0
- package/esm2022/form-controls/textarea/textarea.component.mjs +51 -0
- package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
- package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
- package/esm2022/form-controls/time-picker/index.mjs +2 -0
- package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
- package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
- package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
- package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +61 -0
- package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/layout/abstractions/base-page.component.mjs +23 -0
- package/esm2022/layout/abstractions/base.layout.mjs +31 -0
- package/esm2022/layout/abstractions/public-api.mjs +2 -0
- package/esm2022/layout/assets/i18n/en.json +27 -0
- package/esm2022/layout/assets/i18n/pt.json +27 -0
- package/esm2022/layout/index.mjs +2 -0
- package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +22 -0
- package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +50 -0
- package/esm2022/layout/layouts/public-api.mjs +5 -0
- package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -0
- package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +78 -0
- package/esm2022/layout/models/login-page-config.model.mjs +20 -0
- package/esm2022/layout/models/login-page.config.mjs +2 -0
- package/esm2022/layout/models/public-api.mjs +3 -0
- package/esm2022/layout/models/security-layout-config.model.mjs +10 -0
- package/esm2022/layout/models/security-layout.config.mjs +2 -0
- package/esm2022/layout/models/upd-layout-config.model.mjs +24 -0
- package/esm2022/layout/models/upd-layout.config.mjs +2 -0
- package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
- package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +73 -0
- package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
- package/esm2022/layout/pages/auth-flow/login/login.component.mjs +110 -0
- package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
- package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
- package/esm2022/layout/pages/public-api.mjs +2 -0
- package/esm2022/layout/partials/footer/footer.component.mjs +52 -0
- package/esm2022/layout/partials/footer/footer.module.mjs +28 -0
- package/esm2022/layout/partials/footer/public-api.mjs +3 -0
- package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
- package/esm2022/layout/partials/header/header.component.mjs +140 -0
- package/esm2022/layout/partials/header/header.module.mjs +40 -0
- package/esm2022/layout/partials/header/public-api.mjs +4 -0
- package/esm2022/layout/partials/page-header/page-header.component.mjs +15 -0
- package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
- package/esm2022/layout/partials/public-api.mjs +5 -0
- package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
- package/esm2022/layout/partials/sidebar/sidebar.component.mjs +234 -0
- package/esm2022/layout/public-api.mjs +8 -0
- package/esm2022/layout/services/public-api.mjs +2 -0
- package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
- package/esm2022/layout/tools/layout.constants.mjs +15 -0
- package/esm2022/layout/upd-layout.module.mjs +47 -0
- package/esm2022/layout/updevs-components-layout.mjs +5 -0
- package/esm2022/lib/index.mjs +2 -0
- package/esm2022/lib/models/public-api.mjs +2 -0
- package/esm2022/lib/models/row-column-size.mjs +2 -0
- package/esm2022/lib/public-api.mjs +5 -0
- package/esm2022/lib/tools/column-size.helper.mjs +12 -0
- package/esm2022/lib/tools/public-api.mjs +2 -0
- package/esm2022/lib/types/component-size.type.mjs +2 -0
- package/esm2022/lib/types/horizontal-vertical.type.mjs +2 -0
- package/esm2022/lib/types/public-api.mjs +4 -0
- package/esm2022/lib/types/validation-status.type.mjs +2 -0
- package/esm2022/lib/upd-components.module.mjs +14 -0
- package/esm2022/link/index.mjs +2 -0
- package/esm2022/link/link.component.mjs +51 -0
- package/esm2022/link/public-api.mjs +4 -0
- package/esm2022/link/target.type.mjs +2 -0
- package/esm2022/link/upd-link.module.mjs +24 -0
- package/esm2022/link/updevs-components-link.mjs +5 -0
- package/esm2022/list/index.mjs +2 -0
- package/esm2022/list/list.component.mjs +114 -0
- package/esm2022/list/models/badge-position.type.mjs +2 -0
- package/esm2022/list/models/list-item.mjs +2 -0
- package/esm2022/list/models/list-item.model.mjs +20 -0
- package/esm2022/list/models/public-api.mjs +3 -0
- package/esm2022/list/public-api.mjs +4 -0
- package/esm2022/list/upd-list.module.mjs +44 -0
- package/esm2022/list/updevs-components-list.mjs +5 -0
- package/esm2022/modal/components/modal-container/modal-container.component.mjs +216 -0
- package/esm2022/modal/index.mjs +2 -0
- package/esm2022/modal/models/base.modal.mjs +14 -0
- package/esm2022/modal/models/modal-config.model.mjs +20 -0
- package/esm2022/modal/models/modal-ref.mjs +2 -0
- package/esm2022/modal/models/modal.config.mjs +2 -0
- package/esm2022/modal/models/public-api.mjs +4 -0
- package/esm2022/modal/public-api.mjs +4 -0
- package/esm2022/modal/services/modal-alert.service.mjs +99 -0
- package/esm2022/modal/services/modal.service.mjs +30 -0
- package/esm2022/modal/services/public-api.mjs +3 -0
- package/esm2022/modal/types/modal-footer-style.type.mjs +2 -0
- package/esm2022/modal/types/modal-size.type.mjs +2 -0
- package/esm2022/modal/upd-modal.module.mjs +90 -0
- package/esm2022/modal/updevs-components-modal.mjs +5 -0
- package/esm2022/paginator/index.mjs +2 -0
- package/esm2022/paginator/paginator.component.mjs +66 -0
- package/esm2022/paginator/public-api.mjs +3 -0
- package/esm2022/paginator/upd-paginator.module.mjs +47 -0
- package/esm2022/paginator/updevs-components-paginator.mjs +5 -0
- package/esm2022/popover/index.mjs +2 -0
- package/esm2022/popover/popover.component.mjs +65 -0
- package/esm2022/popover/popover.directive.mjs +120 -0
- package/esm2022/popover/public-api.mjs +4 -0
- package/esm2022/popover/upd-popover.module.mjs +29 -0
- package/esm2022/popover/updevs-components-popover.mjs +5 -0
- package/esm2022/pricing/index.mjs +2 -0
- package/esm2022/pricing/models/price-item-feature.model.mjs +2 -0
- package/esm2022/pricing/models/price-item-features-group.model.mjs +2 -0
- package/esm2022/pricing/models/price-item-tag.model.mjs +2 -0
- package/esm2022/pricing/models/price-item.model.mjs +2 -0
- package/esm2022/pricing/models/public-api.mjs +5 -0
- package/esm2022/pricing/pricing-cards/pricing-cards.component.mjs +27 -0
- package/esm2022/pricing/pricing-table/pricing-table.component.mjs +57 -0
- package/esm2022/pricing/public-api.mjs +5 -0
- package/esm2022/pricing/upd-pricing.module.mjs +49 -0
- package/esm2022/pricing/updevs-components-pricing.mjs +5 -0
- package/esm2022/public-api.mjs +2 -0
- package/esm2022/table/abstractions/base-column.model.mjs +52 -0
- package/esm2022/table/abstractions/base.column.mjs +84 -0
- package/esm2022/table/abstractions/filters-operands.service.mjs +3 -0
- package/esm2022/table/abstractions/public-api.mjs +3 -0
- package/esm2022/table/components/columns/boolean-column/boolean-column.component.mjs +26 -0
- package/esm2022/table/components/columns/date-time-column/date-time-column.component.mjs +13 -0
- package/esm2022/table/components/columns/number-column/number-column.component.mjs +13 -0
- package/esm2022/table/components/columns/text-column/text-column.component.mjs +31 -0
- package/esm2022/table/components/columns-manager/columns-manager.component.mjs +36 -0
- package/esm2022/table/components/filter-row/filter-row.component.mjs +114 -0
- package/esm2022/table/components/save-search/save-search.component.mjs +72 -0
- package/esm2022/table/components/search-section/search-section.component.mjs +93 -0
- package/esm2022/table/directives/public-api.mjs +2 -0
- package/esm2022/table/directives/table-column.directive.mjs +54 -0
- package/esm2022/table/index.mjs +2 -0
- package/esm2022/table/models/columns/boolean-column.model.mjs +22 -0
- package/esm2022/table/models/columns/custom-column.model.mjs +11 -0
- package/esm2022/table/models/columns/date-time-column.model.mjs +16 -0
- package/esm2022/table/models/columns/guid-column.model.mjs +13 -0
- package/esm2022/table/models/columns/image-column.model.mjs +11 -0
- package/esm2022/table/models/columns/number-column.model.mjs +17 -0
- package/esm2022/table/models/columns/public-api.mjs +8 -0
- package/esm2022/table/models/columns/text-column.model.mjs +11 -0
- package/esm2022/table/models/enums/column-type.enum.mjs +15 -0
- package/esm2022/table/models/enums/public-api.mjs +2 -0
- package/esm2022/table/models/filter-item.model.mjs +2 -0
- package/esm2022/table/models/filter-operand.config.mjs +2 -0
- package/esm2022/table/models/operands-lists/boolean-filter-operands-list.model.mjs +25 -0
- package/esm2022/table/models/operands-lists/date-filter-operands-list.model.mjs +25 -0
- package/esm2022/table/models/operands-lists/date-or-number-operands-list.config.mjs +31 -0
- package/esm2022/table/models/operands-lists/filter-operands-list.config.mjs +31 -0
- package/esm2022/table/models/operands-lists/guid-filter-operands-list.model.mjs +16 -0
- package/esm2022/table/models/operands-lists/number-filter-operands-list.model.mjs +25 -0
- package/esm2022/table/models/operands-lists/string-filter-operands-list.model.mjs +45 -0
- package/esm2022/table/models/public-api.mjs +5 -0
- package/esm2022/table/models/saved-view.model.mjs +2 -0
- package/esm2022/table/models/table-config.model.mjs +29 -0
- package/esm2022/table/models/table.config.mjs +2 -0
- package/esm2022/table/models/upd-table-config.model.mjs +9 -0
- package/esm2022/table/models/upd-table.config.mjs +2 -0
- package/esm2022/table/public-api.mjs +6 -0
- package/esm2022/table/services/default-filters-operands.service.mjs +60 -0
- package/esm2022/table/services/storages/saved-views.storage.mjs +56 -0
- package/esm2022/table/services/stores/filters-operands.store.mjs +19 -0
- package/esm2022/table/services/upd-table-config.service.mjs +18 -0
- package/esm2022/table/table.component.mjs +439 -0
- package/esm2022/table/tools/filters.tools.mjs +54 -0
- package/esm2022/table/tools/table.constants.mjs +15 -0
- package/esm2022/table/upd-table.module.mjs +150 -0
- package/esm2022/table/updevs-components-table.mjs +5 -0
- package/esm2022/updevs-components.mjs +5 -0
- package/fesm2022/updevs-components-badge.mjs +89 -0
- package/fesm2022/updevs-components-badge.mjs.map +1 -0
- package/fesm2022/updevs-components-button.mjs +193 -0
- package/fesm2022/updevs-components-button.mjs.map +1 -0
- package/fesm2022/updevs-components-calendar.mjs +582 -0
- package/fesm2022/updevs-components-calendar.mjs.map +1 -0
- package/fesm2022/updevs-components-card.mjs +238 -0
- package/fesm2022/updevs-components-card.mjs.map +1 -0
- package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
- package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
- package/fesm2022/updevs-components-dropdown.mjs +247 -0
- package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-abstractions.mjs +106 -0
- package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-checkbox.mjs +99 -0
- package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-date-picker.mjs +175 -0
- package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-file-upload.mjs +272 -0
- package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-input.mjs +279 -0
- package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-radio.mjs +98 -0
- package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-select.mjs +588 -0
- package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-textarea.mjs +79 -0
- package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
- package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
- package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
- package/fesm2022/updevs-components-form.mjs +562 -0
- package/fesm2022/updevs-components-form.mjs.map +1 -0
- package/fesm2022/updevs-components-layout.mjs +1052 -0
- package/fesm2022/updevs-components-layout.mjs.map +1 -0
- package/fesm2022/updevs-components-link.mjs +79 -0
- package/fesm2022/updevs-components-link.mjs.map +1 -0
- package/fesm2022/updevs-components-list.mjs +212 -0
- package/fesm2022/updevs-components-list.mjs.map +1 -0
- package/fesm2022/updevs-components-modal.mjs +504 -0
- package/fesm2022/updevs-components-modal.mjs.map +1 -0
- package/fesm2022/updevs-components-paginator.mjs +160 -0
- package/fesm2022/updevs-components-paginator.mjs.map +1 -0
- package/fesm2022/updevs-components-popover.mjs +214 -0
- package/fesm2022/updevs-components-popover.mjs.map +1 -0
- package/fesm2022/updevs-components-pricing.mjs +130 -0
- package/fesm2022/updevs-components-pricing.mjs.map +1 -0
- package/fesm2022/updevs-components-table.mjs +1771 -0
- package/fesm2022/updevs-components-table.mjs.map +1 -0
- package/fesm2022/updevs-components.mjs +33 -0
- package/fesm2022/updevs-components.mjs.map +1 -0
- package/form/components/dynamic-field/dynamic-field.component.d.ts +65 -0
- package/form/form.component.d.ts +64 -0
- package/form/models/attachment-rule.model.d.ts +35 -0
- package/form/models/button-field.model.d.ts +5 -0
- package/form/models/button-group-field.model.d.ts +5 -0
- package/form/models/checkbox-field.model.d.ts +4 -0
- package/form/models/checkbox-group-field.model.d.ts +6 -0
- package/form/models/dynamic-field.model.d.ts +56 -0
- package/form/models/enums/attachment-type.enum.d.ts +13 -0
- package/form/models/enums/dynamic-field.type.d.ts +15 -0
- package/form/models/enums/public-api.d.ts +2 -0
- package/form/models/file-upload-field.model.d.ts +16 -0
- package/form/models/form-config.d.ts +2 -0
- package/form/models/form-row.model.d.ts +10 -0
- package/form/models/form-update-on.type.d.ts +1 -0
- package/form/models/input-field.model.d.ts +9 -0
- package/form/models/masked-input-field.model.d.ts +6 -0
- package/form/models/public-api.d.ts +18 -0
- package/form/models/radio-field.model.d.ts +4 -0
- package/form/models/radio-group-field.model.d.ts +6 -0
- package/form/models/select-field.model.d.ts +29 -0
- package/form/models/single-select-field.model.d.ts +4 -0
- package/form/models/textarea-field.model.d.ts +10 -0
- package/form/tools/errors-helper.d.ts +11 -0
- package/form/upd-form.module.d.ts +22 -0
- package/form-controls/abstractions/base-control.d.ts +47 -0
- package/form-controls/abstractions/index.d.ts +2 -0
- package/form-controls/abstractions/public-api.d.ts +2 -0
- package/form-controls/checkbox/checkbox.component.d.ts +21 -0
- package/form-controls/checkbox/public-api.d.ts +2 -0
- package/form-controls/checkbox/upd-checkbox.module.d.ts +10 -0
- package/form-controls/date-picker/date-picker.component.d.ts +66 -0
- package/form-controls/date-picker/upd-date-picker.module.d.ts +12 -0
- package/form-controls/file-upload/file-upload-changed.event.d.ts +4 -0
- package/form-controls/file-upload/file-upload.component.d.ts +48 -0
- package/form-controls/file-upload/public-api.d.ts +3 -0
- package/form-controls/file-upload/upd-file-upload.module.d.ts +14 -0
- package/form-controls/input/directives/input-append.directive.d.ts +7 -0
- package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
- package/form-controls/input/input.component.d.ts +69 -0
- package/form-controls/input/upd-input.module.d.ts +13 -0
- package/form-controls/radio/radio.component.d.ts +20 -0
- package/form-controls/radio/upd-radio.module.d.ts +10 -0
- package/form-controls/select/components/multiple/select-multiple.component.d.ts +31 -0
- package/form-controls/select/components/single/select.component.d.ts +35 -0
- package/form-controls/select/models/abstractions/base-select.component.d.ts +88 -0
- package/form-controls/select/models/defaults.d.ts +8 -0
- package/form-controls/select/models/public-api.d.ts +3 -0
- package/form-controls/select/models/select-item.d.ts +25 -0
- package/form-controls/select/models/types.d.ts +4 -0
- package/form-controls/select/upd-select.module.d.ts +16 -0
- package/form-controls/textarea/textarea.component.d.ts +21 -0
- package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
- package/form-controls/time-picker/time-picker.component.d.ts +78 -0
- package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
- package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
- package/index.d.ts +2 -0
- package/layout/abstractions/base-page.component.d.ts +12 -0
- package/layout/abstractions/base.layout.d.ts +15 -0
- package/layout/layouts/blank-layout/blank-layout.component.d.ts +9 -0
- package/layout/layouts/blank-layout/blank-layout.module.d.ts +15 -0
- package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +6 -0
- package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +21 -0
- package/layout/models/login-page-config.model.d.ts +46 -0
- package/layout/models/login-page.config.d.ts +44 -0
- package/layout/models/security-layout-config.model.d.ts +12 -0
- package/layout/models/security-layout.config.d.ts +10 -0
- package/layout/models/upd-layout-config.model.d.ts +48 -0
- package/layout/models/upd-layout.config.d.ts +46 -0
- package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
- package/layout/pages/auth-flow/auth-flow.module.d.ts +20 -0
- package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
- package/layout/pages/auth-flow/login/login.component.d.ts +26 -0
- package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
- package/layout/partials/footer/footer.component.d.ts +34 -0
- package/layout/partials/footer/footer.module.d.ts +9 -0
- package/layout/partials/footer/public-api.d.ts +2 -0
- package/layout/partials/header/header.component.d.ts +51 -0
- package/layout/partials/header/header.module.d.ts +12 -0
- package/layout/partials/header/public-api.d.ts +3 -0
- package/layout/partials/page-header/page-header.component.d.ts +7 -0
- package/layout/partials/sidebar/sidebar.component.d.ts +46 -0
- package/layout/services/upd-layout-config.service.d.ts +15 -0
- package/layout/tools/layout.constants.d.ts +15 -0
- package/layout/upd-layout.module.d.ts +19 -0
- package/lib/index.d.ts +2 -0
- package/lib/models/public-api.d.ts +2 -0
- package/lib/models/row-column-size.d.ts +23 -0
- package/lib/public-api.d.ts +5 -0
- package/lib/tools/column-size.helper.d.ts +6 -0
- package/lib/tools/public-api.d.ts +2 -0
- package/lib/types/component-size.type.d.ts +2 -0
- package/lib/types/horizontal-vertical.type.d.ts +2 -0
- package/lib/types/public-api.d.ts +4 -0
- package/lib/types/validation-status.type.d.ts +2 -0
- package/lib/upd-components.module.d.ts +7 -0
- package/link/link.component.d.ts +22 -0
- package/link/upd-link.module.d.ts +8 -0
- package/list/list.component.d.ts +46 -0
- package/list/models/list-item.d.ts +21 -0
- package/list/models/list-item.model.d.ts +26 -0
- package/list/upd-list.module.d.ts +13 -0
- package/modal/components/modal-container/modal-container.component.d.ts +74 -0
- package/modal/models/base.modal.d.ts +8 -0
- package/modal/models/modal-config.model.d.ts +32 -0
- package/modal/models/modal-ref.d.ts +6 -0
- package/modal/models/modal.config.d.ts +30 -0
- package/modal/services/modal-alert.service.d.ts +22 -0
- package/modal/services/modal.service.d.ts +12 -0
- package/modal/upd-modal.module.d.ts +18 -0
- package/package.json +175 -20
- package/paginator/paginator.component.d.ts +42 -0
- package/paginator/upd-paginator.module.d.ts +14 -0
- package/popover/popover.component.d.ts +22 -0
- package/popover/popover.directive.d.ts +33 -0
- package/popover/upd-popover.module.d.ts +9 -0
- package/pricing/models/price-item-feature.model.d.ts +7 -0
- package/pricing/models/price-item-features-group.model.d.ts +5 -0
- package/pricing/models/price-item-tag.model.d.ts +6 -0
- package/pricing/models/price-item.model.d.ts +22 -0
- package/pricing/models/public-api.d.ts +4 -0
- package/pricing/pricing-cards/pricing-cards.component.d.ts +12 -0
- package/pricing/pricing-table/pricing-table.component.d.ts +30 -0
- package/pricing/public-api.d.ts +4 -0
- package/pricing/upd-pricing.module.d.ts +14 -0
- package/public-api.d.ts +2 -0
- package/table/abstractions/base-column.model.d.ts +31 -0
- package/table/abstractions/base.column.d.ts +26 -0
- package/table/abstractions/filters-operands.service.d.ts +8 -0
- package/table/components/columns/boolean-column/boolean-column.component.d.ts +9 -0
- package/table/components/columns/date-time-column/date-time-column.component.d.ts +7 -0
- package/table/components/columns/number-column/number-column.component.d.ts +7 -0
- package/table/components/columns/text-column/text-column.component.d.ts +9 -0
- package/table/components/columns-manager/columns-manager.component.d.ts +15 -0
- package/table/components/filter-row/filter-row.component.d.ts +40 -0
- package/table/components/save-search/save-search.component.d.ts +17 -0
- package/table/components/search-section/search-section.component.d.ts +36 -0
- package/table/directives/table-column.directive.d.ts +14 -0
- package/table/models/columns/boolean-column.model.d.ts +15 -0
- package/table/models/columns/custom-column.model.d.ts +5 -0
- package/table/models/columns/date-time-column.model.d.ts +8 -0
- package/table/models/columns/guid-column.model.d.ts +4 -0
- package/table/models/columns/image-column.model.d.ts +6 -0
- package/table/models/columns/number-column.model.d.ts +8 -0
- package/table/models/columns/public-api.d.ts +7 -0
- package/table/models/columns/text-column.model.d.ts +6 -0
- package/table/models/enums/column-type.enum.d.ts +13 -0
- package/table/models/filter-item.model.d.ts +7 -0
- package/table/models/filter-operand.config.d.ts +9 -0
- package/table/models/operands-lists/boolean-filter-operands-list.model.d.ts +6 -0
- package/table/models/operands-lists/date-filter-operands-list.model.d.ts +6 -0
- package/table/models/operands-lists/date-or-number-operands-list.config.d.ts +5 -0
- package/table/models/operands-lists/filter-operands-list.config.d.ts +5 -0
- package/table/models/operands-lists/guid-filter-operands-list.model.d.ts +6 -0
- package/table/models/operands-lists/number-filter-operands-list.model.d.ts +6 -0
- package/table/models/operands-lists/string-filter-operands-list.model.d.ts +6 -0
- package/table/models/saved-view.model.d.ts +11 -0
- package/table/models/table-config.model.d.ts +33 -0
- package/table/models/table.config.d.ts +31 -0
- package/table/models/upd-table-config.model.d.ts +6 -0
- package/table/models/upd-table.config.d.ts +6 -0
- package/table/services/default-filters-operands.service.d.ts +17 -0
- package/table/services/storages/saved-views.storage.d.ts +19 -0
- package/table/services/stores/filters-operands.store.d.ts +11 -0
- package/table/services/upd-table-config.service.d.ts +12 -0
- package/table/table.component.d.ts +81 -0
- package/table/tools/filters.tools.d.ts +9 -0
- package/table/tools/table.constants.d.ts +15 -0
- package/table/upd-table.module.d.ts +40 -0
- package/.eslintrc.json +0 -39
- package/badge/index.ts +0 -1
- package/badge/ng-package.json +0 -6
- package/badge/src/badge-config.model.ts +0 -21
- package/badge/src/badge.component.html +0 -5
- package/badge/src/badge.component.scss +0 -1
- package/badge/src/badge.component.spec.ts +0 -21
- package/badge/src/badge.component.ts +0 -54
- package/badge/src/badge.config.ts +0 -13
- package/badge/src/upd-badge.module.ts +0 -17
- package/button/index.ts +0 -1
- package/button/ng-package.json +0 -6
- package/button/src/button.component.html +0 -45
- package/button/src/button.component.scss +0 -5
- package/button/src/button.component.spec.ts +0 -23
- package/button/src/button.component.ts +0 -176
- package/button/src/upd-button.module.ts +0 -21
- package/calendar/index.ts +0 -1
- package/calendar/ng-package.json +0 -6
- package/calendar/src/calendar.component.html +0 -34
- package/calendar/src/calendar.component.scss +0 -1
- package/calendar/src/calendar.component.spec.ts +0 -21
- package/calendar/src/calendar.component.ts +0 -290
- package/calendar/src/components/calendar-body/calendar-body.component.html +0 -75
- package/calendar/src/components/calendar-body/calendar-body.component.scss +0 -1
- package/calendar/src/components/calendar-body/calendar-body.component.spec.ts +0 -21
- package/calendar/src/components/calendar-body/calendar-body.component.ts +0 -665
- package/calendar/src/components/calendar-header/calendar-header.component.html +0 -27
- package/calendar/src/components/calendar-header/calendar-header.component.scss +0 -1
- package/calendar/src/components/calendar-header/calendar-header.component.spec.ts +0 -21
- package/calendar/src/components/calendar-header/calendar-header.component.ts +0 -175
- package/calendar/src/components/calendar-month-view/calendar-month-view.component.html +0 -19
- package/calendar/src/components/calendar-month-view/calendar-month-view.component.scss +0 -1
- package/calendar/src/components/calendar-month-view/calendar-month-view.component.spec.ts +0 -21
- package/calendar/src/components/calendar-month-view/calendar-month-view.component.ts +0 -540
- package/calendar/src/components/calendar-multi-year-view/calendar-multi-year-view.component.html +0 -1
- package/calendar/src/components/calendar-multi-year-view/calendar-multi-year-view.component.scss +0 -1
- package/calendar/src/components/calendar-multi-year-view/calendar-multi-year-view.component.spec.ts +0 -21
- package/calendar/src/components/calendar-multi-year-view/calendar-multi-year-view.component.ts +0 -19
- package/calendar/src/components/calendar-year-view/calendar-year-view.component.html +0 -1
- package/calendar/src/components/calendar-year-view/calendar-year-view.component.scss +0 -1
- package/calendar/src/components/calendar-year-view/calendar-year-view.component.spec.ts +0 -21
- package/calendar/src/components/calendar-year-view/calendar-year-view.component.ts +0 -17
- package/calendar/src/models/calendar-cell.model.ts +0 -22
- package/calendar/src/models/date-range.model.ts +0 -22
- package/calendar/src/models/public-api.ts +0 -2
- package/calendar/src/services/calendar-range-strategy.service.spec.ts +0 -16
- package/calendar/src/services/calendar-range-strategy.service.ts +0 -103
- package/calendar/src/services/calendar-signals.service.spec.ts +0 -16
- package/calendar/src/services/calendar-signals.service.ts +0 -45
- package/calendar/src/services/calendar.service.spec.ts +0 -16
- package/calendar/src/services/calendar.service.ts +0 -42
- package/calendar/src/tools/events-options.ts +0 -16
- package/calendar/src/tools/keyboard-tools.ts +0 -16
- package/calendar/src/tools/passive-listeners.ts +0 -36
- package/calendar/src/types/calendar-cell-class-function.type.ts +0 -4
- package/calendar/src/types/calendar-cell-css-classes.type.ts +0 -1
- package/calendar/src/types/modifier-key.type.ts +0 -1
- package/calendar/src/upd-calendar.module.ts +0 -48
- package/card/index.ts +0 -1
- package/card/ng-package.json +0 -6
- package/card/src/card.component.html +0 -105
- package/card/src/card.component.scss +0 -47
- package/card/src/card.component.spec.ts +0 -23
- package/card/src/card.component.ts +0 -112
- package/card/src/directives/card-actions.directive.spec.ts +0 -8
- package/card/src/directives/card-actions.directive.ts +0 -8
- package/card/src/directives/card-footer.directive.spec.ts +0 -8
- package/card/src/directives/card-footer.directive.ts +0 -8
- package/card/src/directives/card-header.directive.spec.ts +0 -8
- package/card/src/directives/card-header.directive.ts +0 -8
- package/card/src/directives/card-image.directive.spec.ts +0 -8
- package/card/src/directives/card-image.directive.ts +0 -8
- package/card/src/public-api.ts +0 -3
- package/card/src/upd-card.module.ts +0 -32
- package/drag-and-drop/index.ts +0 -1
- package/drag-and-drop/ng-package.json +0 -6
- package/drag-and-drop/src/drag-and-drop.component.html +0 -24
- package/drag-and-drop/src/drag-and-drop.component.scss +0 -4
- package/drag-and-drop/src/drag-and-drop.component.spec.ts +0 -22
- package/drag-and-drop/src/drag-and-drop.component.ts +0 -164
- package/drag-and-drop/src/models/drag-and-drop-column.config.ts +0 -10
- package/drag-and-drop/src/models/drag-and-drop-column.model.ts +0 -16
- package/drag-and-drop/src/models/drag-and-drop-item.model.ts +0 -21
- package/drag-and-drop/src/models/drag-and-drop-item.ts +0 -8
- package/drag-and-drop/src/models/drag-and-drop.config.ts +0 -7
- package/drag-and-drop/src/upd-drag-and-drop.module.ts +0 -19
- package/dropdown/index.ts +0 -1
- package/dropdown/ng-package.json +0 -6
- package/dropdown/src/dropdown.component.html +0 -70
- package/dropdown/src/dropdown.component.scss +0 -19
- package/dropdown/src/dropdown.component.spec.ts +0 -23
- package/dropdown/src/dropdown.component.ts +0 -233
- package/dropdown/src/models/dropdown-action-clicked.model.ts +0 -8
- package/dropdown/src/models/dropdown-item.ts +0 -26
- package/dropdown/src/upd-dropdown.module.ts +0 -25
- package/form/index.ts +0 -1
- package/form/ng-package.json +0 -6
- package/form/src/components/dynamic-field/dynamic-field.component.html +0 -83
- package/form/src/components/dynamic-field/dynamic-field.component.scss +0 -1
- package/form/src/components/dynamic-field/dynamic-field.component.spec.ts +0 -21
- package/form/src/components/dynamic-field/dynamic-field.component.ts +0 -102
- package/form/src/form.component.html +0 -26
- package/form/src/form.component.scss +0 -1
- package/form/src/form.component.spec.ts +0 -21
- package/form/src/form.component.ts +0 -110
- package/form/src/models/checkbox-field.model.ts +0 -5
- package/form/src/models/checkbox-group-field.model.ts +0 -8
- package/form/src/models/dynamic-field.model.ts +0 -32
- package/form/src/models/enums/dynamic-field.type.ts +0 -12
- package/form/src/models/enums/public-api.ts +0 -1
- package/form/src/models/form-config.ts +0 -3
- package/form/src/models/form-row.model.ts +0 -10
- package/form/src/models/public-api.ts +0 -5
- package/form/src/models/radio-field.model.ts +0 -5
- package/form/src/models/radio-group-field.model.ts +0 -8
- package/form/src/models/select-field.model.ts +0 -30
- package/form/src/models/single-select-field.model.ts +0 -5
- package/form/src/models/textarea-field.model.ts +0 -11
- package/form/src/tools/errors-helper.ts +0 -60
- package/form/src/upd-form.module.ts +0 -48
- package/form-controls/abstractions/index.ts +0 -1
- package/form-controls/abstractions/ng-package.json +0 -6
- package/form-controls/abstractions/src/base-control.ts +0 -34
- package/form-controls/abstractions/src/public-api.ts +0 -1
- package/form-controls/checkbox/index.ts +0 -1
- package/form-controls/checkbox/ng-package.json +0 -6
- package/form-controls/checkbox/src/checkbox.component.html +0 -34
- package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
- package/form-controls/checkbox/src/checkbox.component.ts +0 -60
- package/form-controls/checkbox/src/public-api.ts +0 -3
- package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -21
- package/form-controls/date-picker/index.ts +0 -1
- package/form-controls/date-picker/ng-package.json +0 -6
- package/form-controls/date-picker/src/date-picker.component.html +0 -36
- package/form-controls/date-picker/src/date-picker.component.scss +0 -26
- package/form-controls/date-picker/src/date-picker.component.spec.ts +0 -22
- package/form-controls/date-picker/src/date-picker.component.ts +0 -177
- package/form-controls/date-picker/src/upd-date-picker.module.ts +0 -25
- package/form-controls/input/index.ts +0 -1
- package/form-controls/input/ng-package.json +0 -6
- package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
- package/form-controls/input/src/directives/input-append.directive.ts +0 -8
- package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
- package/form-controls/input/src/directives/input-prepend.directive.ts +0 -8
- package/form-controls/input/src/input.component.html +0 -124
- package/form-controls/input/src/input.component.scss +0 -13
- package/form-controls/input/src/input.component.spec.ts +0 -23
- package/form-controls/input/src/input.component.ts +0 -161
- package/form-controls/input/src/upd-input.module.ts +0 -29
- package/form-controls/radio/index.ts +0 -1
- package/form-controls/radio/ng-package.json +0 -6
- package/form-controls/radio/src/radio.component.html +0 -35
- package/form-controls/radio/src/radio.component.scss +0 -0
- package/form-controls/radio/src/radio.component.spec.ts +0 -23
- package/form-controls/radio/src/radio.component.ts +0 -42
- package/form-controls/radio/src/upd-radio.module.ts +0 -21
- package/form-controls/select/index.ts +0 -1
- package/form-controls/select/ng-package.json +0 -6
- package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -61
- package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
- package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
- package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -80
- package/form-controls/select/src/components/shared.scss +0 -44
- package/form-controls/select/src/components/single/select.component.html +0 -118
- package/form-controls/select/src/components/single/select.component.scss +0 -3
- package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
- package/form-controls/select/src/components/single/select.component.ts +0 -75
- package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -286
- package/form-controls/select/src/models/defaults.ts +0 -9
- package/form-controls/select/src/models/public-api.ts +0 -2
- package/form-controls/select/src/models/select-item.ts +0 -26
- package/form-controls/select/src/upd-select.module.ts +0 -34
- package/form-controls/textarea/index.ts +0 -1
- package/form-controls/textarea/ng-package.json +0 -6
- package/form-controls/textarea/src/textarea.component.html +0 -13
- package/form-controls/textarea/src/textarea.component.scss +0 -0
- package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
- package/form-controls/textarea/src/textarea.component.ts +0 -45
- package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
- package/form-controls/time-picker/index.ts +0 -1
- package/form-controls/time-picker/ng-package.json +0 -6
- package/form-controls/time-picker/src/time-picker.component.html +0 -17
- package/form-controls/time-picker/src/time-picker.component.scss +0 -10
- package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
- package/form-controls/time-picker/src/time-picker.component.ts +0 -110
- package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -50
- package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
- package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
- package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
- package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
- package/jest.config.ts +0 -22
- package/layout/index.ts +0 -1
- package/layout/ng-package.json +0 -6
- package/layout/src/abstractions/base-page.component.ts +0 -16
- package/layout/src/abstractions/base.layout.ts +0 -27
- package/layout/src/assets/i18n/en.json +0 -20
- package/layout/src/assets/i18n/pt.json +0 -20
- package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
- package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
- package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
- package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
- package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
- package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -16
- package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
- package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
- package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -30
- package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -51
- package/layout/src/models/login-page-config.model.ts +0 -57
- package/layout/src/models/login-page.config.ts +0 -42
- package/layout/src/models/security-layout-config.model.ts +0 -16
- package/layout/src/models/security-layout.config.ts +0 -11
- package/layout/src/models/upd-layout-config.model.ts +0 -69
- package/layout/src/models/upd-layout.config.ts +0 -47
- package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
- package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -40
- package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
- package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
- package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
- package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
- package/layout/src/pages/auth-flow/login/login.component.html +0 -103
- package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
- package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
- package/layout/src/pages/auth-flow/login/login.component.ts +0 -97
- package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
- package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
- package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
- package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
- package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
- package/layout/src/partials/footer/footer-copyright.directive.ts +0 -6
- package/layout/src/partials/footer/footer.component.html +0 -35
- package/layout/src/partials/footer/footer.component.scss +0 -0
- package/layout/src/partials/footer/footer.component.spec.ts +0 -23
- package/layout/src/partials/footer/footer.component.ts +0 -64
- package/layout/src/partials/footer/public-api.ts +0 -2
- package/layout/src/partials/header/header.component.html +0 -173
- package/layout/src/partials/header/header.component.scss +0 -0
- package/layout/src/partials/header/header.component.spec.ts +0 -23
- package/layout/src/partials/header/header.component.ts +0 -82
- package/layout/src/partials/header/public-api.ts +0 -2
- package/layout/src/partials/page-header/page-header.component.html +0 -23
- package/layout/src/partials/page-header/page-header.component.scss +0 -0
- package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
- package/layout/src/partials/page-header/page-header.component.ts +0 -11
- package/layout/src/partials/sidebar/sidebar.component.html +0 -72
- package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
- package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
- package/layout/src/partials/sidebar/sidebar.component.ts +0 -129
- package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
- package/layout/src/services/upd-layout-config.service.ts +0 -20
- package/layout/src/tools/layout.constants.ts +0 -18
- package/layout/src/upd-layout.module.ts +0 -34
- package/link/index.ts +0 -1
- package/link/ng-package.json +0 -6
- package/link/src/link.component.html +0 -3
- package/link/src/link.component.scss +0 -3
- package/link/src/link.component.spec.ts +0 -23
- package/link/src/link.component.ts +0 -48
- package/link/src/upd-link.module.ts +0 -17
- package/list/index.ts +0 -1
- package/list/ng-package.json +0 -6
- package/list/src/list.component.html +0 -67
- package/list/src/list.component.scss +0 -22
- package/list/src/list.component.spec.ts +0 -23
- package/list/src/list.component.ts +0 -129
- package/list/src/models/list-item.model.ts +0 -36
- package/list/src/models/list-item.ts +0 -22
- package/list/src/upd-list.module.ts +0 -30
- package/modal/index.ts +0 -1
- package/modal/ng-package.json +0 -6
- package/modal/src/components/modal-container/modal-container.component.html +0 -116
- package/modal/src/components/modal-container/modal-container.component.scss +0 -1
- package/modal/src/components/modal-container/modal-container.component.spec.ts +0 -22
- package/modal/src/components/modal-container/modal-container.component.ts +0 -243
- package/modal/src/models/base.modal.ts +0 -9
- package/modal/src/models/modal-config.model.ts +0 -39
- package/modal/src/models/modal-ref.ts +0 -9
- package/modal/src/models/modal.config.ts +0 -32
- package/modal/src/services/modal-alert.service.spec.ts +0 -16
- package/modal/src/services/modal-alert.service.ts +0 -167
- package/modal/src/services/modal.service.spec.ts +0 -16
- package/modal/src/services/modal.service.ts +0 -38
- package/modal/src/upd-modal.module.ts +0 -74
- package/ng-package.json +0 -10
- package/paginator/index.ts +0 -1
- package/paginator/ng-package.json +0 -6
- package/paginator/src/paginator.component.html +0 -83
- package/paginator/src/paginator.component.scss +0 -1
- package/paginator/src/paginator.component.spec.ts +0 -21
- package/paginator/src/paginator.component.ts +0 -62
- package/paginator/src/upd-paginator.module.ts +0 -32
- package/popover/index.ts +0 -1
- package/popover/ng-package.json +0 -6
- package/popover/src/popover.component.html +0 -21
- package/popover/src/popover.component.scss +0 -8
- package/popover/src/popover.component.spec.ts +0 -23
- package/popover/src/popover.component.ts +0 -53
- package/popover/src/popover.directive.spec.ts +0 -8
- package/popover/src/popover.directive.ts +0 -125
- package/popover/src/upd-popover.module.ts +0 -20
- package/project.json +0 -40
- package/src/lib/models/public-api.ts +0 -1
- package/src/lib/models/row-column-size.ts +0 -5
- package/src/lib/public-api.ts +0 -4
- package/src/lib/tools/column-size.helper.ts +0 -19
- package/src/lib/tools/public-api.ts +0 -1
- package/src/lib/types/component-size.type.ts +0 -1
- package/src/lib/types/horizontal-vertical.type.ts +0 -1
- package/src/lib/types/public-api.ts +0 -3
- package/src/lib/types/validation-status.type.ts +0 -1
- package/src/lib/upd-components.module.ts +0 -6
- package/src/public-api.ts +0 -1
- package/src/test-setup.ts +0 -8
- package/table/index.ts +0 -1
- package/table/ng-package.json +0 -6
- package/table/src/abstractions/base-column.model.ts +0 -69
- package/table/src/abstractions/base.column.ts +0 -99
- package/table/src/abstractions/filters-operands.service.ts +0 -10
- package/table/src/components/columns/boolean-column/boolean-column.component.html +0 -15
- package/table/src/components/columns/boolean-column/boolean-column.component.scss +0 -1
- package/table/src/components/columns/boolean-column/boolean-column.component.spec.ts +0 -21
- package/table/src/components/columns/boolean-column/boolean-column.component.ts +0 -26
- package/table/src/components/columns/date-time-column/date-time-column.component.html +0 -1
- package/table/src/components/columns/date-time-column/date-time-column.component.scss +0 -1
- package/table/src/components/columns/date-time-column/date-time-column.component.spec.ts +0 -21
- package/table/src/components/columns/date-time-column/date-time-column.component.ts +0 -11
- package/table/src/components/columns/number-column/number-column.component.html +0 -1
- package/table/src/components/columns/number-column/number-column.component.scss +0 -1
- package/table/src/components/columns/number-column/number-column.component.spec.ts +0 -21
- package/table/src/components/columns/number-column/number-column.component.ts +0 -11
- package/table/src/components/columns/public-api.ts +0 -0
- package/table/src/components/columns/text-column/text-column.component.html +0 -1
- package/table/src/components/columns/text-column/text-column.component.scss +0 -1
- package/table/src/components/columns/text-column/text-column.component.spec.ts +0 -21
- package/table/src/components/columns/text-column/text-column.component.ts +0 -31
- package/table/src/components/columns-manager/columns-manager.component.html +0 -3
- package/table/src/components/columns-manager/columns-manager.component.scss +0 -1
- package/table/src/components/columns-manager/columns-manager.component.spec.ts +0 -21
- package/table/src/components/columns-manager/columns-manager.component.ts +0 -37
- package/table/src/components/filter-row/filter-row.component.html +0 -29
- package/table/src/components/filter-row/filter-row.component.scss +0 -1
- package/table/src/components/filter-row/filter-row.component.spec.ts +0 -21
- package/table/src/components/filter-row/filter-row.component.ts +0 -127
- package/table/src/components/public-api.ts +0 -0
- package/table/src/components/save-search/save-search.component.html +0 -16
- package/table/src/components/save-search/save-search.component.scss +0 -1
- package/table/src/components/save-search/save-search.component.spec.ts +0 -21
- package/table/src/components/save-search/save-search.component.ts +0 -73
- package/table/src/components/search-section/search-section.component.html +0 -37
- package/table/src/components/search-section/search-section.component.scss +0 -1
- package/table/src/components/search-section/search-section.component.spec.ts +0 -21
- package/table/src/components/search-section/search-section.component.ts +0 -111
- package/table/src/directives/table-column.directive.spec.ts +0 -8
- package/table/src/directives/table-column.directive.ts +0 -52
- package/table/src/index.ts +0 -1
- package/table/src/models/columns/boolean-column.model.ts +0 -29
- package/table/src/models/columns/date-time-column.model.ts +0 -20
- package/table/src/models/columns/guid-column.model.ts +0 -16
- package/table/src/models/columns/image-column.model.ts +0 -15
- package/table/src/models/columns/number-column.model.ts +0 -19
- package/table/src/models/columns/public-api.ts +0 -6
- package/table/src/models/columns/text-column.model.ts +0 -16
- package/table/src/models/enums/column-type.enum.ts +0 -13
- package/table/src/models/filter-item.model.ts +0 -7
- package/table/src/models/filter-operand.config.ts +0 -10
- package/table/src/models/operands-lists/boolean-filter-operands-list.model.ts +0 -29
- package/table/src/models/operands-lists/date-filter-operands-list.model.ts +0 -28
- package/table/src/models/operands-lists/date-or-number-operands-list.config.ts +0 -35
- package/table/src/models/operands-lists/filter-operands-list.config.ts +0 -35
- package/table/src/models/operands-lists/guid-filter-operands-list.model.ts +0 -19
- package/table/src/models/operands-lists/number-filter-operands-list.model.ts +0 -28
- package/table/src/models/operands-lists/string-filter-operands-list.model.ts +0 -49
- package/table/src/models/saved-view.model.ts +0 -13
- package/table/src/models/table-config.model.ts +0 -32
- package/table/src/models/table.config.ts +0 -24
- package/table/src/models/upd-table-config.model.ts +0 -12
- package/table/src/models/upd-table.config.ts +0 -7
- package/table/src/services/default-filters-operands.service.spec.ts +0 -16
- package/table/src/services/default-filters-operands.service.ts +0 -62
- package/table/src/services/storages/saved-views.storage.spec.ts +0 -16
- package/table/src/services/storages/saved-views.storage.ts +0 -76
- package/table/src/services/stores/filters-operands.store.spec.ts +0 -16
- package/table/src/services/stores/filters-operands.store.ts +0 -17
- package/table/src/services/upd-table-config.service.spec.ts +0 -16
- package/table/src/services/upd-table-config.service.ts +0 -17
- package/table/src/table.component.html +0 -155
- package/table/src/table.component.scss +0 -14
- package/table/src/table.component.spec.ts +0 -21
- package/table/src/table.component.ts +0 -434
- package/table/src/tools/filters.tools.ts +0 -67
- package/table/src/tools/table.constants.ts +0 -18
- package/table/src/upd-table.module.ts +0 -104
- package/tsconfig.json +0 -29
- package/tsconfig.lib.json +0 -18
- package/tsconfig.lib.prod.json +0 -9
- package/tsconfig.spec.json +0 -16
- /package/{form-controls/checkbox/src/checkbox.component.scss → assets/styles/marketing/_filters.scss} +0 -0
- /package/badge/{src/index.ts → index.d.ts} +0 -0
- /package/badge/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/button/{src/index.ts → index.d.ts} +0 -0
- /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/calendar/{src/index.ts → index.d.ts} +0 -0
- /package/calendar/{src/models/calendar-user-event.model.ts → models/calendar-user-event.model.d.ts} +0 -0
- /package/calendar/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/calendar/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
- /package/calendar/{src/types/calendar-view.type.ts → types/calendar-view.type.d.ts} +0 -0
- /package/calendar/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
- /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
- /package/card/{src/index.ts → index.d.ts} +0 -0
- /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
- /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
- /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
- /package/card/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
- /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
- /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
- /package/drag-and-drop/{src/index.ts → index.d.ts} +0 -0
- /package/drag-and-drop/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/drag-and-drop/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/dropdown/{src/index.ts → index.d.ts} +0 -0
- /package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +0 -0
- /package/dropdown/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/dropdown/{src/models/toolbar.type.ts → models/toolbar.type.d.ts} +0 -0
- /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/{calendar/src → esm2022/calendar}/assets/i18n/en.json +0 -0
- /package/{calendar/src → esm2022/calendar}/assets/i18n/pt.json +0 -0
- /package/{form/src → esm2022/form}/assets/i18n/en.json +0 -0
- /package/{form/src → esm2022/form}/assets/i18n/pt.json +0 -0
- /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
- /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
- /package/{list/src → esm2022/list}/assets/i18n/en.json +0 -0
- /package/{list/src → esm2022/list}/assets/i18n/pt.json +0 -0
- /package/{modal/src → esm2022/modal}/assets/i18n/en.json +0 -0
- /package/{modal/src → esm2022/modal}/assets/i18n/pt.json +0 -0
- /package/{paginator/src → esm2022/paginator}/assets/i18n/en.json +0 -0
- /package/{paginator/src → esm2022/paginator}/assets/i18n/pt.json +0 -0
- /package/{table/src → esm2022/table}/assets/i18n/en.json +0 -0
- /package/{table/src → esm2022/table}/assets/i18n/pt.json +0 -0
- /package/form/{src/index.ts → index.d.ts} +0 -0
- /package/form/{src/models/validator-config.ts → models/validator-config.d.ts} +0 -0
- /package/form/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/{abstractions/src/index.ts → checkbox/index.d.ts} +0 -0
- /package/form-controls/{checkbox/src/index.ts → date-picker/index.d.ts} +0 -0
- /package/form-controls/date-picker/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/{date-picker/src/index.ts → file-upload/index.d.ts} +0 -0
- /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
- /package/form-controls/input/{src/index.ts → index.d.ts} +0 -0
- /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
- /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
- /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
- /package/form-controls/radio/{src/index.ts → index.d.ts} +0 -0
- /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/select/{src/index.ts → index.d.ts} +0 -0
- /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/textarea/{src/index.ts → index.d.ts} +0 -0
- /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/form-controls/time-picker/{src/index.ts → index.d.ts} +0 -0
- /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
- /package/layout/{src/index.ts → index.d.ts} +0 -0
- /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
- /package/layout/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
- /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
- /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
- /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
- /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
- /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
- /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
- /package/link/{src/index.ts → index.d.ts} +0 -0
- /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
- /package/list/{src/index.ts → index.d.ts} +0 -0
- /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
- /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/modal/{src/index.ts → index.d.ts} +0 -0
- /package/modal/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/modal/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/modal/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
- /package/modal/{src/types/modal-footer-style.type.ts → types/modal-footer-style.type.d.ts} +0 -0
- /package/modal/{src/types/modal-size.type.ts → types/modal-size.type.d.ts} +0 -0
- /package/paginator/{src/index.ts → index.d.ts} +0 -0
- /package/paginator/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/popover/{src/index.ts → index.d.ts} +0 -0
- /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
- /package/{src/index.ts → pricing/index.d.ts} +0 -0
- /package/table/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
- /package/table/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
- /package/{src/lib/index.ts → table/index.d.ts} +0 -0
- /package/table/{src/models/enums/public-api.ts → models/enums/public-api.d.ts} +0 -0
- /package/table/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
- /package/table/{src/public-api.ts → public-api.d.ts} +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Component, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, RendererStyleFlags2, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { BaseComponent, PositioningService, DomEventsService } from '@updevs/sdk/layout';
|
|
3
|
+
import { DateService } from '@updevs/sdk/core';
|
|
4
|
+
import { CalendarComponent } from '@updevs/components/calendar';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@updevs/components/button";
|
|
7
|
+
import * as i2 from "@updevs/components/calendar";
|
|
8
|
+
import * as i3 from "@updevs/icons";
|
|
9
|
+
import * as i4 from "@updevs/components/form-controls/input";
|
|
10
|
+
let datepickerId = 0;
|
|
11
|
+
export class DatePickerComponent extends BaseComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.shouldCloseOnOutsideClick = true;
|
|
15
|
+
this.shouldCloseOnSelectionFinished = true;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the user is currently selecting a range of dates.
|
|
18
|
+
*/
|
|
19
|
+
this.isRange = false;
|
|
20
|
+
/**
|
|
21
|
+
* Emits the year chosen in multiyear view.
|
|
22
|
+
* This doesn't imply a change on the selected date.
|
|
23
|
+
*/
|
|
24
|
+
this.selected = new EventEmitter();
|
|
25
|
+
/**
|
|
26
|
+
* Whether the dropdown is open.
|
|
27
|
+
*/
|
|
28
|
+
this.isDropdownOpen = false;
|
|
29
|
+
this.selectedData = {};
|
|
30
|
+
this.id = `upd-datepicker-${datepickerId++}`;
|
|
31
|
+
this.dateService = inject(DateService);
|
|
32
|
+
this.domEventsService = inject(DomEventsService);
|
|
33
|
+
this.positioningService = inject(PositioningService);
|
|
34
|
+
this.ngZone = inject(NgZone);
|
|
35
|
+
this.renderer = inject(Renderer2);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The date to open the calendar to initially
|
|
39
|
+
*/
|
|
40
|
+
get startAt() {
|
|
41
|
+
// If an explicit startAt is set we start there, otherwise we start at whatever the currently selected value is.
|
|
42
|
+
return this._startAt || this.selectedData.startDate;
|
|
43
|
+
}
|
|
44
|
+
set startAt(value) {
|
|
45
|
+
this._startAt = this.dateService.getValidOrUndefined(this.dateService.deserialize(value));
|
|
46
|
+
}
|
|
47
|
+
get hasSelectedData() {
|
|
48
|
+
return !!this.selectedData.startDate || !!this.selectedData.endDate || !!this.selectedData.selectedDate;
|
|
49
|
+
}
|
|
50
|
+
get selectedDate() {
|
|
51
|
+
return !!this.selectedData.selectedDate ? this.dateService.format(this.selectedData.selectedDate) : '';
|
|
52
|
+
}
|
|
53
|
+
get startDate() {
|
|
54
|
+
return !!this.selectedData.startDate ? this.dateService.format(this.selectedData.startDate) : '';
|
|
55
|
+
}
|
|
56
|
+
get endDate() {
|
|
57
|
+
return !!this.selectedData.endDate ? this.dateService.format(this.selectedData.endDate) : '';
|
|
58
|
+
}
|
|
59
|
+
clearSelection() {
|
|
60
|
+
this.calendarComponent.clearSelection();
|
|
61
|
+
}
|
|
62
|
+
openDropdown() {
|
|
63
|
+
this.isDropdownOpen = true;
|
|
64
|
+
if (this.shouldCloseOnOutsideClick) {
|
|
65
|
+
const outsideClickSub = this.domEventsService.startOutsideClickListener(() => this.ngZone.run(() => this.isDropdownOpen = false), this.calendarWrapper?.nativeElement, true, this.componentBox?.nativeElement);
|
|
66
|
+
this.addSubscriptions(outsideClickSub);
|
|
67
|
+
}
|
|
68
|
+
this.ngZone.runOutsideAngular(() => this.positioningService
|
|
69
|
+
.computePosition(this.componentBox, this.calendarWrapper, { placement: 'bottom' })
|
|
70
|
+
.subscribe(resp => this.updatePosition(resp)));
|
|
71
|
+
}
|
|
72
|
+
handleUserSelection(selected) {
|
|
73
|
+
if (this.isRange) {
|
|
74
|
+
const currentDate = selected;
|
|
75
|
+
this.selectedData = !!currentDate
|
|
76
|
+
? { startDate: currentDate.startDate, endDate: currentDate.endDate }
|
|
77
|
+
: { startDate: undefined, endDate: undefined };
|
|
78
|
+
if (!!this.selectedData.startDate && !!this.selectedData.endDate) {
|
|
79
|
+
this.isDropdownOpen = false;
|
|
80
|
+
this.selected.emit(this.selectedData);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const selectedDate = selected?.selectedDate;
|
|
85
|
+
this.selectedData = { selectedDate };
|
|
86
|
+
if (this.shouldCloseOnSelectionFinished) {
|
|
87
|
+
this.isDropdownOpen = false;
|
|
88
|
+
this.selected.emit(this.selectedData);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
updateSelectedDate(value) {
|
|
93
|
+
this.selectedData = { selectedDate: this.dateService.getValidOrUndefined(new Date(value)) };
|
|
94
|
+
}
|
|
95
|
+
updatePosition(result) {
|
|
96
|
+
const ddElement = this.calendarWrapper.nativeElement;
|
|
97
|
+
this.renderer.setStyle(ddElement, 'top', `${result.y}px`, RendererStyleFlags2.Important);
|
|
98
|
+
this.renderer.setStyle(ddElement, 'left', 0, RendererStyleFlags2.Important);
|
|
99
|
+
}
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DatePickerComponent, selector: "upd-date-picker", inputs: { shouldCloseOnOutsideClick: "shouldCloseOnOutsideClick", shouldCloseOnSelectionFinished: "shouldCloseOnSelectionFinished", minDate: "minDate", maxDate: "maxDate", startAt: "startAt", dateFilter: "dateFilter", isRange: "isRange" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "componentBox", first: true, predicate: ["componentBox"], descendants: true, read: ElementRef }, { propertyName: "calendarWrapper", first: true, predicate: ["calendarWrapper"], descendants: true, read: ElementRef }, { propertyName: "calendarComponent", first: true, predicate: ["calendar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.is-range]=\"isRange\">\n @if (isRange) {\n <div class=\"d-flex flex-row align-items-center date-range-container styled\">\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"startDate\" readonly>\n <span class=\"date-range-separator\">-</span>\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"endDate\" readonly>\n </div>\n } @else {\n <upd-input [value]=\"selectedDate\" (valueChange)=\"updateSelectedDate($event)\" customClasses=\"date-input\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendarWrapper class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar #calendar [id]=\"id\" [minDate]=\"minDate\" [maxDate]=\"maxDate\" [selectedStartDate]=\"startAt\"\n [disabledDatesFilter]=\"dateFilter\" [isRange]=\"isRange\" [shouldRemoveExternalBorder]=\"true\"\n (selected)=\"handleUserSelection($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e;width:350px!important}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}::ng-deep .date-input{padding:0!important;width:80px!important}.is-range{padding:0!important}.date-range-container{padding:.375rem .75rem;min-height:calc(1em + .75rem + 2px)}.date-range-input{flex:1;border:none;background:transparent;padding:0;margin:0;box-shadow:none;outline:none;font-size:.875rem;color:var(--bs-body-color)}.date-range-input:focus{outline:none;box-shadow:none}.date-range-input::placeholder{color:var(--bs-secondary);opacity:.7}.date-range-input:placeholder-shown{color:var(--bs-secondary)}.date-range-separator{padding:0;color:var(--bs-secondary);font-weight:500;flex-shrink:0}.date-range-container.styled .date-range-input{background-color:var(--upd-bg-surface-tertiary);border:1px solid var(--upd-active-bg);border-radius:var(--bs-border-radius-sm, .25rem);padding:.25rem .5rem}.date-range-container.styled .date-range-input:first-child{margin-right:.25rem}.date-range-container.styled .date-range-input:last-child{margin-left:.25rem}.date-range-container.styled .date-range-separator{padding:0 .25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i2.CalendarComponent, selector: "upd-calendar", inputs: ["selectedDate", "selectedStartDate", "selectedEndDate", "minDate", "maxDate", "disabledDatesFilter", "isRange", "shouldRemoveExternalBorder"], outputs: ["selected", "monthChanged"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }] }); }
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'upd-date-picker', template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.is-range]=\"isRange\">\n @if (isRange) {\n <div class=\"d-flex flex-row align-items-center date-range-container styled\">\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"startDate\" readonly>\n <span class=\"date-range-separator\">-</span>\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"endDate\" readonly>\n </div>\n } @else {\n <upd-input [value]=\"selectedDate\" (valueChange)=\"updateSelectedDate($event)\" customClasses=\"date-input\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendarWrapper class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar #calendar [id]=\"id\" [minDate]=\"minDate\" [maxDate]=\"maxDate\" [selectedStartDate]=\"startAt\"\n [disabledDatesFilter]=\"dateFilter\" [isRange]=\"isRange\" [shouldRemoveExternalBorder]=\"true\"\n (selected)=\"handleUserSelection($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e;width:350px!important}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}::ng-deep .date-input{padding:0!important;width:80px!important}.is-range{padding:0!important}.date-range-container{padding:.375rem .75rem;min-height:calc(1em + .75rem + 2px)}.date-range-input{flex:1;border:none;background:transparent;padding:0;margin:0;box-shadow:none;outline:none;font-size:.875rem;color:var(--bs-body-color)}.date-range-input:focus{outline:none;box-shadow:none}.date-range-input::placeholder{color:var(--bs-secondary);opacity:.7}.date-range-input:placeholder-shown{color:var(--bs-secondary)}.date-range-separator{padding:0;color:var(--bs-secondary);font-weight:500;flex-shrink:0}.date-range-container.styled .date-range-input{background-color:var(--upd-bg-surface-tertiary);border:1px solid var(--upd-active-bg);border-radius:var(--bs-border-radius-sm, .25rem);padding:.25rem .5rem}.date-range-container.styled .date-range-input:first-child{margin-right:.25rem}.date-range-container.styled .date-range-input:last-child{margin-left:.25rem}.date-range-container.styled .date-range-separator{padding:0 .25rem}\n"] }]
|
|
106
|
+
}], propDecorators: { componentBox: [{
|
|
107
|
+
type: ViewChild,
|
|
108
|
+
args: ['componentBox', { read: ElementRef }]
|
|
109
|
+
}], calendarWrapper: [{
|
|
110
|
+
type: ViewChild,
|
|
111
|
+
args: ['calendarWrapper', { read: ElementRef }]
|
|
112
|
+
}], calendarComponent: [{
|
|
113
|
+
type: ViewChild,
|
|
114
|
+
args: ['calendar']
|
|
115
|
+
}], shouldCloseOnOutsideClick: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], shouldCloseOnSelectionFinished: [{
|
|
118
|
+
type: Input
|
|
119
|
+
}], minDate: [{
|
|
120
|
+
type: Input
|
|
121
|
+
}], maxDate: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], startAt: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], dateFilter: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], isRange: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], selected: [{
|
|
130
|
+
type: Output
|
|
131
|
+
}] } });
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZGF0ZS1waWNrZXIvc3JjL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULG1CQUFtQixFQUNuQixTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXlCLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBeUIsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBRXZGLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQU9yQixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUx0RDs7UUFVYSw4QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDakMsbUNBQThCLEdBQUcsSUFBSSxDQUFDO1FBcUIvQzs7V0FFRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekI7OztXQUdHO1FBQ2dCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQUV0Rjs7V0FFRztRQUNILG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBU3ZCLGlCQUFZLEdBQTBCLEVBQUUsQ0FBQztRQWFoQyxPQUFFLEdBQUcsa0JBQWtCLFlBQVksRUFBRSxFQUFFLENBQUM7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QUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hHLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBNkI7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWdCLENBQUMsYUFBYSxDQUFDO1FBRXRELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs4R0EvSFEsbUJBQW1CO2tHQUFuQixtQkFBbUIsbWFBQ08sVUFBVSw2R0FDUCxVQUFVLG9KQzFCcEQsMjlEQWlDQTs7MkZEVGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNJLGlCQUFpQjs4QkFLc0IsWUFBWTtzQkFBNUQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNLLGVBQWU7c0JBQWxFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUMzQixpQkFBaUI7c0JBQXZDLFNBQVM7dUJBQUMsVUFBVTtnQkFFWix5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0YsT0FBTztzQkFEVixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQU1hLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQb3NpdGlvbmluZ1NlcnZpY2UsIENvbXB1dGVQb3NpdGlvblJlc3VsdCwgRG9tRXZlbnRzU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZWxlY3RlZE1vZGVsLCBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9jYWxlbmRhcic7XG5cbmxldCBkYXRlcGlja2VySWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCdjb21wb25lbnRCb3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY29tcG9uZW50Qm94PzogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcldyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2FsZW5kYXJXcmFwcGVyPzogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIGNhbGVuZGFyQ29tcG9uZW50ITogQ2FsZW5kYXJDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG91bGRDbG9zZU9uU2VsZWN0aW9uRmluaXNoZWQgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHNlbGVjdGFibGUgZGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtaW5EYXRlPzogRGF0ZTtcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSBzZWxlY3RhYmxlIGRhdGUuXG4gICAgICovXG4gICAgQElucHV0KCkgbWF4RGF0ZT86IERhdGU7XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGUgdG8gb3BlbiB0aGUgY2FsZW5kYXIgdG8gaW5pdGlhbGx5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgc3RhcnRBdCgpOiBPcHRpb25hbFR5cGU8RGF0ZT4ge1xuICAgICAgICAvLyBJZiBhbiBleHBsaWNpdCBzdGFydEF0IGlzIHNldCB3ZSBzdGFydCB0aGVyZSwgb3RoZXJ3aXNlIHdlIHN0YXJ0IGF0IHdoYXRldmVyIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdmFsdWUgaXMuXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydEF0IHx8IHRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0RGF0ZTtcbiAgICB9XG4gICAgc2V0IHN0YXJ0QXQodmFsdWU6IE9wdGlvbmFsVHlwZTxEYXRlPikge1xuICAgICAgICB0aGlzLl9zdGFydEF0ID0gdGhpcy5kYXRlU2VydmljZS5nZXRWYWxpZE9yVW5kZWZpbmVkKHRoaXMuZGF0ZVNlcnZpY2UuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICB9XG4gICAgQElucHV0KCkgZGF0ZUZpbHRlcj86IChkYXRlOiBEYXRlKSA9PiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IHNlbGVjdGluZyBhIHJhbmdlIG9mIGRhdGVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGlzUmFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHRoZSB5ZWFyIGNob3NlbiBpbiBtdWx0aXllYXIgdmlldy5cbiAgICAgKiBUaGlzIGRvZXNuJ3QgaW1wbHkgYSBjaGFuZ2Ugb24gdGhlIHNlbGVjdGVkIGRhdGUuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25hbFR5cGU8Q2FsZW5kYXJTZWxlY3RlZE1vZGVsPj4oKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGRyb3Bkb3duIGlzIG9wZW4uXG4gICAgICovXG4gICAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBTdGFydCBvZiB0aGUgY29tcGFyaXNvbiByYW5nZS5cbiAgICAgKi9cbiAgICBjb21wYXJpc29uU3RhcnQ/OiBEYXRlO1xuICAgIC8qKlxuICAgICAqIEVuZCBvZiB0aGUgY29tcGFyaXNvbiByYW5nZS5cbiAgICAgKi9cbiAgICBjb21wYXJpc29uRW5kPzogRGF0ZTtcbiAgICBzZWxlY3RlZERhdGE6IENhbGVuZGFyU2VsZWN0ZWRNb2RlbCA9IHt9O1xuICAgIGdldCBoYXNTZWxlY3RlZERhdGEoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0RGF0ZSB8fCAhIXRoaXMuc2VsZWN0ZWREYXRhLmVuZERhdGUgfHwgISF0aGlzLnNlbGVjdGVkRGF0YS5zZWxlY3RlZERhdGU7XG4gICAgfVxuICAgIGdldCBzZWxlY3RlZERhdGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zZWxlY3RlZERhdGEuc2VsZWN0ZWREYXRlID8gdGhpcy5kYXRlU2VydmljZS5mb3JtYXQodGhpcy5zZWxlY3RlZERhdGEuc2VsZWN0ZWREYXRlKSA6ICcnO1xuICAgIH1cbiAgICBnZXQgc3RhcnREYXRlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0RGF0ZSA/IHRoaXMuZGF0ZVNlcnZpY2UuZm9ybWF0KHRoaXMuc2VsZWN0ZWREYXRhLnN0YXJ0RGF0ZSkgOiAnJztcbiAgICB9XG4gICAgZ2V0IGVuZERhdGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zZWxlY3RlZERhdGEuZW5kRGF0ZSA/IHRoaXMuZGF0ZVNlcnZpY2UuZm9ybWF0KHRoaXMuc2VsZWN0ZWREYXRhLmVuZERhdGUpIDogJyc7XG4gICAgfVxuICAgIHJlYWRvbmx5IGlkID0gYHVwZC1kYXRlcGlja2VyLSR7ZGF0ZXBpY2tlcklkKyt9YDtcblxuICAgIHByaXZhdGUgX3N0YXJ0QXQ/OiBEYXRlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0ZVNlcnZpY2UgPSBpbmplY3QoRGF0ZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tRXZlbnRzU2VydmljZSA9IGluamVjdChEb21FdmVudHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvc2l0aW9uaW5nU2VydmljZSA9IGluamVjdChQb3NpdGlvbmluZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJDb21wb25lbnQuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICB9XG5cbiAgICBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2spIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHNpZGVDbGlja1N1YiA9IHRoaXMuZG9tRXZlbnRzU2VydmljZS5zdGFydE91dHNpZGVDbGlja0xpc3RlbmVyKFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmlzRHJvcGRvd25PcGVuID0gZmFsc2UpLFxuICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRCb3g/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnMob3V0c2lkZUNsaWNrU3ViKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uaW5nU2VydmljZVxuICAgICAgICAgICAgICAgIC5jb21wdXRlUG9zaXRpb24odGhpcy5jb21wb25lbnRCb3ghLCB0aGlzLmNhbGVuZGFyV3JhcHBlciEsIHsgcGxhY2VtZW50OiAnYm90dG9tJyB9KVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcCA9PiB0aGlzLnVwZGF0ZVBvc2l0aW9uKHJlc3ApKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZVVzZXJTZWxlY3Rpb24oc2VsZWN0ZWQ6IE9wdGlvbmFsVHlwZTxDYWxlbmRhclNlbGVjdGVkTW9kZWw+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gc2VsZWN0ZWQgYXMgQ2FsZW5kYXJTZWxlY3RlZE1vZGVsO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSAhIWN1cnJlbnREYXRlXG4gICAgICAgICAgICAgICAgPyB7IHN0YXJ0RGF0ZTogY3VycmVudERhdGUuc3RhcnREYXRlLCBlbmREYXRlOiBjdXJyZW50RGF0ZS5lbmREYXRlIH1cbiAgICAgICAgICAgICAgICA6IHsgc3RhcnREYXRlOiB1bmRlZmluZWQsIGVuZERhdGU6IHVuZGVmaW5lZCB9O1xuXG4gICAgICAgICAgICBpZiAoISF0aGlzLnNlbGVjdGVkRGF0YS5zdGFydERhdGUgJiYgISF0aGlzLnNlbGVjdGVkRGF0YS5lbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkRGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBzZWxlY3RlZD8uc2VsZWN0ZWREYXRlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSB7IHNlbGVjdGVkRGF0ZSB9O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRDbG9zZU9uU2VsZWN0aW9uRmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWREYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVNlbGVjdGVkRGF0ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0geyBzZWxlY3RlZERhdGU6IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0VmFsaWRPclVuZGVmaW5lZChuZXcgRGF0ZSh2YWx1ZSkpIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbihyZXN1bHQ6IENvbXB1dGVQb3NpdGlvblJlc3VsdCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkZEVsZW1lbnQgPSB0aGlzLmNhbGVuZGFyV3JhcHBlciEubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ3RvcCcsIGAke3Jlc3VsdC55fXB4YCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ2xlZnQnLCAwLCBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgPGRpdiAjY29tcG9uZW50Qm94IGNsYXNzPVwiaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtZmxhdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2NsYXNzLnJlbW92ZS1ib3R0b20tcmFkaXVzXT1cImlzRHJvcGRvd25PcGVuXCIgW2NsYXNzLmlzLXJhbmdlXT1cImlzUmFuZ2VcIj5cbiAgICAgICAgICAgIEBpZiAoaXNSYW5nZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGRhdGUtcmFuZ2UtY29udGFpbmVyIHN0eWxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbC1wbGFpbnRleHQgZGF0ZS1yYW5nZS1pbnB1dFwiIFt2YWx1ZV09XCJzdGFydERhdGVcIiByZWFkb25seT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRlLXJhbmdlLXNlcGFyYXRvclwiPi08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sLXBsYWludGV4dCBkYXRlLXJhbmdlLWlucHV0XCIgW3ZhbHVlXT1cImVuZERhdGVcIiByZWFkb25seT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDx1cGQtaW5wdXQgW3ZhbHVlXT1cInNlbGVjdGVkRGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVTZWxlY3RlZERhdGUoJGV2ZW50KVwiIGN1c3RvbUNsYXNzZXM9XCJkYXRlLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUGxhaW5UZXh0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8L3VwZC1pbnB1dD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgW2NsYXNzLnJlbW92ZS1ib3R0b20tcmFkaXVzXT1cImlzRHJvcGRvd25PcGVuXCI+XG4gICAgICAgICAgICBAaWYgKGhhc1NlbGVjdGVkRGF0YSkge1xuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgKGNsaWNrZWQpPVwiY2xlYXJTZWxlY3Rpb24oKVwiIGN1c3RvbUNsYXNzZXM9XCJsaW5rLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cInt0YWJsZXJJY29uOid4J31cIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgIDwvdXBkLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgKGNsaWNrZWQpPVwib3BlbkRyb3Bkb3duKClcIiBjdXN0b21DbGFzc2VzPVwibGluay1zZWNvbmRhcnkgbXMtMlwiPlxuICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwie3RhYmxlckljb246J2NhbGVuZGFyJ31cIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNjYWxlbmRhcldyYXBwZXIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50IHJlbW92ZS10b3AtcmFkaXVzXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNEcm9wZG93bk9wZW4gPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgICAgIDx1cGQtY2FsZW5kYXIgI2NhbGVuZGFyIFtpZF09XCJpZFwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgW3NlbGVjdGVkU3RhcnREYXRlXT1cInN0YXJ0QXRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkRGF0ZXNGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiIFtpc1JhbmdlXT1cImlzUmFuZ2VcIiBbc2hvdWxkUmVtb3ZlRXh0ZXJuYWxCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWQpPVwiaGFuZGxlVXNlclNlbGVjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvdXBkLWNhbGVuZGFyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9kYXRlLXBpY2tlci9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './date-picker.component';
|
|
2
|
+
export * from './upd-date-picker.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLWRhdGUtcGlja2VyLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { UpdButtonModule } from '@updevs/components/button';
|
|
4
|
+
import { UpdCalendarModule } from '@updevs/components/calendar';
|
|
5
|
+
import { UpdInputModule } from '@updevs/components/form-controls/input';
|
|
6
|
+
import { UpdIconsModule } from '@updevs/icons';
|
|
7
|
+
import { DatePickerComponent } from './date-picker.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class UpdDatePickerModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, declarations: [DatePickerComponent], imports: [CommonModule,
|
|
12
|
+
UpdButtonModule,
|
|
13
|
+
UpdCalendarModule,
|
|
14
|
+
UpdIconsModule,
|
|
15
|
+
UpdInputModule], exports: [DatePickerComponent] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, imports: [CommonModule,
|
|
17
|
+
UpdButtonModule,
|
|
18
|
+
UpdCalendarModule,
|
|
19
|
+
UpdIconsModule,
|
|
20
|
+
UpdInputModule] }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdDatePickerModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
imports: [
|
|
26
|
+
CommonModule,
|
|
27
|
+
UpdButtonModule,
|
|
28
|
+
UpdCalendarModule,
|
|
29
|
+
UpdIconsModule,
|
|
30
|
+
UpdInputModule
|
|
31
|
+
],
|
|
32
|
+
exports: [
|
|
33
|
+
DatePickerComponent
|
|
34
|
+
],
|
|
35
|
+
declarations: [
|
|
36
|
+
DatePickerComponent
|
|
37
|
+
]
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWRhdGUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy91cGQtZGF0ZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFpQjlELE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQUh4QixtQkFBbUIsYUFWbkIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWMsYUFHZCxtQkFBbUI7K0dBTWQsbUJBQW1CLFlBYnhCLFlBQVk7WUFDWixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxjQUFjOzsyRkFTVCxtQkFBbUI7a0JBZi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjtxQkFDdEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVwZEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgVXBkQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgVXBkSW5wdXRNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5pbXBvcnQgeyBVcGRJY29uc01vZHVsZSB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBVcGRCdXR0b25Nb2R1bGUsXG4gICAgICAgIFVwZENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBVcGRJY29uc01vZHVsZSxcbiAgICAgICAgVXBkSW5wdXRNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRGF0ZVBpY2tlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERhdGVQaWNrZXJDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFVwZERhdGVQaWNrZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1kYXRlLXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyL3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLWRhdGUtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"UpDevs": {
|
|
3
|
+
"FormControls": {
|
|
4
|
+
"FileUpload": {
|
|
5
|
+
"DropzoneDesktopDescription": "Drop {isMultiple, select, true {files} other {a file}} here or <u>click</u> to select {isMultiple, select, true {them} other {it}}",
|
|
6
|
+
"DropzoneMobileDescription": "Touch to select {isMultiple, select, true {files} other {a file}} to upload",
|
|
7
|
+
"SelectFile": "Select {isMultiple, select, true {files} other {a file}}",
|
|
8
|
+
"NoFileSelected": "No {isMultiple, select, true {files} other {file}} selected",
|
|
9
|
+
"ExtensionNotAllowed": "The file ({{fileName}}) with the extension '{{extension}}' is not allowed. Allowed {hasMultipleExt, select, true {extensions are} other {extension is}}: {{allowedExtensions}}.",
|
|
10
|
+
"MinSizeNotMet": "The file ({{fileName}}) of size {{fileSize}} is smaller than the allowed of {{minAllowedSize}}.",
|
|
11
|
+
"MaxSizeExceeded": "The file ({{fileName}}) of size {{fileSize}} is bigger than the allowed of {{maxAllowedSize}}."
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"UpDevs": {
|
|
3
|
+
"FormControls": {
|
|
4
|
+
"FileUpload": {
|
|
5
|
+
"DropzoneDesktopDescription": "Arraste {isMultiple, select, true {arquivos} other {um arquivo}} para cá ou <u>clique</u> para selecioná-lo{isMultiple, select, true {s} other {}}",
|
|
6
|
+
"DropzoneMobileDescription": "Toque para selecionar {isMultiple, select, true {arquivos} other {um arquivo}} to upload",
|
|
7
|
+
"SelectFile": "Selecione {isMultiple, select, true {arquivos} other {um arquivo}}",
|
|
8
|
+
"NoFileSelected": "Nenhum arquivo selecionado",
|
|
9
|
+
"ExtensionNotAllowed": "O arquivo ({{fileName}}) tem a extensão '{{extension}}' que não é permitida. {hasMultipleExt, select, true {As extensões de arquivo permitidas são} other {A extensão de arquivo permitida é}}: {{allowedExtensions}}.",
|
|
10
|
+
"MinSizeNotMet": "O arquivo ({{fileName}}) de tamanho {{fileSize}} é menor do que o permitido de {{minAllowedSize}}.",
|
|
11
|
+
"MaxSizeExceeded": "O arquivo ({{fileName}}) de tamanho {{fileSize}} é maior do que o permitido de {{maxAllowedSize}}."
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtY2hhbmdlZC5ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9maWxlLXVwbG9hZC1jaGFuZ2VkLmV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgZGF0YVVybDogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { Component, computed, EventEmitter, HostBinding, inject, input, Output, signal } from '@angular/core';
|
|
2
|
+
import { ColumnSizeHelper } from '@updevs/components';
|
|
3
|
+
import { PlatformService, Tools } from '@updevs/sdk/core';
|
|
4
|
+
import { BaseControl } from '@updevs/components/form-controls/abstractions';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@jsverse/transloco";
|
|
8
|
+
import * as i3 from "@updevs/components/button";
|
|
9
|
+
import * as i4 from "@updevs/icons";
|
|
10
|
+
import * as i5 from "@updevs/components/popover";
|
|
11
|
+
export class FileUploadComponent extends BaseControl {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.hostWrapperClasses = '';
|
|
15
|
+
this.fileChanged = new EventEmitter();
|
|
16
|
+
this.fileName = input();
|
|
17
|
+
this.title = input();
|
|
18
|
+
this.allowFilesDrop = input(false);
|
|
19
|
+
this.isMultiple = input(false); // TODO: implement
|
|
20
|
+
this.allowedExtensions = input('*');
|
|
21
|
+
this.minFileSize = input();
|
|
22
|
+
this.maxFileSize = input();
|
|
23
|
+
this.layout = input('vertical');
|
|
24
|
+
this.isOver = signal(false);
|
|
25
|
+
this.showValidationStatus = computed(() => !!this.validationStatus() && (this.validationStatus() === 'invalid' || this.showValidStatus()));
|
|
26
|
+
this.validationStatusClass = computed(() => {
|
|
27
|
+
if (this.showValidationStatus()) {
|
|
28
|
+
return `is-${this.validationStatus()}`;
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
});
|
|
32
|
+
this.validationStatusBorderClass = computed(() => {
|
|
33
|
+
if (this.showValidationStatus()) {
|
|
34
|
+
return this.validationStatus() === 'invalid' ? 'border-danger' : 'border-success';
|
|
35
|
+
}
|
|
36
|
+
return '';
|
|
37
|
+
});
|
|
38
|
+
this.errorsList = computed(() => [...this.validationStatusTexts.concat(this.fileUploadErrors())]);
|
|
39
|
+
this.currentFiles = signal(undefined);
|
|
40
|
+
this.labelSizeClasses = computed(() => {
|
|
41
|
+
if (this.layout() !== 'horizontal') {
|
|
42
|
+
return 'form-label';
|
|
43
|
+
}
|
|
44
|
+
return ColumnSizeHelper.getClasses('col-form-label', ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3));
|
|
45
|
+
});
|
|
46
|
+
this.firstFileName = computed(() => (this.currentFiles()?.length || 0) > 0 ? this.currentFiles()[0].name : this.fileName());
|
|
47
|
+
this.defaultMobileDesc = {
|
|
48
|
+
text: 'UpDevs.FormControls.FileUpload.DropzoneMobileDescription',
|
|
49
|
+
isTranslated: false
|
|
50
|
+
};
|
|
51
|
+
this.defaultDesktopDesc = {
|
|
52
|
+
text: 'UpDevs.FormControls.FileUpload.DropzoneDesktopDescription',
|
|
53
|
+
isTranslated: false
|
|
54
|
+
};
|
|
55
|
+
this.fileUploadErrors = signal([]);
|
|
56
|
+
this.platformService = inject(PlatformService);
|
|
57
|
+
}
|
|
58
|
+
get titleText() {
|
|
59
|
+
return this._textService.getText(this.title(), { isMultiple: this.isMultiple() });
|
|
60
|
+
}
|
|
61
|
+
get dropDescriptionText() {
|
|
62
|
+
return !!this.descriptionText
|
|
63
|
+
? this.descriptionText
|
|
64
|
+
: this._textService.getText(this.platformService.isMobile ? this.defaultMobileDesc : this.defaultDesktopDesc, { isMultiple: this.isMultiple() });
|
|
65
|
+
}
|
|
66
|
+
get supportsAdvancedUpload() {
|
|
67
|
+
const div = document.createElement('div');
|
|
68
|
+
return (('draggable' in div) || ('ondragstart' in div && 'ondrop' in div)) && 'FormData' in window && 'FileReader' in window;
|
|
69
|
+
}
|
|
70
|
+
onFileChange(event) {
|
|
71
|
+
event.stopPropagation();
|
|
72
|
+
const files = Array.from(event.target.files);
|
|
73
|
+
if (!!files) {
|
|
74
|
+
this.currentFiles.set([...files]);
|
|
75
|
+
this._updateFormControl([...files], true);
|
|
76
|
+
const errors = files.map(f => this.getFileErrors(f)).reduce((acc, e) => acc.concat(e), []);
|
|
77
|
+
if (errors.length > 0) {
|
|
78
|
+
this.fileUploadErrors.set([...errors]);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (this.isMultiple()) {
|
|
82
|
+
// TODO: implement
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const file = files[0];
|
|
86
|
+
const reader = new FileReader();
|
|
87
|
+
reader.onload = (fileReader) => this.fileChanged.emit({ file: file, dataUrl: fileReader.target.result });
|
|
88
|
+
reader.readAsDataURL(file);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
removeFile() {
|
|
93
|
+
this.currentFiles.set([]);
|
|
94
|
+
this._updateFormControl([], true);
|
|
95
|
+
this.fileChanged.emit(undefined);
|
|
96
|
+
}
|
|
97
|
+
onDrag(event) {
|
|
98
|
+
event.preventDefault();
|
|
99
|
+
event.stopPropagation();
|
|
100
|
+
}
|
|
101
|
+
onDragStart(event) {
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
event.stopPropagation();
|
|
104
|
+
}
|
|
105
|
+
onDragEnd(event) {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
event.stopPropagation();
|
|
108
|
+
this.isOver.set(false);
|
|
109
|
+
}
|
|
110
|
+
onDragOver(event) {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
event.stopPropagation();
|
|
113
|
+
this.isOver.set(true);
|
|
114
|
+
}
|
|
115
|
+
onDragEnter(event) {
|
|
116
|
+
event.preventDefault();
|
|
117
|
+
event.stopPropagation();
|
|
118
|
+
this.isOver.set(true);
|
|
119
|
+
}
|
|
120
|
+
onDragLeave(event) {
|
|
121
|
+
event.preventDefault();
|
|
122
|
+
event.stopPropagation();
|
|
123
|
+
this.isOver.set(false);
|
|
124
|
+
}
|
|
125
|
+
onDrop(event) {
|
|
126
|
+
event.preventDefault();
|
|
127
|
+
event.stopPropagation();
|
|
128
|
+
this.isOver.set(false);
|
|
129
|
+
// TODO: const droppedFiles = event.dataTransfer!.files;
|
|
130
|
+
}
|
|
131
|
+
_getValue() {
|
|
132
|
+
return this.currentFiles();
|
|
133
|
+
}
|
|
134
|
+
_updateValue(value) {
|
|
135
|
+
this.currentFiles.set(value);
|
|
136
|
+
}
|
|
137
|
+
getFileErrors(file) {
|
|
138
|
+
const extension = `.${file.name.split('.').pop() || ''}`;
|
|
139
|
+
const fileSizeInKB = Math.round(file.size / 1024);
|
|
140
|
+
const errors = [];
|
|
141
|
+
if (this.allowedExtensions() !== '*' && !this.allowedExtensions().includes(extension)) {
|
|
142
|
+
errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.ExtensionNotAllowed', isTranslated: false }, {
|
|
143
|
+
fileName: file.name,
|
|
144
|
+
extension,
|
|
145
|
+
hasMultipleExt: this.allowedExtensions().includes(','),
|
|
146
|
+
allowedExtensions: this.allowedExtensions()
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
if (!!this.minFileSize() && fileSizeInKB < this.minFileSize()) {
|
|
150
|
+
errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.MinSizeNotMet', isTranslated: false }, {
|
|
151
|
+
fileName: file.name,
|
|
152
|
+
fileSize: Tools.Text.formatKilobytes(fileSizeInKB),
|
|
153
|
+
minAllowedSize: Tools.Text.formatKilobytes(this.minFileSize())
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
if (!!this.maxFileSize() && fileSizeInKB > this.maxFileSize()) {
|
|
157
|
+
errors.push(this._textService.getText({ text: 'UpDevs.FormControls.FileUpload.MaxSizeExceeded', isTranslated: false }, {
|
|
158
|
+
fileName: file.name,
|
|
159
|
+
fileSize: Tools.Text.formatKilobytes(fileSizeInKB),
|
|
160
|
+
maxAllowedSize: Tools.Text.formatKilobytes(this.maxFileSize())
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
return errors;
|
|
164
|
+
}
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FileUploadComponent, selector: "upd-file-upload", inputs: { fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, allowFilesDrop: { classPropertyName: "allowFilesDrop", publicName: "allowFilesDrop", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, allowedExtensions: { classPropertyName: "allowedExtensions", publicName: "allowedExtensions", isSignal: true, isRequired: false, transformFunction: null }, minFileSize: { classPropertyName: "minFileSize", publicName: "minFileSize", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChanged: "fileChanged" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses()\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }] }); }
|
|
167
|
+
}
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
169
|
+
type: Component,
|
|
170
|
+
args: [{ selector: 'upd-file-upload', template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses()\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n" }]
|
|
171
|
+
}], propDecorators: { hostWrapperClasses: [{
|
|
172
|
+
type: HostBinding,
|
|
173
|
+
args: ['class']
|
|
174
|
+
}], fileChanged: [{
|
|
175
|
+
type: Output
|
|
176
|
+
}] } });
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZmlsZS11cGxvYWQvc3JjL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7QUFVNUUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFMcEQ7O1FBTTBCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUUzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO1FBRWpGLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsbUJBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtRQUM3QyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUss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QyxXQUFXLEVBQUcsQ0FBQzthQUNsRSxDQUNKLENBQ0osQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUcsRUFBRSxDQUFDO1lBQzdELE1BQU0sQ0FBQyxJQUFJLENBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQ3JCLEVBQUUsSUFBSSxFQUFFLGdEQUFnRCxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFDL0U7Z0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNuQixRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDO2FBQ2xFLENBQ0osQ0FDSixDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OEdBek1RLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCt2Q0NkaEMsZzdIQTZFQTs7MkZEL0RhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDSSxpQkFBaUI7OEJBS0wsa0JBQWtCO3NCQUF2QyxXQUFXO3VCQUFDLE9BQU87Z0JBRUQsV0FBVztzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIGluamVjdCwgaW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5TaXplSGVscGVyLCBIb3Jpem9udGFsVmVydGljYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzJztcbmltcG9ydCB7IFRleHRNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZSwgVG9vbHMgfSBmcm9tICdAdXBkZXZzL3Nkay9jb3JlJztcbmltcG9ydCB7IEJhc2VDb250cm9sIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvYWJzdHJhY3Rpb25zJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgRmlsZVVwbG9hZENoYW5nZWRFdmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQtY2hhbmdlZC5ldmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgaG9zdFdyYXBwZXJDbGFzc2VzID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE9wdGlvbmFsVHlwZTxGaWxlVXBsb2FkQ2hhbmdlZEV2ZW50Pj4oKTtcblxuICAgIHJlYWRvbmx5IGZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIHJlYWRvbmx5IGFsbG93RmlsZXNEcm9wID0gaW5wdXQoZmFsc2UpO1xuICAgIHJlYWRvbmx5IGlzTXVsdGlwbGUgPSBpbnB1dChmYWxzZSk7IC8vIFRPRE86IGltcGxlbWVudFxuICAgIHJlYWRvbmx5IGFsbG93ZWRFeHRlbnNpb25zID0gaW5wdXQoJyonKTtcbiAgICByZWFkb25seSBtaW5GaWxlU2l6ZSA9IGlucHV0PG51bWJlcj4oKTtcbiAgICByZWFkb25seSBtYXhGaWxlU2l6ZSA9IGlucHV0PG51bWJlcj4oKTtcbiAgICByZWFkb25seSBsYXlvdXQgPSBpbnB1dDxIb3Jpem9udGFsVmVydGljYWxUeXBlPigndmVydGljYWwnKTtcbiAgICByZWFkb25seSBpc092ZXIgPSBzaWduYWwoZmFsc2UpO1xuICAgIHJlYWRvbmx5IHNob3dWYWxpZGF0aW9uU3RhdHVzID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgISF0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSAmJiAodGhpcy52YWxpZGF0aW9uU3RhdHVzKCkgPT09ICdpbnZhbGlkJyB8fCB0aGlzLnNob3dWYWxpZFN0YXR1cygpKVxuICAgICk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvblN0YXR1c0NsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zaG93VmFsaWRhdGlvblN0YXR1cygpKSB7XG4gICAgICAgICAgICByZXR1cm4gYGlzLSR7dGhpcy52YWxpZGF0aW9uU3RhdHVzKCl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgICByZWFkb25seSB2YWxpZGF0aW9uU3RhdHVzQm9yZGVyQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNob3dWYWxpZGF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TdGF0dXMoKSA9PT0gJ2ludmFsaWQnID8gJ2JvcmRlci1kYW5nZXInIDogJ2JvcmRlci1zdWNjZXNzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9KTtcbiAgICByZWFkb25seSBlcnJvcnNMaXN0ID0gY29tcHV0ZWQoKCkgPT4gWy4uLnRoaXMudmFsaWRhdGlvblN0YXR1c1RleHRzLmNvbmNhdCh0aGlzLmZpbGVVcGxvYWRFcnJvcnMoKSldKTtcbiAgICByZWFkb25seSBjdXJyZW50RmlsZXMgPSBzaWduYWw8T3B0aW9uYWxUeXBlPEZpbGVbXT4+KHVuZGVmaW5lZCk7XG4gICAgcmVhZG9ubHkgbGFiZWxTaXplQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0KCkgIT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgcmV0dXJuICdmb3JtLWxhYmVsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBDb2x1bW5TaXplSGVscGVyLmdldENsYXNzZXMoXG4gICAgICAgICAgICAnY29sLWZvcm0tbGFiZWwnLFxuICAgICAgICAgICAgQ29sdW1uU2l6ZUhlbHBlci5nZXRTaXplQ2xhc3Nlcyh0aGlzLmxhYmVsQ29sU2l6ZSgpLCAzKVxuICAgICAgICApO1xuICAgIH0pO1xuICAgIHJlYWRvbmx5IGZpcnN0RmlsZU5hbWUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5jdXJyZW50RmlsZXMoKT8ubGVuZ3RoIHx8IDApID4gMCA/IHRoaXMuY3VycmVudEZpbGVzKCkhWzBdLm5hbWUgOiB0aGlzLmZpbGVOYW1lKCkpO1xuXG4gICAgZ2V0IHRpdGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dFNlcnZpY2UuZ2V0VGV4dCh0aGlzLnRpdGxlKCksIHsgaXNNdWx0aXBsZTogdGhpcy5pc011bHRpcGxlKCkgfSk7XG4gICAgfVxuICAgIGdldCBkcm9wRGVzY3JpcHRpb25UZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGVzY3JpcHRpb25UZXh0XG4gICAgICAgICAgICA/IHRoaXMuZGVzY3JpcHRpb25UZXh0XG4gICAgICAgICAgICA6IHRoaXMuX3RleHRTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF0Zm9ybVNlcnZpY2UuaXNNb2JpbGUgPyB0aGlzLmRlZmF1bHRNb2JpbGVEZXNjIDogdGhpcy5kZWZhdWx0RGVza3RvcERlc2MsIHsgaXNNdWx0aXBsZTogdGhpcy5pc011bHRpcGxlKCkgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0IHN1cHBvcnRzQWR2YW5jZWRVcGxvYWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICByZXR1cm4gKCgnZHJhZ2dhYmxlJyBpbiBkaXYpIHx8ICgnb25kcmFnc3RhcnQnIGluIGRpdiAmJiAnb25kcm9wJyBpbiBkaXYpKSAmJiAnRm9ybURhdGEnIGluIHdpbmRvdyAmJiAnRmlsZVJlYWRlcicgaW4gd2luZG93O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1vYmlsZURlc2M6IFRleHRNb2RlbCA9IHtcbiAgICAgICAgdGV4dDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZC5Ecm9wem9uZU1vYmlsZURlc2NyaXB0aW9uJyxcbiAgICAgICAgaXNUcmFuc2xhdGVkOiBmYWxzZVxuICAgIH07XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RGVza3RvcERlc2M6IFRleHRNb2RlbCA9IHtcbiAgICAgICAgdGV4dDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZC5Ecm9wem9uZURlc2t0b3BEZXNjcmlwdGlvbicsXG4gICAgICAgIGlzVHJhbnNsYXRlZDogZmFsc2VcbiAgICB9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZEVycm9ycyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1TZXJ2aWNlID0gaW5qZWN0KFBsYXRmb3JtU2VydmljZSk7XG5cbiAgICBvbkZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbSgoZXZlbnQudGFyZ2V0IGFzIGFueSkuZmlsZXMgYXMgRmlsZUxpc3QpO1xuXG4gICAgICAgIGlmICghIWZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcy5zZXQoWy4uLmZpbGVzXSk7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVGb3JtQ29udHJvbChbLi4uZmlsZXNdLCB0cnVlKTtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZmlsZXMubWFwKGYgPT4gdGhpcy5nZXRGaWxlRXJyb3JzKGYpKS5yZWR1Y2UoKGFjYywgZSkgPT4gYWNjLmNvbmNhdChlKSwgW10pO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRFcnJvcnMuc2V0KFsuLi5lcnJvcnNdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGltcGxlbWVudFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGZpbGVSZWFkZXI6IGFueSkgPT4gdGhpcy5maWxlQ2hhbmdlZC5lbWl0KHsgZmlsZTogZmlsZSwgZGF0YVVybDogZmlsZVJlYWRlci50YXJnZXQucmVzdWx0IH0pO1xuXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVGaWxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcy5zZXQoW10pO1xuICAgICAgICB0aGlzLl91cGRhdGVGb3JtQ29udHJvbChbXSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZmlsZUNoYW5nZWQuZW1pdCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIG9uRHJhZyhldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNPdmVyLnNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzT3Zlci5zZXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc092ZXIuc2V0KHRydWUpO1xuICAgIH1cblxuICAgIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNPdmVyLnNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNPdmVyLnNldChmYWxzZSk7XG5cbiAgICAgICAgLy8gVE9ETzogY29uc3QgZHJvcHBlZEZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyIS5maWxlcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldFZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWxlcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdXBkYXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRGaWxlcy5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUVycm9ycyhmaWxlOiBGaWxlKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBgLiR7ZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJyd9YDtcbiAgICAgICAgY29uc3QgZmlsZVNpemVJbktCID0gTWF0aC5yb3VuZChmaWxlLnNpemUgLyAxMDI0KTtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmFsbG93ZWRFeHRlbnNpb25zKCkgIT09ICcqJyAmJiAhdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucygpLmluY2x1ZGVzKGV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZC5FeHRlbnNpb25Ob3RBbGxvd2VkJywgaXNUcmFuc2xhdGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzTXVsdGlwbGVFeHQ6IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMoKS5pbmNsdWRlcygnLCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZEV4dGVuc2lvbnM6IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMubWluRmlsZVNpemUoKSAmJiBmaWxlU2l6ZUluS0IgPCB0aGlzLm1pbkZpbGVTaXplKCkhKSB7XG4gICAgICAgICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0U2VydmljZS5nZXRUZXh0KFxuICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdVcERldnMuRm9ybUNvbnRyb2xzLkZpbGVVcGxvYWQuTWluU2l6ZU5vdE1ldCcsIGlzVHJhbnNsYXRlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplOiBUb29scy5UZXh0LmZvcm1hdEtpbG9ieXRlcyhmaWxlU2l6ZUluS0IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluQWxsb3dlZFNpemU6IFRvb2xzLlRleHQuZm9ybWF0S2lsb2J5dGVzKHRoaXMubWluRmlsZVNpemUoKSEpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5tYXhGaWxlU2l6ZSgpICYmIGZpbGVTaXplSW5LQiA+IHRoaXMubWF4RmlsZVNpemUoKSEpIHtcbiAgICAgICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZC5NYXhTaXplRXhjZWVkZWQnLCBpc1RyYW5zbGF0ZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlU2l6ZTogVG9vbHMuVGV4dC5mb3JtYXRLaWxvYnl0ZXMoZmlsZVNpemVJbktCKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEFsbG93ZWRTaXplOiBUb29scy5UZXh0LmZvcm1hdEtpbG9ieXRlcyh0aGlzLm1heEZpbGVTaXplKCkhKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgfVxufVxuIiwiPGlucHV0IGNsYXNzPVwiZC1ub25lXCIgW2F0dHIuaWRdPVwibmFtZSgpXCIgW2F0dHIubmFtZV09XCJuYW1lKClcIiB0eXBlPVwiZmlsZVwiIFthdHRyLm11bHRpcGxlXT1cImlzTXVsdGlwbGUoKSA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgIFthY2NlcHRdPVwiYWxsb3dlZEV4dGVuc2lvbnMoKVwiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIiAvPlxuXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5Gb3JtQ29udHJvbHMuRmlsZVVwbG9hZCdcIj5cbiAgICAgICAgQGlmICghIWxhYmVsVGV4dCkge1xuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJsYWJlbFNpemVDbGFzc2VzKClcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2NsYXNzLnJlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICBAaWYgKCEhaGludFRleHQgfHwgISF0aGlzLmhpbnRUZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc3VwcG9ydHNBZHZhbmNlZFVwbG9hZCAmJiBhbGxvd0ZpbGVzRHJvcCgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGJvcmRlciByb3VuZGVkLTIgcC0yIHctMTAwIGgtMTAwXCIgW25nQ2xhc3NdPVwidmFsaWRhdGlvblN0YXR1c0JvcmRlckNsYXNzKClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5iZy1tdXRlZC1sdF09XCIhaXNPdmVyKClcIiBbY2xhc3MuYmctcHJpbWFyeS1sdF09XCJpc092ZXIoKVwiIChkcmFnKT1cIm9uRHJhZygkZXZlbnQpXCIgKGRyYWdzdGFydCk9XCJvbkRyYWdTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZHJhZ2VuZCk9XCJvbkRyYWdFbmQoJGV2ZW50KVwiIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIiAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgQGlmICghIXRpdGxlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGQgYWxpZ24tc2VsZi1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiBbaW5uZXJIVE1MXT1cInRpdGxlVGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJuYW1lKClcIiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IGFsaWduLXNlbGYtY2VudGVyIGN1cnNvci1wb2ludGVyXCIgW2lubmVySFRNTF09XCJkcm9wRGVzY3JpcHRpb25UZXh0XCI+PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIEBpZiAoIWxhYmVsVGV4dCAmJiAoISFoaW50VGV4dCB8fCAhIXRoaXMuaGludFRlbXBsYXRlKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCFsYWJlbFRleHQgJiYgKCEhaGludFRleHQgfHwgISF0aGlzLmhpbnRUZW1wbGF0ZSgpKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gYWxpZ24tc2VsZi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAodmFsaWRhdGlvblN0YXR1cygpID09PSAnaW52YWxpZCcgJiYgZXJyb3JzTGlzdCgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIEBmb3IgKGRlc2Mgb2YgZXJyb3JzTGlzdCgpOyB0cmFjayBkZXNjKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57eyBkZXNjIH19PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0VHBsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGNvbFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ2YWxpZGF0aW9uU3RhdHVzQm9yZGVyQ2xhc3MoKVwiIFtmb3JdPVwibmFtZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1NlbGVjdEZpbGUnLCB7IGlzTXVsdGlwbGU6IGlzTXVsdGlwbGUoKSB9KSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdGV4dC10cnVuY2F0ZVwiIFtjbGFzcy5ib3JkZXItZW5kLTBdPVwiISFmaXJzdEZpbGVOYW1lKClcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlyc3RGaWxlTmFtZSgpIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidmFsaWRhdGlvblN0YXR1c0NsYXNzKClcIiBwbGFjZWhvbGRlcj1cInt7IHQoJ05vRmlsZVNlbGVjdGVkJywgeyBpc011bHRpcGxlOiBpc011bHRpcGxlKCkgfSkgfX1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCIgcmVhZG9ubHk+XG5cbiAgICAgICAgICAgICAgICBAaWYgKCEhZmlyc3RGaWxlTmFtZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0IGJnLXRyYW5zcGFyZW50XCIgW25nQ2xhc3NdPVwidmFsaWRhdGlvblN0YXR1c0JvcmRlckNsYXNzKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFtzaG91bGRJZ25vcmVCdG5DbGFzc109XCJ0cnVlXCIgKGNsaWNrZWQpPVwicmVtb3ZlRmlsZSgpXCIgY3VzdG9tQ2xhc3Nlcz1cImxpbmstc2Vjb25kYXJ5IGN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJ0cmFzaFwiIFt0YWJsZXJJY29uU2l6ZV09XCIxOFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaGludFRwbD5cbiAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscCBtcy0yXCIgW3VwZFBvcG92ZXJdPVwiaGludFRleHRcIiBbdXBkUG9wb3ZlclRlbXBsYXRlXT1cImhpbnRUZW1wbGF0ZSgpXCIgW3VwZFBvcG92ZXJBY3RBc1Rvb2x0aXBdPVwiaGludEFzVG9vbHRpcCgpXCI+XG4gICAgICAgID9cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9maWxlLXVwbG9hZC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './file-upload.component';
|
|
2
|
+
export * from './file-upload-changed.event';
|
|
3
|
+
export * from './upd-file-upload.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZC1jaGFuZ2VkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLWZpbGUtdXBsb2FkLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TranslocoModule, TranslocoService } from '@jsverse/transloco';
|
|
4
|
+
import { UpdIconsModule } from '@updevs/icons';
|
|
5
|
+
import { UpdButtonModule } from '@updevs/components/button';
|
|
6
|
+
import { UpdPopoverModule } from '@updevs/components/popover';
|
|
7
|
+
import * as en from './assets/i18n/en.json';
|
|
8
|
+
import * as pt from './assets/i18n/pt.json';
|
|
9
|
+
import { FileUploadComponent } from './file-upload.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@jsverse/transloco";
|
|
12
|
+
export class UpdFileUploadModule {
|
|
13
|
+
constructor(translocoService) {
|
|
14
|
+
translocoService.setFallbackLangForMissingTranslation({ fallbackLang: 'en' });
|
|
15
|
+
translocoService.setTranslation(en, 'en');
|
|
16
|
+
translocoService.setTranslation(pt, 'pt');
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFileUploadModule, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: UpdFileUploadModule, declarations: [FileUploadComponent], imports: [CommonModule,
|
|
20
|
+
TranslocoModule,
|
|
21
|
+
UpdButtonModule,
|
|
22
|
+
UpdIconsModule,
|
|
23
|
+
UpdPopoverModule], exports: [FileUploadComponent] }); }
|
|
24
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFileUploadModule, imports: [CommonModule,
|
|
25
|
+
TranslocoModule,
|
|
26
|
+
UpdButtonModule,
|
|
27
|
+
UpdIconsModule,
|
|
28
|
+
UpdPopoverModule] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFileUploadModule, decorators: [{
|
|
31
|
+
type: NgModule,
|
|
32
|
+
args: [{
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
TranslocoModule,
|
|
36
|
+
UpdButtonModule,
|
|
37
|
+
UpdIconsModule,
|
|
38
|
+
UpdPopoverModule
|
|
39
|
+
],
|
|
40
|
+
declarations: [
|
|
41
|
+
FileUploadComponent
|
|
42
|
+
],
|
|
43
|
+
exports: [
|
|
44
|
+
FileUploadComponent
|
|
45
|
+
]
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWZpbGUtdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy91cGQtZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQWlCOUQsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFZLGdCQUFrQztRQUMxQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQUxRLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQU54QixtQkFBbUIsYUFQbkIsWUFBWTtZQUNaLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQixhQU1oQixtQkFBbUI7K0dBR2QsbUJBQW1CLFlBYnhCLFlBQVk7WUFDWixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7OzJGQVNYLG1CQUFtQjtrQkFmL0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDVixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxtQkFBbUI7cUJBQ3RCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgVXBkSWNvbnNNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFVwZEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgVXBkUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9wb3BvdmVyJztcblxuaW1wb3J0ICogYXMgZW4gZnJvbSAnLi9hc3NldHMvaTE4bi9lbi5qc29uJztcbmltcG9ydCAqIGFzIHB0IGZyb20gJy4vYXNzZXRzL2kxOG4vcHQuanNvbic7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgICAgIFVwZEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVXBkSWNvbnNNb2R1bGUsXG4gICAgICAgIFVwZFBvcG92ZXJNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWxlVXBsb2FkQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFVwZEZpbGVVcGxvYWRNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UpIHtcbiAgICAgICAgdHJhbnNsb2NvU2VydmljZS5zZXRGYWxsYmFja0xhbmdGb3JNaXNzaW5nVHJhbnNsYXRpb24oeyBmYWxsYmFja0xhbmc6ICdlbicgfSk7XG4gICAgICAgIHRyYW5zbG9jb1NlcnZpY2Uuc2V0VHJhbnNsYXRpb24oZW4sICdlbicpO1xuICAgICAgICB0cmFuc2xvY29TZXJ2aWNlLnNldFRyYW5zbGF0aW9uKHB0LCAncHQnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtZm9ybS1jb250cm9scy1maWxlLXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkL3NyYy91cGRldnMtY29tcG9uZW50cy1mb3JtLWNvbnRyb2xzLWZpbGUtdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|