@seniorsistemas/angular-components 17.1.3 → 17.1.4

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.
Files changed (34) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +178 -71
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/gantt/components/gantt/bar.d.ts +1 -0
  6. package/components/gantt/components/gantt/gantt.d.ts +1 -1
  7. package/components/gantt/components/gantt/popup.d.ts +4 -1
  8. package/components/gantt/gantt.component.d.ts +9 -1
  9. package/components/gantt/models/options.d.ts +5 -0
  10. package/components/gantt/models/view-mode.d.ts +2 -2
  11. package/esm2015/components/gantt/components/gantt/bar.js +61 -33
  12. package/esm2015/components/gantt/components/gantt/gantt-options.js +5 -1
  13. package/esm2015/components/gantt/components/gantt/gantt.js +44 -31
  14. package/esm2015/components/gantt/components/gantt/popup.js +37 -5
  15. package/esm2015/components/gantt/components/side-table/side-table.component.js +3 -3
  16. package/esm2015/components/gantt/gantt.component.js +41 -4
  17. package/esm2015/components/gantt/gantt.module.js +3 -2
  18. package/esm2015/components/gantt/models/options.js +1 -1
  19. package/esm2015/components/gantt/models/view-mode.js +2 -2
  20. package/esm5/components/gantt/components/gantt/bar.js +62 -34
  21. package/esm5/components/gantt/components/gantt/gantt-options.js +5 -1
  22. package/esm5/components/gantt/components/gantt/gantt.js +43 -30
  23. package/esm5/components/gantt/components/gantt/popup.js +30 -5
  24. package/esm5/components/gantt/components/side-table/side-table.component.js +3 -3
  25. package/esm5/components/gantt/gantt.component.js +41 -4
  26. package/esm5/components/gantt/gantt.module.js +3 -2
  27. package/esm5/components/gantt/models/options.js +1 -1
  28. package/esm5/components/gantt/models/view-mode.js +2 -2
  29. package/fesm2015/seniorsistemas-angular-components.js +186 -72
  30. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  31. package/fesm5/seniorsistemas-angular-components.js +178 -71
  32. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  33. package/package.json +1 -1
  34. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components.js","sources":["ng://@seniorsistemas/angular-components/components/accordion/components/accordion-panel/accordion-panel.component.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.module.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-position.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.component.ts","ng://@seniorsistemas/angular-components/components/utils/debouce.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/mobile-behavior.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-event.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.directive.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.module.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.module.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-colors.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-types.ts","ng://@seniorsistemas/angular-components/components/badge/badge.component.ts","ng://@seniorsistemas/angular-components/components/badge/badge.module.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.component.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.module.ts","ng://@seniorsistemas/angular-components/components/button/button-priority.ts","ng://@seniorsistemas/angular-components/components/button/button-size.ts","ng://@seniorsistemas/angular-components/components/button/button-animation-type.ts","ng://@seniorsistemas/angular-components/components/button/button.component.ts","ng://@seniorsistemas/angular-components/components/button/button.module.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.directive.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.module.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.component.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.module.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.component.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.module.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/resources/countries.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/models/ordination.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.service.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.component.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-size.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/autocomplete-field.ts","ng://@seniorsistemas/angular-components/components/locale/options/calendar.ts","ng://@seniorsistemas/angular-components/components/locale/options/number.ts","ng://@seniorsistemas/angular-components/components/locale/options/index.ts","ng://@seniorsistemas/angular-components/components/locale/locale.service.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-number.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/locale.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/bignumber-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/blob-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-switch-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/calendar-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/chips-field.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/number-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/decimal-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/currency-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/lookup-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/radio-button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/select-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/password-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/slider-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/form-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/lookup/lookup.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/base-field-component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/grid.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/row.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/structure.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/fieldset.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/section.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-config.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/go-back/go-back.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/validate-errors.ts","ng://@seniorsistemas/angular-components/components/utils/breakpoints.ts","ng://@seniorsistemas/angular-components/components/utils/export-utils.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/custom-http-client.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations-service.ts","ng://@seniorsistemas/angular-components/angular-components.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.service.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.module.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.directive.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.module.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.directive.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.module.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.directive.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.module.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.pipe.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.module.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkbox.component.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkox.module.ts","ng://@seniorsistemas/angular-components/components/table/navigation/navigation.directive.ts","ng://@seniorsistemas/angular-components/components/table/row-toggler/row-toggler.directive.ts","ng://@seniorsistemas/angular-components/components/table/frozen-position/frozen-position.directive.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-column-field-type.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-badge-colors.ts","ng://@seniorsistemas/angular-components/components/table/table-column/table-columns.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.module.ts","ng://@seniorsistemas/angular-components/components/table/table-paging/table-paging.component.ts","ng://@seniorsistemas/angular-components/components/table/table.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/calendar/calendar-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/chips/chips-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/lookup/lookup-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/radio-button/radio-button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/select/select-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area/text-area-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/grid/row/row.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/fieldset/fieldset.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/section/section.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/dynamic-field/dynamic-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/slider/slider-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/long-press.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/double-click.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/mouse-events.module.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-strengths.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-positions.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.directive.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.service.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.component.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.module.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.directive.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.module.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/date-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/svg-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/models/view-mode.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/bar.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/popup.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/arrow.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt-options.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.component.ts","ng://@seniorsistemas/angular-components/components/gantt/components/side-table/side-table.component.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.module.ts","ng://@seniorsistemas/angular-components/components/structure/header.component.ts","ng://@seniorsistemas/angular-components/components/structure/footer.component.ts","ng://@seniorsistemas/angular-components/components/structure/structure.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.component.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail-size.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.module.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/field/object-card-field.component.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/main/object-card-main.component.ts","ng://@seniorsistemas/angular-components/components/shared/models/enum-severity.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.module.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.module.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.component.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.module.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.component.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.module.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.component.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.module.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.component.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.module.ts","ng://@seniorsistemas/angular-components/components/steps/steps.component.ts","ng://@seniorsistemas/angular-components/components/steps/steps.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/range-line/range-line.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-severity.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-size.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item.ts","ng://@seniorsistemas/angular-components/components/tile/tile.component.ts","ng://@seniorsistemas/angular-components/components/tile/tile.module.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/models/file-validation-errors.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.component.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search-size.enum.ts","ng://@seniorsistemas/angular-components/components/global-search/elements/dropdown/global-search-dropdown-item.component.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.component.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.directive.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/use-cases/core-linters.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/facades/core-facade.ts","ng://@seniorsistemas/angular-components/components/code-editor/presentation/code-editor-component.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/enums/marker-severity.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","ng://@seniorsistemas/angular-components/components/code-editor/presentation/code-editor-module.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.component.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-colors.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.component.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.module.ts","ng://@seniorsistemas/angular-components/components/split-button/models/split-button-type.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.module.ts","ng://@seniorsistemas/angular-components/components/panel/panel.component.ts","ng://@seniorsistemas/angular-components/components/panel/panel.module.ts","ng://@seniorsistemas/angular-components/locale/fallback.ts","ng://@seniorsistemas/angular-components/seniorsistemas-angular-components.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { trigger, style, animate, transition, state } from \"@angular/animations\";\n\nimport { AccordionButtonSettings } from \"../../models/accordion-button-settings\";\nimport { AccordionSwitchSettings } from \"../../models/accordion-switch-settings\";\n\n@Component({\n selector: \"s-accordion-panel\",\n templateUrl: \"./accordion-panel.component.html\",\n styleUrls: [\"./accordion-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [style({ height: \"0\" }), animate(\"200ms linear\", style({ height: \"*\" }))]),\n transition(\":leave\", [style({ height: \"*\" }), animate(\"200ms linear\", style({ height: \"0\" }))]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ height: \"*\" })),\n state(\"false\", style({ height: '0px' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnInit, AfterViewInit {\n @Input()\n public header: string;\n\n @Input()\n public buttons: AccordionButtonSettings[];\n\n @Input()\n public disabled = false;\n\n @Input()\n public switch: AccordionSwitchSettings;\n\n @Input()\n public validationMessage: string;\n\n @Input()\n public cache = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n public switchState: boolean;\n\n private _isOpen = false;\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnInit(): void {\n if (this.switch) {\n this.switchState = this.switch.state;\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n","import { AfterContentInit, OnChanges, Component, ContentChildren, Input, QueryList, SimpleChanges } from \"@angular/core\";\n\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"s-accordion\",\n templateUrl: \"./accordion.component.html\",\n styleUrls: [\"./accordion.component.scss\"],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges {\n @Input()\n public activeIndex: number;\n\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents: QueryList<AccordionPanelComponent>;\n\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[];\n\n public ngAfterContentInit(): void {\n this._panels = this.panelsComponents.toArray();\n this._openSubs = new Array(this._panels.length);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.multiple) {\n if (changes.multiple.currentValue) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTab = this._panels[this.activeIndex];\n \n if (!activeTab) {\n throw new Error(\"activeIndex does not represent any panel.\");\n }\n\n if (!activeTab.disabled) {\n this._panels[this.activeIndex].isOpen = true;\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened.subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n","// switch.component.ts\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n }],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input()\n public readonly = false;\n\n @Input()\n public trueLabel?: string;\n\n @Input()\n public falseLabel?: string;\n\n @Input()\n public inputId: string;\n\n @Input()\n public inputName: string;\n\n @Input()\n public disabled = false;\n\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n @Input()\n public value = false;\n\n @ViewChild(\"switch\", { static: true })\n public switchRef: ElementRef;\n\n @HostListener('focusin')\n onFocusIn() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.add(\"switch--focus\");\n }\n\n @HostListener('focusout')\n onFocusOut() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.remove(\"switch--focus\");\n }\n\n private _onChange: (value: boolean) => void;\n private _onTouched: (value: boolean) => void;\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SwitchComponent } from \"./switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule { }","export enum TooltipPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n Left = \"left\",\n Right = \"right\",\n}\n","import { Component } from \"@angular/core\";\nimport { TooltipPosition } from \"./models/tooltip-position\";\n\n@Component({\n templateUrl: \"./tooltip.component.html\",\n styleUrls: [\"./tooltip.component.scss\"],\n})\nexport class TooltipComponent {\n public tooltip = \"\";\n public position = TooltipPosition.Top;\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","import { Injectable } from '@angular/core';\n\nconst DEFAULT_TIMER = 300;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DebounceUtils {\n public debounce(func: Function, timeout = DEFAULT_TIMER){\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n }\n\n public debounceLeading(func: Function, timeout = DEFAULT_TIMER) {\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n }, timeout);\n };\n }\n}\n","export enum MobileBehavior {\n Pressing = \"pressing\",\n Tap = \"tap\",\n}","export enum TooltipEvent {\n Focus = \"focus\",\n Hover = \"hover\",\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { DebounceUtils } from \"../utils/debouce\";\nimport { MobileBehavior, TooltipEvent, TooltipPosition } from \"./models\";\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { ElementArea } from \"./models/element-area\";\n\n@Directive({\n selector: \"[sTooltip]\",\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n @Input(\"sTooltip\")\n public tooltip: string;\n\n @Input(\"tooltipPosition\")\n public position: TooltipPosition = TooltipPosition.Top;\n\n @Input()\n public showDelay = 500;\n\n @Input()\n public displayTime: number;\n\n @Input()\n public tooltipEvent = TooltipEvent.Hover;\n\n @Input()\n public escape = false;\n\n @Input()\n public visible = true;\n\n @Input()\n public mobileBehavior = MobileBehavior.Pressing;\n\n private componentRef: ComponentRef<any> = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement?: HTMLElement;\n private readonly boundOnWindowMouseMoveFunction: (event: MouseEvent) => void;\n private readonly debounceCreateTooltipFunction: () => void;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n private readonly debounceUtils: DebounceUtils\n ) {\n this.boundOnWindowMouseMoveFunction = this.onWindowMouseMove.bind(this);\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this.createTootip());\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private onWindowMouseMove(event: MouseEvent) {\n if (!this.componentRef) {\n return;\n }\n const elementRect = this.elementRef.nativeElement.getBoundingClientRect();\n const toolTipRect = this.tooltipDivElement.getBoundingClientRect();\n\n const totalElementArea = {\n top: Math.min(elementRect.top, toolTipRect.top),\n right: Math.max(elementRect.right, toolTipRect.right),\n left: Math.min(elementRect.left, toolTipRect.left),\n bottom: Math.max(elementRect.bottom, toolTipRect.bottom)\n };\n\n if (this.isMousePositionOutsideOfElement(event.clientX, event.clientY, totalElementArea)) {\n this.destroy();\n }\n }\n\n private isMousePositionOutsideOfElement(mouseX: number, mouseY: number, elementArea: ElementArea) {\n return mouseX < elementArea.left || mouseX >= elementArea.right || mouseY < elementArea.top || mouseY >= elementArea.bottom;\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener(\"click\")\n @HostListener(\"keydown\")\n public onClick(): void {\n if (this.tooltipEvent === TooltipEvent.Hover &&\n !navigator.userAgent.match(/Android/i) &&\n !navigator.userAgent.match(/iPhone/i)) {\n this.destroy();\n }\n }\n\n // whenever you touch outside the component with the tooltip I destroy the tooltip.\n @HostListener(\"document:touchstart\")\n public onDocumentTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.destroy();\n }\n }\n\n @HostListener(\"focus\")\n public onFocus(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.createTootip();\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.destroy();\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener(\"mouseleave\")\n @HostListener(\"wheel\")\n public onMouseLeave(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.destroy();\n }\n }\n\n @HostListener(\"touchstart\")\n public onTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n window.clearTimeout(this.touchTimeout);\n this.touchTimeout = window.setTimeout(\n this.createTootip.bind(this),\n this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0\n );\n }\n }\n\n @HostListener(\"touchend\")\n public onTouchEnd(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n if (this.mobileBehavior === MobileBehavior.Pressing) {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = [\n TooltipPosition.Top,\n TooltipPosition.Right,\n TooltipPosition.Bottom,\n TooltipPosition.Left,\n ].includes(this.position);\n\n if (!containsPosition) {\n this.position = TooltipPosition.Top;\n throw new Error(`Tooltip ${this.position} position is unexpected`);\n }\n }\n\n private createTootip() {\n if (this.componentRef === null && this.tooltip?.length) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setTooltipComponentProperties();\n this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);\n\n this.tooltipDivElement = domElem.querySelector('.tooltip');\n\n if (this.displayTime) {\n window.setTimeout(this.destroy.bind(this), this.displayTime);\n }\n }\n }\n\n private showTooltip() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n\n window.addEventListener('mousemove', this.boundOnWindowMouseMoveFunction);\n }\n }\n\n private setTooltipComponentProperties() {\n const margin = 20;\n const anchorSize = 5;\n\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n this.componentRef.instance.escape = this.escape;\n\n const { left, right, top, bottom } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipHeight = bottom - top;\n const tooltipWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: TooltipPosition[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(TooltipPosition.Top)\n && invalidOptions.includes(TooltipPosition.Bottom)\n && invalidOptions.includes(TooltipPosition.Left)\n && invalidOptions.includes(TooltipPosition.Right)) {\n this.destroy();\n throw new Error(\"No space to show tooltip\");\n }\n\n switch (this.position) {\n case TooltipPosition.Top: {\n if (invalidOptions.includes(TooltipPosition.Top)) {\n this.position = TooltipPosition.Left;\n break;\n }\n\n const topShift = top;\n\n if (topShift <= tooltipHeight + safeSpace) {\n this.position = TooltipPosition.Bottom;\n invalidOptions.push(TooltipPosition.Top);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);\n this.componentRef.instance.top = Math.round(top - margin - anchorSize);\n positioned = true;\n break;\n }\n case TooltipPosition.Bottom: {\n\n if (invalidOptions.includes(TooltipPosition.Bottom)) {\n this.position = TooltipPosition.Left;\n break;\n }\n\n const bottomShift = document.body.clientHeight - bottom;\n\n if (bottomShift <= tooltipHeight + safeSpace) {\n this.position = TooltipPosition.Top;\n invalidOptions.push(TooltipPosition.Bottom);\n break;\n }\n\n this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);\n this.componentRef.instance.top = Math.round(bottom + margin);\n positioned = true;\n break;\n }\n case TooltipPosition.Left: {\n if (invalidOptions.includes(TooltipPosition.Left)) {\n this.position = TooltipPosition.Top;\n break;\n }\n\n const leftShift = left;\n\n if (leftShift <= tooltipWidth + safeSpace) {\n this.position = TooltipPosition.Right;\n invalidOptions.push(TooltipPosition.Left);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(left - margin);\n this.componentRef.instance.top = Math.round(top + tooltipHeight / 2 - anchorSize);\n positioned = true;\n break;\n }\n case TooltipPosition.Right: {\n if (invalidOptions.includes(TooltipPosition.Right)) {\n this.position = TooltipPosition.Top;\n break;\n }\n\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= tooltipWidth + safeSpace) {\n this.position = TooltipPosition.Left;\n invalidOptions.push(TooltipPosition.Right);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(right + margin);\n this.componentRef.instance.top = Math.round(top + tooltipHeight / 2 - anchorSize);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private destroy(): void {\n if (this.componentRef !== null) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n\n window.removeEventListener('mousemove', this.boundOnWindowMouseMoveFunction);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipDirective } from \"./tooltip.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TooltipComponent,\n TooltipDirective,\n ],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { AccordionComponent } from \"./accordion.component\";\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n BrowserAnimationsModule,\n TooltipModule,\n SwitchModule,\n ],\n declarations: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n exports: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n})\nexport class AccordionModule { }\n","export enum BadgeColors {\n Red = \"red\",\n Orange = \"orange\",\n Yellow = \"yellow\",\n Blue = \"blue\",\n Green = \"green\",\n Gray = \"gray\",\n}","export enum BadgeTypes {\n Pill = \"pill\",\n Chip = \"chip\",\n}\n","import { Component, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\n\nimport { BadgeColors } from \"./models/badge-colors\";\nimport { BadgeTypes } from \"./models/badge-types\";\n\n@Component({\n selector: \"s-badge\",\n templateUrl: \"./badge.component.html\",\n styleUrls: [\"./badge.component.scss\"],\n})\nexport class BadgeComponent {\n @Input()\n public type = BadgeTypes.Pill;\n\n @Input()\n public color = BadgeColors.Blue;\n\n @Input()\n public title: string;\n\n @Input()\n public text: string;\n\n @Input()\n public selectable = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public iconPosition: \"left\" | \"right\" = \"left\";\n\n @Output()\n public selected: EventEmitter<string> = new EventEmitter();\n\n @HostListener(\"click\")\n public onClick() {\n this.selected.emit(this.text);\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { BadgeComponent } from \"./badge.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n ],\n declarations: [BadgeComponent],\n exports: [\n BadgeComponent,\n RouterModule,\n ],\n})\nexport class BadgeModule { }","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\nimport { ActivatedRoute, Router, NavigationEnd, PRIMARY_OUTLET } from \"@angular/router\";\nimport { MenuItem } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n @Input() public targetHomeUrl: string = \"_self\";\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n\n if (this.homeUrl) home = { url: this.homeUrl, icon: \"fa fa-home\", target: this.targetHomeUrl };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: \"fa fa-home\" };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], [\"/\"]);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from \"primeng/breadcrumb\";\n\nimport { BreadcrumbComponent } from \"./breadcrumb.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","export enum ButtonPriority {\n Default = \"default\",\n Primary = \"primary\",\n Secondary = \"secondary\",\n Link = \"link\",\n}\n","export enum ButtonSize {\n Default = \"default\",\n Small = \"small\",\n}\n","\nexport enum EnumButtonAnimation {\n rotate = 'rotate',\n}","import { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\nimport { TieredMenu } from \"primeng/tieredmenu\";\nimport { DomHandler } from \"primeng/dom\";\nimport { ButtonPriority } from \"./button-priority\";\nimport { ButtonSize } from \"./button-size\";\nimport { EnumButtonAnimation } from \"./button-animation-type\";\n@Component({\n selector: \"s-button\",\n templateUrl: \"./button.component.html\",\n styleUrls: [\"./button.component.scss\"],\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @HostBinding(\"style.min-width\")\n public minWidth = \"40px\";\n\n @Input()\n public id = `s-button-${ButtonComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public rightIconClass: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type = \"button\";\n\n @Input()\n public priority: ButtonPriority = ButtonPriority.Primary;\n\n @Input()\n public model: MenuItem[] = [];\n\n @Input()\n public size = ButtonSize.Default;\n\n @Input()\n public slide: boolean;\n\n @Input()\n public animation: EnumButtonAnimation;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n public tooltipZIndex: number;\n\n @ViewChild(TieredMenu, { static: true })\n private menu: TieredMenu;\n\n public ngOnInit() {\n this.onClick.subscribe((event: any) => {\n if (!this.model || !this.model.length) return;\n\n this.menu.model = this.model;\n this.menu.toggle(event);\n });\n }\n\n public validateSlideButton() {\n return this.slide && (this.priority == ButtonPriority.Default || this.priority == ButtonPriority.Link) && this.label.length;\n }\n\n public isOpen() {\n return this.model && this.model.length && this.menu.visible;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n const isMultiple = this.model && this.model.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = \"80px\";\n if (hasText && hasIcon && isMultiple) this.minWidth = \"100px\";\n }\n\n public updateTooltipZIndex() {\n this.tooltipZIndex = this.baseZIndex + ++DomHandler.zindex;\n }\n\n public isRotateAnimation() {\n return this.animation === EnumButtonAnimation.rotate;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { TieredMenuModule } from \"primeng/tieredmenu\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonComponent } from \"./button.component\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, TieredMenuModule, TooltipModule],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule {}\n","import { AfterViewChecked, Directive, HostListener, Input, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { Calendar } from \"primeng/calendar\";\n\n@Directive({\n selector: \"p-calendar[sCalendarMask]\",\n})\nexport class CalendarMaskDirective implements OnInit, OnDestroy, AfterViewChecked {\n\n SELECTORS = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n @Input()\n public slotChar = \"_\";\n\n @Input()\n public autoClear = false;\n\n public value: any;\n public input: HTMLInputElement;\n public filled: boolean;\n\n private _mask: string;\n private defs: any;\n private tests: any[];\n private partialPosition: any;\n private firstNonMaskPos: number;\n private lastRequiredNonMaskPos: any;\n private len: number;\n private oldVal: string;\n private buffer: any;\n private defaultBuffer: string;\n private focusText: string;\n private caretTimeoutId: any;\n private androidChrome: boolean;\n private firstTime = true;\n\n private focusListener: () => void;\n private blurListener: () => void;\n private keydownListener: () => void;\n private keypressListener: () => void;\n private inputListener: () => void;\n private pasteListener: () => void;\n\n constructor(public host: Calendar, public renderer: Renderer2) {}\n\n private setListeners() {\n this.input = this.host.inputfieldViewChild.nativeElement;\n this.value = this.input.value;\n\n this.focusListener = this.renderer.listen(this.input, \"focus\", () => {\n this.onInputFocus();\n });\n\n this.blurListener = this.renderer.listen(this.input, \"blur\", (event: any) => {\n this.onInputBlur(event);\n });\n\n this.keydownListener = this.renderer.listen(this.input, \"keydown\", (event: any) => {\n this.onKeyDown(event);\n });\n\n this.keypressListener = this.renderer.listen(this.input, \"keypress\", (event: any) => {\n this.onKeyPress(event);\n });\n\n this.inputListener = this.renderer.listen(this.input, \"input\", (event: any) => {\n this.onInputChange(event);\n });\n\n this.pasteListener = this.renderer.listen(this.input, \"paste\", (event: any) => {\n this.handleInputChange(event);\n });\n }\n\n public ngOnInit() {\n const ua = navigator.userAgent;\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n\n this.createMaskFromDateFormat();\n this.initMask();\n }\n\n get mask(): string {\n return this._mask;\n }\n\n set mask(val: string) {\n this._mask = val;\n\n this.initMask();\n this.writeValue(\"\");\n }\n\n public writeValue(value: any): void {\n this.value = value;\n\n if (this.input) {\n if (this.value == undefined) {\n this.input.value = \"\";\n } else {\n this.input.value = this.value;\n }\n\n this.checkVal();\n this.focusText = this.input.value;\n this.updateFilledState();\n }\n }\n\n public onInputBlur(e: any) {\n this.checkVal();\n this.updateFilledState();\n\n if (this.value != this.focusText) {\n if (\n !this.input.disabled &&\n (this.value === undefined || this.value === null || (this.value as string).indexOf(this.slotChar) >= 0)\n ) {\n this.value = \"\";\n e.target.value = \"\";\n this.host.updateModel(null);\n }\n\n this.updateModel(e);\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"change\", true, false);\n this.input.dispatchEvent(event);\n }\n }\n\n public onKeyDown(e: any) {\n if (this.host.readonlyInput) {\n return;\n }\n\n const k = e.which || e.keyCode;\n const iPhone = /iphone/i.test(navigator.userAgent);\n let pos;\n let begin;\n let end;\n this.oldVal = this.input.value;\n\n // Backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || (iPhone && k === 127)) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1));\n end = k === 46 ? this.seekNext(end) : end;\n }\n\n this.clearBuffer(begin, end);\n this.shiftL(begin, end - 1);\n this.updateModel(e);\n\n e.preventDefault();\n } else if (k === 13) {\n // Enter\n this.onInputBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // Escape\n this.input.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n\n public onKeyPress(e: any) {\n if (this.host.readonlyInput) return;\n\n const k = e.which || e.keyCode;\n const pos = this.caret();\n let p;\n let c;\n let next: any;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {\n // Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(navigator.userAgent)) {\n // Path for CSP Violation on FireFox OS 1.1\n const proxy = () => {\n this.caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n }\n }\n e.preventDefault();\n }\n\n this.updateModel(e);\n this.updateFilledState();\n }\n\n public checkVal(allow?: boolean) {\n // Try to place characters where they belong\n const test = this.input.value;\n let lastMatch = -1;\n let i: any;\n let c: any;\n let pos = 0;\n\n for (i = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join(\"\") === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.input.value) {\n this.input.value = \"\";\n }\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.input.value = this.input.value.substring(0, lastMatch + 1);\n }\n\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n\n public onInputFocus() {\n if (this.host.readonlyInput) return;\n\n clearTimeout(this.caretTimeoutId);\n let pos: any;\n\n this.focusText = this.input.value;\n\n pos = this.checkVal();\n\n this.caretTimeoutId = setTimeout(() => {\n if (this.input !== document.activeElement) {\n return;\n }\n this.writeBuffer();\n if (pos == this.mask.replace(\"?\", \"\").length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n }\n\n public onInputChange(event: any) {\n if (this.androidChrome) this.handleAndroidInput(event);\n else this.handleInputChange(event);\n }\n\n public handleInputChange(event: any) {\n if (this.host.readonlyInput) return;\n\n setTimeout(() => {\n const pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n }, 0);\n }\n\n public updateModel(e: any) {\n const updatedValue = e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.host.onUserInput(e);\n }\n }\n\n public updateFilledState() {\n this.filled = this.input && this.input.value != \"\";\n }\n\n public focus() {\n this.input.focus();\n }\n\n private initMask() {\n this.tests = [];\n this.partialPosition = this.mask.length;\n this.len = this.mask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n \"9\": \"[0-9]\",\n };\n\n const maskTokens = this.mask.split(\"\");\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c == \"?\") {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n\n this.buffer = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c != \"?\") {\n if (this.defs[c]) {\n this.buffer.push(this.getPlaceholder(i));\n } else {\n this.buffer.push(c);\n }\n }\n }\n\n this.defaultBuffer = this.buffer.join(\"\");\n }\n\n private caret(first?: number, last?: number) {\n let range, begin, end;\n\n if (!this.input.offsetParent || this.input !== document.activeElement) {\n return;\n }\n\n if (typeof first == \"number\") {\n begin = first;\n end = typeof last === \"number\" ? last : begin;\n\n if (this.input.setSelectionRange) {\n this.input.setSelectionRange(begin, end);\n } else if (this.input[\"createTextRange\"]) {\n range = this.input[\"createTextRange\"]();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n } else {\n if (this.input.setSelectionRange) {\n begin = this.input.selectionStart;\n end = this.input.selectionEnd;\n } else if (document[\"selection\"] && document[\"selection\"].createRange) {\n range = document[\"selection\"].createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -100000);\n end = begin + range.text.length;\n }\n\n return { begin: begin, end: end };\n }\n }\n\n private getPlaceholder(i: number) {\n if (i < this.slotChar.length) return this.slotChar.charAt(i);\n return this.slotChar.charAt(0);\n }\n\n private seekNext(pos: any) {\n while (++pos < this.len) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private seekPrev(pos: any) {\n while (--pos >= 0 && !this.tests[pos]) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private shiftL(begin: number, end: number) {\n let i: any;\n let j: any;\n\n if (begin < 0) {\n return;\n }\n\n j = this.seekNext(end);\n\n for (i = begin; i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else break;\n\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n\n private shiftR(pos: any) {\n let i: any;\n let c = this.getPlaceholder(pos);\n let j: any;\n let t: any;\n\n for (i = pos; i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else break;\n }\n }\n }\n\n private handleAndroidInput(e: any) {\n const curVal = this.input.value;\n const pos = this.caret();\n\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // A deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) {\n pos.begin--;\n }\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n } else {\n this.checkVal(true);\n\n while (pos.begin < this.len && !this.tests[pos.begin]) {\n pos.begin++;\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n }\n }\n\n private updateCalendarValue(sentVal: string) {\n // TODO verificar\n const dateVal = <Date>this.host.parseValueFromString(sentVal);\n if (this.host.isSelectable(dateVal.getDate(), dateVal.getMonth(), dateVal.getFullYear(), false)) {\n this.host.updateModel(sentVal);\n this.host.updateUI();\n }\n }\n\n private clearBuffer(start: any, end: any) {\n let i;\n\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n\n private writeBuffer() {\n this.input.value = this.buffer.join(\"\");\n }\n\n private createMaskFromDateFormat() {\n const calendar = this.host;\n let mask = this.autoClear ? \"?\" : \"\";\n\n if (!calendar.timeOnly) {\n let dateFormat = calendar.dateFormat;\n dateFormat = dateFormat.replace(/y/g, \"yy\");\n mask += dateFormat.replace(/[^/*,.\\-+\\[\\]\\\\]/g, \"9\");\n if (calendar.showTime) {\n mask += \" \";\n }\n }\n\n if (calendar.showTime || calendar.timeOnly) {\n mask += \"99:99\";\n if (calendar.showSeconds) {\n mask += \":99\";\n }\n }\n\n this._mask = mask;\n\n this.initMask();\n }\n\n isCompleted(): boolean {\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n ngAfterViewChecked(): void {\n if (this.host.inputfieldViewChild && this.firstTime) {\n this.firstTime = false;\n this.setListeners();\n this.input.type = \"tel\";\n }\n }\n\n ngOnDestroy(): void {\n if (this.focusListener) this.focusListener();\n if (this.blurListener) this.blurListener();\n if (this.keydownListener) this.keydownListener();\n if (this.keypressListener) this.keypressListener();\n if (this.inputListener) this.inputListener();\n if (this.pasteListener) this.pasteListener();\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeydownEventTest(e: KeyboardEvent) {\n const { key } = e;\n if (key == \"Tab\") {\n // Este código foi implementado para corrigir um problema no componente na v9\n // Deve ser removido assim que atualizarmos o PrimeNG para a v10\n const allFocusableElements = document.querySelectorAll(this.SELECTORS);\n let nextIsFocusable = false;\n let previousFocusable: string;\n let forceCloseModal = true;\n allFocusableElements.forEach(element => {\n if (!e.shiftKey) {\n if (nextIsFocusable && element.id) {\n this.focusableElement(element.id, forceCloseModal);\n nextIsFocusable = false;\n e.preventDefault();\n return;\n }\n }\n\n let activeTagName = window.document.activeElement.tagName;\n if (e.shiftKey && element.id && element.tagName === \"INPUT\" && activeTagName == \"BUTTON\") {\n previousFocusable = element.id;\n forceCloseModal = false;\n }\n \n if (element.id === this.host.inputId) {\n if (previousFocusable) {\n this.focusableElement(previousFocusable, forceCloseModal);\n e.preventDefault();\n forceCloseModal = true;\n return;\n }\n nextIsFocusable = true;\n } else if (e.shiftKey && element.id) {\n previousFocusable = element.id;\n }\n });\n }\n }\n\n public focusableElement(id: string, hide: boolean) {\n const htmlElement = window.document.getElementById(id);\n htmlElement.focus();\n if(hide)\n this.host.hideOverlay();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CalendarMaskDirective } from \"./calendar-mask.directive\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [CalendarMaskDirective],\n imports: [CommonModule],\n exports: [CalendarMaskDirective],\n})\nexport class CalendarMaskModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-link\",\n templateUrl: \"./collapse-link.component.html\",\n styleUrls: [\"./collapse-link.component.scss\"],\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"void\",\n style({\n height: 0,\n opacity: 0,\n })\n ),\n state(\n \"*\",\n style({\n height: \"*\",\n opacity: 1,\n })\n ),\n transition(\"void <=> *\", animate(\"400ms cubic-bezier(0.86, 0, 0.07, 1)\")),\n ]),\n ],\n})\nexport class CollapseLinkComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public buttonId = `s-collapse-button-${CollapseLinkComponent.nextId++}`;\n @Input()\n public expandedLabel = \"Mostrar menos\";\n @Input()\n public collapsedLabel = \"Mostrar mais\";\n @Input()\n public disabled = false;\n @Input()\n public collapse = true;\n\n public collapsed = true;\n public animating: boolean;\n\n constructor() {}\n\n public ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.collapse) {\n this.onCollapse(changes.collapse.currentValue);\n }\n }\n\n public toggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n public onCollapse(collapse: boolean) {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = collapse;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { CollapseLinkComponent } from \"./collapse-link.component\";\n\n@NgModule({\n declarations: [CollapseLinkComponent],\n exports: [CollapseLinkComponent],\n imports: [CommonModule],\n})\nexport class CollapseLinkModule {}\n","import { AbstractControl } from \"@angular/forms\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-control-errors\",\n templateUrl: \"./control-errors.component.html\",\n styleUrls: [\"./control-errors.component.scss\"],\n})\nexport class ControlErrorsComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-control-errors-${ControlErrorsComponent.nextId++}`;\n @Input()\n control: AbstractControl;\n @Input()\n errorMessages: any = {};\n @Input()\n form: any;\n\n getErrorMessagesList() {\n if (!this.control || !this.control.dirty) {\n return [];\n }\n return Object.keys(this.control.errors || {}).map(error => this.errorMessages?.[error]);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ControlErrorsComponent } from \"./control-errors.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n declarations: [ControlErrorsComponent],\n exports: [ControlErrorsComponent],\n})\nexport class ControlErrorsModule {}\n","import { CountryPhoneData } from \"../models/country-phone-data\";\n\nexport const countries: CountryPhoneData[] = [\n { id: \"br\", ddi: \"+55\", mask: [\"(00) 0000-00009\", \"(00) 00000-0000\"] },\n { id: \"us\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"co\", ddi: \"+57\", mask: \"000 0000000\" },\n { id: \"ar\", ddi: \"+54\", mask: \"000 00-0000-0000\" },\n { id: \"cl\", ddi: \"+56\", mask: \"(0) 0000-0000\" },\n { id: \"py\", ddi: \"+595\", mask: \"0000 000000\" },\n { id: \"uy\", ddi: \"+598\", mask: \"000 000 000\" },\n { id: \"cn\", ddi: \"+86\", mask: \"000 0000 0000\" },\n { id: \"ca\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"as\", ddi: \"+1684\", mask: \"000-0000\" },\n { id: \"ai\", ddi: \"+1264\", mask: \"000-0000\" },\n { id: \"ag\", ddi: \"+1268\", mask: \"000-0000\" },\n { id: \"bs\", ddi: \"+1242\", mask: \"000-0000\" },\n { id: \"bb\", ddi: \"+1246\", mask: \"000-0000\" },\n { id: \"bm\", ddi: \"+1441\", mask: \"000-0000\" },\n { id: \"vg\", ddi: \"+1284\", mask: \"000-0000\" },\n { id: \"ky\", ddi: \"+1345\", mask: \"000-0000\" },\n { id: \"dm\", ddi: \"+1767\", mask: \"000-0000\" },\n { id: \"do\", ddi: \"+1809\", mask: \"000-0000\" },\n { id: \"gd\", ddi: \"+1473\", mask: \"000-0000\" },\n { id: \"gu\", ddi: \"+1671\", mask: \"000-0000\" },\n { id: \"jm\", ddi: \"+1876\", mask: \"000-0000\" },\n { id: \"ms\", ddi: \"+1664\", mask: \"000-0000\" },\n { id: \"mp\", ddi: \"+1670\", mask: \"000-0000\" },\n { id: \"pr\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"kn\", ddi: \"+1869\", mask: \"000-0000\" },\n { id: \"lc\", ddi: \"+1758\", mask: \"000-0000\" },\n { id: \"vc\", ddi: \"+1784\", mask: \"000-0000\" },\n { id: \"tt\", ddi: \"+1868\", mask: \"000-0000\" },\n { id: \"tc\", ddi: \"+1649\", mask: \"000-0000\" },\n { id: \"fi\", ddi: \"+358\", mask: \"000 0000000\" },\n { id: \"rs\", ddi: \"+381\", mask: \"000 0000000\" },\n { id: \"zm\", ddi: \"+260\", mask: \"000 0000000\" },\n { id: \"af\", ddi: \"+93\", mask: \"000 000 0000\" },\n { id: \"al\", ddi: \"+355\", mask: \"000 000 0000\" },\n { id: \"hr\", ddi: \"+385\", mask: \"000 000 0000\" },\n { id: \"ec\", ddi: \"+593\", mask: \"000 000 0000\" },\n { id: \"et\", ddi: \"+251\", mask: \"000 000 0000\" },\n { id: \"gh\", ddi: \"+233\", mask: \"000 000 0000\" },\n { id: \"gr\", ddi: \"+30\", mask: \"000 000 0000\" },\n { id: \"ie\", ddi: \"+353\", mask: \"000 000 0000\" },\n { id: \"it\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"lr\", ddi: \"+231\", mask: \"000 000 0000\" },\n { id: \"na\", ddi: \"+264\", mask: \"000 000 0000\" },\n { id: \"nz\", ddi: \"+64\", mask: \"000 000 0000\" },\n { id: \"sa\", ddi: \"+966\", mask: \"000 000 0000\" },\n { id: \"za\", ddi: \"+27\", mask: \"000 000 0000\" },\n { id: \"lk\", ddi: \"+94\", mask: \"000 000 0000\" },\n { id: \"sd\", ddi: \"+249\", mask: \"000 000 0000\" },\n { id: \"th\", ddi: \"+66\", mask: \"000 000 0000\" },\n { id: \"ua\", ddi: \"+380\", mask: \"000 000 0000\" },\n { id: \"ae\", ddi: \"+971\", mask: \"000 000 0000\" },\n { id: \"va\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"zw\", ddi: \"+263\", mask: \"000 000 0000\" },\n { id: \"dz\", ddi: \"+213\", mask: \"0000 00 00 00\" },\n { id: \"be\", ddi: \"+32\", mask: \"0000 00 00 00\" },\n { id: \"yt\", ddi: \"+262\", mask: \"0000 00 00 00\" },\n { id: \"bl\", ddi: \"+590\", mask: \"0000 00 00 00\" },\n { id: \"mf\", ddi: \"+1599\", mask: \"0000 00 00 00\" },\n { id: \"ad\", ddi: \"+376\", mask: \"000-000\" },\n { id: \"ao\", ddi: \"+244\", mask: \"000 000 000\" },\n { id: \"ba\", ddi: \"+387\", mask: \"000 000 000\" },\n { id: \"bg\", ddi: \"+359\", mask: \"000 000 000\" },\n { id: \"kh\", ddi: \"+855\", mask: \"000 000 000\" },\n { id: \"cz\", ddi: \"+420\", mask: \"000 000 000\" },\n { id: \"gq\", ddi: \"+240\", mask: \"000 000 000\" },\n { id: \"gw\", ddi: \"+245\", mask: \"000 000 000\" },\n { id: \"li\", ddi: \"+423\", mask: \"000 000 000\" },\n { id: \"lu\", ddi: \"+352\", mask: \"000 000 000\" },\n { id: \"mk\", ddi: \"+389\", mask: \"000 000 000\" },\n { id: \"me\", ddi: \"+382\", mask: \"000 000 000\" },\n { id: \"pe\", ddi: \"+51\", mask: \"000 000 000\" },\n { id: \"pl\", ddi: \"+48\", mask: \"000 000 000\" },\n { id: \"pt\", ddi: \"+351\", mask: \"000 000 000\" },\n { id: \"si\", ddi: \"+386\", mask: \"000 000 000\" },\n { id: \"am\", ddi: \"+374\", mask: \"000 000000\" },\n { id: \"aw\", ddi: \"+297\", mask: \"000 0000\" },\n { id: \"bn\", ddi: \"+673\", mask: \"000 0000\" },\n { id: \"fj\", ddi: \"+679\", mask: \"000 0000\" },\n { id: \"gm\", ddi: \"+220\", mask: \"000 0000\" },\n { id: \"gy\", ddi: \"+592\", mask: \"000 0000\" },\n { id: \"is\", ddi: \"+354\", mask: \"000 0000\" },\n { id: \"fm\", ddi: \"+691\", mask: \"000 0000\" },\n { id: \"nr\", ddi: \"+674\", mask: \"000 0000\" },\n { id: \"nu\", ddi: \"+683\", mask: \"000 0000\" },\n { id: \"pw\", ddi: \"+680\", mask: \"000 0000\" },\n { id: \"st\", ddi: \"+239\", mask: \"000 0000\" },\n { id: \"to\", ddi: \"+676\", mask: \"000 0000\" },\n { id: \"vu\", ddi: \"+678\", mask: \"000 0000\" },\n { id: \"fk\", ddi: \"+500\", mask: \"00000\" },\n { id: \"fo\", ddi: \"+298\", mask: \"00000\" },\n { id: \"sh\", ddi: \"+290\", mask: \"00000\" },\n { id: \"au\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cx\", ddi: \"+61\", mask: \"0000 000 000\" }, \n { id: \"cc\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cd\", ddi: \"+243\", mask: \"0000 000 000\" },\n { id: \"kg\", ddi: \"+996\", mask: \"0000 000 000\" },\n { id: \"ro\", ddi: \"+40\", mask: \"0000 000 000\" },\n { id: \"rw\", ddi: \"+250\", mask: \"0000 000 000\" },\n { id: \"sk\", ddi: \"+421\", mask: \"0000 000 000\" },\n { id: \"sy\", ddi: \"+963\", mask: \"0000 000 000\" },\n { id: \"tw\", ddi: \"+886\", mask: \"0000 000 000\" },\n { id: \"tz\", ddi: \"+255\", mask: \"0000 000 000\" },\n { id: \"ye\", ddi: \"+967\", mask: \"0000 000 000\" },\n { id: \"at\", ddi: \"+43\", mask: \"0000 000000\" },\n { id: \"ke\", ddi: \"+254\", mask: \"0000 000000\" },\n { id: \"ug\", ddi: \"+256\", mask: \"0000 000000\" },\n { id: \"az\", ddi: \"+994\", mask: \"000 000 00 00\" },\n { id: \"ch\", ddi: \"+41\", mask: \"000 000 00 00\" },\n { id: \"vn\", ddi: \"+84\", mask: \"000 000 00 00\" },\n { id: \"bh\", ddi: \"+973\", mask: \"0000 0000\" },\n { id: \"cr\", ddi: \"+506\", mask: \"0000 0000\" },\n { id: \"sv\", ddi: \"+503\", mask: \"0000 0000\" },\n { id: \"ee\", ddi: \"+372\", mask: \"0000 0000\" },\n { id: \"sz\", ddi: \"+268\", mask: \"0000 0000\" },\n { id: \"gt\", ddi: \"+502\", mask: \"0000 0000\" },\n { id: \"hk\", ddi: \"+852\", mask: \"0000 0000\" },\n { id: \"ls\", ddi: \"+266\", mask: \"0000 0000\" },\n { id: \"mo\", ddi: \"+853\", mask: \"0000 0000\" },\n { id: \"mt\", ddi: \"+356\", mask: \"0000 0000\" },\n { id: \"mu\", ddi: \"+230\", mask: \"0000 0000\" },\n { id: \"mn\", ddi: \"+976\", mask: \"0000 0000\" },\n { id: \"ni\", ddi: \"+505\", mask: \"0000 0000\" },\n { id: \"om\", ddi: \"+968\", mask: \"0000 0000\" },\n { id: \"pg\", ddi: \"+675\", mask: \"0000 0000\" },\n { id: \"qa\", ddi: \"+974\", mask: \"0000 0000\" },\n { id: \"sg\", ddi: \"+65\", mask: \"0000 0000\" },\n { id: \"tl\", ddi: \"+670\", mask: \"0000 0000\" }, \n { id: \"bd\", ddi: \"+880\", mask: \"00000 000000\" },\n { id: \"im\", ddi: \"+44\", mask: \"00000 000000\" },\n { id: \"by\", ddi: \"+375\", mask: \"0 000 000-00-00\" },\n { id: \"bz\", ddi: \"+501\", mask: \"000-0000\" },\n { id: \"mv\", ddi: \"+960\", mask: \"000-0000\" },\n { id: \"mh\", ddi: \"+692\", mask: \"000-0000\" },\n { id: \"sr\", ddi: \"+597\", mask: \"000-0000\" },\n { id: \"bj\", ddi: \"+229\", mask: \"00 00 00 00\" },\n { id: \"bt\", ddi: \"+975\", mask: \"00 00 00 00\" },\n { id: \"bf\", ddi: \"+226\", mask: \"00 00 00 00\" },\n { id: \"bi\", ddi: \"+257\", mask: \"00 00 00 00\" },\n { id: \"cf\", ddi: \"+236\", mask: \"00 00 00 00\" },\n { id: \"td\", ddi: \"+235\", mask: \"00 00 00 00\" },\n { id: \"ci\", ddi: \"+225\", mask: \"00 00 00 00\" },\n { id: \"dk\", ddi: \"+45\", mask: \"00 00 00 00\" },\n { id: \"dj\", ddi: \"+253\", mask: \"00 00 00 00\" },\n { id: \"fr\", ddi: \"+33\", mask: \"00 00 00 00\" },\n { id: \"pf\", ddi: \"+689\", mask: \"00 00 00 00\" },\n { id: \"ga\", ddi: \"+241\", mask: \"00 00 00 00\" },\n { id: \"ml\", ddi: \"+223\", mask: \"00 00 00 00\" },\n { id: \"mr\", ddi: \"+222\", mask: \"00 00 00 00\" },\n { id: \"ne\", ddi: \"+227\", mask: \"00 00 00 00\" },\n { id: \"sm\", ddi: \"+378\", mask: \"00 00 00 00\" },\n { id: \"tg\", ddi: \"+228\", mask: \"00 00 00 00\" },\n { id: \"bo\", ddi: \"+591\", mask: \"00000000\" },\n { id: \"gi\", ddi: \"+350\", mask: \"00000000\" },\n { id: \"ki\", ddi: \"+686\", mask: \"00000000\" },\n { id: \"tv\", ddi: \"+688\", mask: \"00000000\" },\n { id: \"bw\", ddi: \"+267\", mask: \"00 000 000\" },\n { id: \"er\", ddi: \"+291\", mask: \"00 000 000\" },\n { id: \"lv\", ddi: \"+371\", mask: \"00 000 000\" },\n { id: \"lb\", ddi: \"+961\", mask: \"00 000 000\" },\n { id: \"tn\", ddi: \"+216\", mask: \"00 000 000\" },\n { id: \"cm\", ddi: \"+237\", mask: \"0 00 00 00 00\" },\n { id: \"cv\", ddi: \"+238\", mask: \"000 00 00\" },\n { id: \"km\", ddi: \"+269\", mask: \"000 00 00\" },\n { id: \"pm\", ddi: \"+508\", mask: \"000 00 00\" },\n { id: \"cg\", ddi: \"+242\", mask: \"00 000 0000\" },\n { id: \"mz\", ddi: \"+258\", mask: \"00 000 0000\" },\n { id: \"mm\", ddi: \"+95\", mask: \"00 000 0000\" },\n { id: \"ck\", ddi: \"+682\", mask: \"00 000\" },\n { id: \"cu\", ddi: \"+53\", mask: \"00 000000\" },\n { id: \"cy\", ddi: \"+357\", mask: \"00 000000\" },\n { id: \"eg\", ddi: \"+20\", mask: \"0000 000 0000\" },\n { id: \"ir\", ddi: \"+98\", mask: \"0000 000 0000\" },\n { id: \"iq\", ddi: \"+964\", mask: \"0000 000 0000\" },\n { id: \"ng\", ddi: \"+234\", mask: \"0000 000 0000\" },\n { id: \"kp\", ddi: \"+850\", mask: \"0000 000 0000\" },\n { id: \"ph\", ddi: \"+63\", mask: \"0000 000 0000\" },\n { id: \"ge\", ddi: \"+995\", mask: \"000 00 00 00\" },\n { id: \"gn\", ddi: \"+224\", mask: \"000 00 00 00\" },\n { id: \"es\", ddi: \"+34\", mask: \"000 00 00 00\" },\n { id: \"de\", ddi: \"+49\", mask: \"00000 0000000\" },\n { id: \"gl\", ddi: \"+299\", mask: \"00 00 00\" },\n { id: \"wf\", ddi: \"+681\", mask: \"00 00 00\" },\n { id: \"ht\", ddi: \"+509\", mask: \"00 00 0000\" },\n { id: \"hn\", ddi: \"+504\", mask: \"0000-0000\" },\n { id: \"pa\", ddi: \"+507\", mask: \"0000-0000\" },\n { id: \"hu\", ddi: \"+36\", mask: \"(00) 000 0000\" },\n { id: \"in\", ddi: \"+91\", mask: \"000000 00000\" },\n { id: \"id\", ddi: \"+62\", mask: \"0000-000-000\" },\n { id: \"il\", ddi: \"+972\", mask: \"000-000-0000\" },\n { id: \"jp\", ddi: \"+81\", mask: \"000-000-0000\" },\n { id: \"jo\", ddi: \"+962\", mask: \"00 0000 0000\" },\n { id: \"kz\", ddi: \"+7\", mask: \"0 (000) 000-0000\" },\n { id: \"kw\", ddi: \"+965\", mask: \"000 00000\" },\n { id: \"la\", ddi: \"+856\", mask: \"000 00 000 000\" },\n { id: \"ly\", ddi: \"+218\", mask: \"000-0000000\" },\n { id: \"lt\", ddi: \"+370\", mask: \"(0-000) 00000\" },\n { id: \"np\", ddi: \"+977\", mask: \"(0-000) 00000\" },\n { id: \"mg\", ddi: \"+261\", mask: \"000 00 000 00\" },\n { id: \"mw\", ddi: \"+265\", mask: \"000 00 000 00\" },\n { id: \"my\", ddi: \"+60\", mask: \"000-000 0000\" },\n { id: \"mx\", ddi: \"+52\", mask: \"000 000 000 0000\" },\n { id: \"md\", ddi: \"+373\", mask: \"0000 00 000\" },\n { id: \"mc\", ddi: \"+377\", mask: \"00 00 00 00 00\" },\n { id: \"ma\", ddi: \"+212\", mask: \"0000-000000\" },\n { id: \"nl\", ddi: \"+31\", mask: \"00 00000000\" },\n { id: \"nc\", ddi: \"+687\", mask: \"00.00.00\" },\n { id: \"no\", ddi: \"+47\", mask: \"000 00 000\" },\n { id: \"pk\", ddi: \"+92\", mask: \"0000 0000000\" },\n { id: \"ru\", ddi: \"+7\", mask: \"0 (000) 000-00-00\" },\n { id: \"ws\", ddi: \"+685\", mask: \"00 00000\" },\n { id: \"sb\", ddi: \"+677\", mask: \"00 00000\" },\n { id: \"sn\", ddi: \"+221\", mask: \"00 000 00 00\" },\n { id: \"sc\", ddi: \"+248\", mask: \"0 000 000\" },\n { id: \"sl\", ddi: \"+232\", mask: \"(000) 000000\" },\n { id: \"so\", ddi: \"+252\", mask: \"0 0000000\" },\n { id: \"kr\", ddi: \"+82\", mask: \"000-0000-0000\" },\n { id: \"se\", ddi: \"+46\", mask: \"000-000 00 00\" },\n { id: \"tj\", ddi: \"+992\", mask: \"000 00 0000\" },\n { id: \"tk\", ddi: \"+690\", mask: \"0000\" },\n { id: \"tr\", ddi: \"+90\", mask: \"0000 000 00 00\" },\n { id: \"tm\", ddi: \"+993\", mask: \"0 00 000000\" }, \n { id: \"uz\", ddi: \"+998\", mask: \"0 00 000 00 00\" },\n { id: \"ve\", ddi: \"+58\", mask: \"0000-0000000\" },\n];","export enum Ordination {\n NO = \"no\",\n AZ = \"az\",\n ZA = \"za\",\n}","import { Injectable } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CountryPhoneData } from \"./models/country-phone-data\";\nimport { countries } from \"./resources/countries\";\nimport { Ordination } from \"./models/ordination\";\n\n@Injectable()\nexport class CountryPhonePickerService {\n constructor(private readonly translate: TranslateService) { }\n\n public getCountries(ordination: Ordination) {\n switch (ordination) {\n case Ordination.AZ:\n return this.sortAlphabetically();\n case Ordination.ZA:\n return this.sortAlphabeticallyDescending();\n case Ordination.NO:\n default:\n return countries;\n }\n }\n\n private sortAlphabetically(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return aName.localeCompare(bName);\n });\n }\n\n private sortAlphabeticallyDescending(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return bName.localeCompare(aName);\n });\n }\n}","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, OnInit, ViewChild, forwardRef } from \"@angular/core\";\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { PhoneSelectionData } from \"./models/phone-selection-data\";\nimport { CountryPhoneData, Ordination } from \"./models\";\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\n\n@Component({\n selector: \"s-country-phone-picker\",\n templateUrl: \"./country-phone-picker.component.html\",\n styleUrls: [\"./country-phone-picker.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CountryPhonePickerComponent),\n multi: true,\n }],\n})\nexport class CountryPhonePickerComponent implements OnInit, ControlValueAccessor {\n public mask: string;\n public selectedItem: CountryPhoneData;\n public currentItemIndex = 0;\n public filteredCountriesList: CountryPhoneData[];\n public phone = new FormControl(\"\");\n public filter = new FormControl(\"\");\n\n private _value: PhoneSelectionData; \n private _onChange: (value: PhoneSelectionData) => void;\n private _onTouched: (value: PhoneSelectionData) => void;\n private _countriesList: CountryPhoneData[];\n private _open = false;\n private offsetTop = 0;\n\n constructor(\n private readonly countryPhonePickerService: CountryPhonePickerService,\n private readonly translate: TranslateService,\n private readonly eRef: ElementRef,\n ) { }\n\n public get value() {\n return this._value;\n }\n\n public set value(value: PhoneSelectionData) {\n this._value = value;\n this.mask = this.getMask();\n }\n\n public writeValue(value: PhoneSelectionData): void {\n this.value = value;\n\n if (value?.id) {\n const country = this._countriesList.filter(({ id }) => id == value.id);\n if (country.length) {\n this.onSelectItem(country[0]);\n }\n }\n\n if (value?.rawValue) {\n this.phone.setValue(value.rawValue);\n }\n }\n\n public registerOnChange(onChange: (value: PhoneSelectionData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: PhoneSelectionData) => void): void {\n this._onTouched = onTouched;\n }\n\n @Input()\n public countries: string[];\n\n @Input()\n public ordination: Ordination = Ordination.NO;\n\n @Output()\n public selected: EventEmitter<CountryPhoneData> = new EventEmitter();\n\n @Output()\n public blur: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @ViewChild(\"phoneInput\", { static: true })\n public phoneInput: ElementRef;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n if (this.open) {\n this.open = false;\n }\n }\n }\n\n public ngOnInit(): void { \n const countries = this.countryPhonePickerService.getCountries(this.ordination);\n this.filter.valueChanges.subscribe(this._filterCountries);\n \n if (this.countries?.length) {\n this._countriesList = countries.filter((country) => this.countries.includes(country.id));\n } else {\n this._countriesList = countries;\n }\n this.filteredCountriesList = this._countriesList;\n this.selectedItem = this._getSelectedCountryDefault();\n this.mask = this.getMask();\n\n this.phone.valueChanges.subscribe((value) => {\n this.value = {\n id: this.selectedItem.id,\n ddi: this.selectedItem.ddi,\n rawValue: value ?? \"\",\n value: value ? `${this._applyMask(value)}` : \"\",\n };\n if (this._onChange) {\n this._onChange(this.value);\n }\n });\n }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n this.selectedItem = this._countriesList[this.currentItemIndex];\n this.selected.emit(this.selectedItem);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n this._moveToDown();\n } else if (event.key === \"ArrowUp\") {\n this._moveToUp();\n }\n }\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n\n if (!open) {\n this.phoneInput.nativeElement.focus();\n }\n }\n\n public onSelectItem(country: CountryPhoneData) {\n this.open = false;\n this.selectedItem = country;\n this.phone.setValue(\"\");\n this.currentItemIndex = this._countriesList.indexOf(this.selectedItem);\n this.selected.emit(this.selectedItem);\n }\n\n public onCleanFilter() {\n this.filter.setValue(\"\");\n }\n\n public onPhoneInputFocus() {\n this.open = false;\n }\n\n public getMask() {\n const mask = this.selectedItem.mask;\n\n if (Array.isArray(mask)) {\n return !this.value?.rawValue || this.value.rawValue.length <= mask[0].replace(/[^0]/g, \"\").length\n ? mask[0] // fixo\n : mask[1]; // celular\n } else {\n return mask;\n }\n }\n\n public getPlaceholder() {\n return this.mask.replace(/9/g, \"\");\n }\n\n private _getSelectedCountryDefault() {\n if (!this._countriesList.length) {\n throw new Error(\"No country loaded\");\n }\n\n const filteredByBr = this._countriesList.filter((country: CountryPhoneData) => country.id === \"br\");\n\n return filteredByBr.length ? filteredByBr[0] : this._countriesList[0]\n }\n\n private _filterCountries = (value: string) => {\n if (!value) {\n this.filteredCountriesList = this._countriesList;\n } else {\n this.filteredCountriesList = this._countriesList.filter((country) => {\n const countryName = this.translate.instant(`platform.angular_components.country_name_${country.id}`) as string;\n return countryName.toLowerCase().includes(value.toLowerCase());\n });\n }\n }\n\n private _moveToUp() {\n if (this.currentItemIndex == 0) {\n return;\n }\n\n this.currentItemIndex--;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop <= this.offsetTop) {\n this.offsetTop -= 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _moveToDown() {\n if (this.currentItemIndex >= this._countriesList.length - 1) {\n return;\n }\n\n this.currentItemIndex++;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop > this.offsetTop + 180) {\n this.offsetTop += 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _applyMask(value: string) {\n let mask;\n\n if (Array.isArray(this.selectedItem.mask)) {\n const rawMask = this.selectedItem.mask[0].replace(/[^0]/g, \"\");\n mask = value.length <= rawMask.length\n ? this.selectedItem.mask[0] + \"\\0\"\n : this.selectedItem.mask[1] + \"\\0\";\n } else {\n mask = this.selectedItem.mask + \"\\0\";\n }\n\n let tokens = \"\";\n let replace = \"\";\n let acumulador = 0;\n let contador = 0;\n\n for (const token of mask) {\n if (isNaN(parseInt(token))) {\n if (acumulador) {\n tokens += `(\\\\d{${acumulador}})`;\n replace += `$${++contador}`;\n acumulador = 0;\n }\n\n if (token !== \"\\0\") {\n replace += token;\n }\n } else {\n acumulador++;\n }\n }\n\n tokens = `^${tokens}*`;\n return this.phone.value.replace(new RegExp(tokens), replace);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NgxMaskModule } from \"ngx-mask\";\n\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhonePickerComponent } from \"./country-phone-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgxMaskModule.forRoot(),\n ],\n declarations: [CountryPhonePickerComponent],\n exports: [CountryPhonePickerComponent],\n providers: [CountryPhonePickerService],\n})\nexport class CountryPhonePickerModule { }","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n\n Double = \"Double\",\n Enum = \"Enum\",\n Blob = \"Blob\",\n\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n\n Money = \"Money\",\n Radio = \"Radio\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Custom = \"Custom\",\n Password = \"Password\",\n\n Slider = \"Slider\",\n}\n","export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import { TemplateRef } from \"@angular/core\";\nimport { FieldSize } from \"../field-size\";\nimport { FieldType } from \"../field-type\";\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type: FieldType;\n public size: FieldSize;\n public gridClass: string[];\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n\n constructor(config: FieldConfig) {\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.gridClass = Object.keys(this.size).map(key => `ui-${key}-${this.size[key]}`);\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field {\n public dataKey: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n}\n","export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat = \"24\";\n public dateFormat = \"dd/mm/yy\";\n public firstDayOfWeek = 0;\n public today = \"Hoje\";\n public clear = \"Limpar\";\n public dayNames: string[] = [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"];\n public dayNamesShort: string[] = [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"];\n public dayNamesMin: string[] = [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"];\n public monthNamesShort: string[] = [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"];\n public monthNames: string[] = [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator = \".\";\n public decimalSeparator = \",\";\n public currencySymbol = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from \"./calendar\";\nimport { NumberLocaleOptions } from \"./number\";\n\nexport interface ILocaleOptions {\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n calendar = new CalendarLocaleOptions();\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from \"./calendar\";\nexport * from \"./number\";\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { user } from \"@seniorsistemas/senior-platform-data\";\nimport * as moment_ from \"moment\";\nimport { from, Observable, of } from \"rxjs\";\nimport { catchError, map, switchMap, tap } from \"rxjs/operators\";\nimport { ILocaleOptions, LocaleOptions } from \"./options/index\";\nimport { CookieService } from 'ngx-cookie-service';\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Injectable()\nexport class LocaleService {\n private locale: string;\n private localeOptions: LocaleOptions;\n private localeOptionsAddress = \"https://cdn.senior.com.br/primeng/locales\";\n private localeOptionsVersion = \"3.0.0\";\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService\n ) { }\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(tap((localeOptions: LocaleOptions) => (this.localeOptions = localeOptions)));\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n this.locale = <string>userData.locale || <string>userData.tenantLocale || \"pt-BR\";\n return this.locale;\n })\n );\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get('com.senior.token')));\n } catch (ex) {\n console.warn('Unable to obtain user locale from cookie, calling getUser');\n return user.getUserData();\n }\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(locale);\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map(response => new LocaleOptions(response)));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return of(new LocaleOptions());\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n constructor(\n private localeService: LocaleService\n ) {}\n\n public transform(value?: any, options?: MaskConfig): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: MaskConfig) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: MaskConfig = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n allowNegative: options?.allowNegative ?? true\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public transform(value?: any, options?: MaskConfig): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import * as moment_ from \"moment\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedDate\",\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"L LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport * as moment_ from \"moment\";\nimport { map } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../locale.service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedTime\",\n})\nexport class LocalizedTimePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, \"HH:mm:ss\").format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders } from \"@angular/compiler/src/core\";\nimport { NgModule } from \"@angular/core\";\nimport { LocaleService } from \"./locale.service\";\nimport { LocalizedBignumberImpurePipe } from \"./pipes/localized-bignumber-impure.pipe\";\nimport { LocalizedBignumberPipe } from \"./pipes/localized-bignumber.pipe\";\nimport { LocalizedCurrencyImpurePipe } from \"./pipes/localized-currency-impure.pipe\";\nimport { LocalizedCurrencyPipe } from \"./pipes/localized-currency.pipe\";\nimport { LocalizedDateImpurePipe } from \"./pipes/localized-date-impure.pipe\";\nimport { LocalizedDatePipe } from \"./pipes/localized-date.pipe\";\nimport { LocalizedNumberPipe } from \"./pipes/localized-number.pipe\";\nimport { LocalizedTimeImpurePipe } from \"./pipes/localized-time-impure.pipe\";\nimport { LocalizedTimePipe } from \"./pipes/localized-time.pipe\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { NumberLocaleOptions } from \"../../../locale/index\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { ElementRef } from \"@angular/core\";\nimport { FileDto } from \"../../../file-upload/index\";\nimport { FormField } from \"./../../configurations/form-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = \"radio\";\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from \"./boolean-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = \"switch\";\n }\n}\n","import { CalendarLocaleOptions } from \"../../../locale/index\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || \"date\";\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === \"boolean\" ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions || new CalendarLocaleOptions();\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || \"single\";\n this.rangeSeparator = config.rangeSeparator || \"-\";\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n onAdd: (event: any) => void;\n onRemove: (event: any) => void;\n onChipClick: (event: any) => void;\n onFocus: (event: any) => void;\n onBlur: (event: any) => void;\n}\n\nexport class ChipsField extends Field {\n public keyFilter?: RegExp;\n public onAdd: (event: any) => void;\n public onRemove: (event: any) => void;\n public onChipClick: (event: any) => void;\n public onFocus: (event: any) => void;\n public onBlur: (event: any) => void;\n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n }\n}\n","import { Directive, forwardRef, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { CurrencyMaskDirective } from \"ng2-currency-mask\";\n\n/**\n * @deprecated Should use 'AlignmentOptions' from @seniorsistemas/ng2-currency-mask instead\n */\nexport enum NumberAlignmentOption {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * @deprecated Should use BigNumberInput directive instead\n */\n@Directive({\n selector: \"input[sNumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class NumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator = \",\";\n\n @Input()\n public thousandsSeparator = \".\";\n\n @Input()\n public alignTo = NumberAlignmentOption.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private regex: RegExp = /\\d/;\n\n public ngOnInit() {\n this.updateVariables();\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimal: this.decimalSeparator,\n thousands: this.thousandsSeparator,\n precision: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator.length;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this.maxLength = maxLength;\n }\n\n /**\n * Prevents the default CurrencyMask behavior when typed a incorrect value.\n * By default the CurrencyMask inputs the mask value to the component value when typed a incorrect value.\n */\n public handleKeypress(event: KeyboardEvent): void {\n const negativeOperator = \"-\";\n const { key } = event;\n\n if (\n this.thousandsSeparator.includes(key) ||\n this.decimalSeparator.includes(key) ||\n negativeOperator.includes(key) ||\n this.regex.test(key) ||\n \"Enter\".toUpperCase() === key.toUpperCase()\n )\n super.handleKeypress(event);\n else event.preventDefault();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NumberInputDirective } from \"./number-input.directive\";\n\n/**\n * @deprecated Should use 'BignumberInputModule' instead\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [NumberInputDirective],\n exports: [NumberInputDirective],\n})\nexport class NumberInputModule {}\n","import { NumberLocaleOptions } from \"../../../locale/index\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n alignTo?: NumberAlignmentOption;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public alignTo: NumberAlignmentOption;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { NumberField, NumberFieldConfig } from \"./number-field\";\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: Function | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public scale?: Function | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = config.scale || config.scale === 0 ? config.scale : 2;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { DecimalField, DecimalFieldConfig } from \"./decimal-field\";\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\nimport { DefaultFilter } from \"../../components/lookup/models\";\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterLabel?: string;\n filterTitle?: string;\n clearLabel?: string;\n cancelLabel?: string;\n selectLabel?: string;\n emptyMessage?: string;\n recordLabel?: string;\n recordsLabel?: string;\n emptyFieldLabel?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class LookupField extends Field {\n public multiple = false;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle = \"Pesquisa avançada\";\n public searchEmptyTitle = \"Nenhum registro encontrado\";\n public filterLabel = \"Filtrar\";\n public filterTitle = \"Filtros\";\n public clearLabel = \"Limpar\";\n public cancelLabel = \"Cancelar\";\n public selectLabel = \"Selecionar\";\n public recordLabel = \" registro\";\n public recordsLabel = \" registros\";\n public emptyFieldLabel = \"Não informado\";\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public defaultFilter: DefaultFilter[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: () => SelectOption[] | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n}\n\nexport class SelectField extends Field {\n public appendTo?: string;\n public optionLabel?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: () => SelectOption[] | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel || \"{0} registros selecionados\";\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: { [klass: string]: any };\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: { [klass: string]: any };\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = config.style;\n }\n}\n","import { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { PasswordStrengths } from \"../../../password-strength\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description?: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}","import { Field, FieldConfig } from \"./field\";\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n orientation?: \"horizontal\" | \"vertical\";\n animate?: boolean;\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: \"horizontal\" | \"vertical\";\n public animate: boolean;\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this.maxDefault;\n this.orientation = config.orientation ?? \"horizontal\";\n this.step = config.step ?? 1;\n this.animate = config.animate ?? false;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { FileDto } from \"../../file-upload/index\";\nimport { CalendarLocaleOptions, NumberLocaleOptions } from \"../../locale/index\";\nimport { NumberAlignmentOption } from \"../../number-input\";\nimport { AddonConfig } from \"./addon-config\";\nimport { FieldSize } from \"./field-size\";\nimport { FieldType } from \"./field-type\";\nimport { AutocompleteField } from \"./fields/autocomplete-field\";\nimport { BignumberField } from \"./fields/bignumber-field\";\nimport { BlobField } from \"./fields/blob-field\";\nimport { BooleanField, BooleanOptionsLabel } from \"./fields/boolean-field\";\nimport { BooleanSwitchField } from \"./fields/boolean-switch-field\";\nimport { CalendarField } from \"./fields/calendar-field\";\nimport { ChipsField } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField } from \"./fields/decimal-field\";\nimport { LookupField } from \"./fields/lookup-field\";\nimport { NumberField } from \"./fields/number-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField } from \"./fields/select-field\";\nimport { TextAreaField } from \"./fields/text-area-field\";\nimport { TextField } from \"./fields/text-field\";\nimport { PasswordField } from \"./fields/password-field\";\nimport { TemplateRef } from \"@angular/core\";\nimport { SliderField } from \"./fields/slider-field\";\n\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name?: string;\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: () => string | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: \"radio\" | \"switch\";\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => ({}) | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n\n constructor(config: any) {\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.Boolean:\n if (config.representedBy === \"switch\") {\n return new BooleanSwitchField(config);\n }\n return new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { BignumberFieldConfig } from \"../../configurations/fields/bignumber-field\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport BigNumber from \"bignumber.js\";\nimport { SortMeta } from \"primeng/api\";\nimport { AutoComplete } from \"primeng/autocomplete\";\nimport { Dialog } from \"primeng/dialog\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BooleanOptionsLabel } from \"../../configurations/fields/boolean-field\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { FieldType } from \"../..\";\nimport { CalendarLocaleOptions } from \"../../../locale/options/calendar\";\nimport { DefaultFilter } from \"./models/default-filter\";\n\n@Component({\n selector: \"s-lookup\",\n templateUrl: \"./lookup.component.html\",\n styleUrls: [\"./lookup.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"hidden\",\n style({\n width: \"10px\",\n padding: 0,\n })\n ),\n state(\n \"visible\",\n style({\n width: \"*\",\n })\n ),\n transition(\"visible <=> hidden\", [group([query(\"@childCollapseContent\", animateChild()), animate(\"{{transitionParams}}\")])]),\n ]),\n trigger(\"childCollapseContent\", [\n state(\n \":leave\",\n style({\n opacity: 0,\n })\n ),\n state(\n \":enter\",\n style({\n opacity: 1,\n })\n ),\n transition(\"* <=> *\", animate(\"{{transitionParams}}\")),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public formControlName: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public dataKey: string;\n\n @Input()\n public required: boolean;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[];\n\n @Input()\n public lookupDisplayField: string;\n\n @Input()\n public lookupDisplayFieldTooltip: boolean;\n\n @Input()\n public lookupEmptyMessage: string;\n\n @Input()\n public lookupAppendTo = \"body\";\n\n @Input()\n public searchTitle = \"Pesquisa avançada\";\n\n @Input()\n public searchEmptyTitle = \"Nenhum registro encontrado\";\n\n @Input()\n public searchEmptyDescription: string;\n\n @Input()\n public searchGridData: any[];\n\n @Input()\n public searchTotalRecords: number;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[];\n\n @Input()\n public multiSortMeta: SortMeta[];\n\n @Input()\n public filterTitle = \"Filtros\";\n\n @Input()\n public filterLabel = \"Filtrar\";\n\n @Input()\n public clearLabel = \"Limpar\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public selectLabel = \"Selecionar\";\n\n @Input()\n public emptyFieldLabel = \"Não informado\";\n\n @Input()\n public recordLabel = \" registro\";\n\n @Input()\n public recordsLabel = \" registros\";\n\n @Input()\n public placeholder: string;\n\n @Input()\n public searchTotalRecordsLabel: string;\n\n @Input()\n public sortableColumnsDisabled: string[];\n\n @Input()\n public lookupRowProps: string[];\n\n @Input()\n public defaultFilter: DefaultFilter[];\n\n @Output()\n public onLookupRequest: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSearchRequest: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onBlur: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onKeyUp: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSelect: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onClear: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(Table, { static: false })\n public table: Table;\n\n @ViewChild(Dialog, { static: false })\n public dialog: Dialog;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete;\n\n public value: any;\n public loading: boolean;\n public animating: boolean;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog: FormGroup;\n public transitionOptions = \"400ms cubic-bezier(0.86, 0, 0.07, 1)\";\n\n private onChange: Function;\n private onTouched: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject();\n\n constructor(private readonly hotkeysService: HotkeysService) { }\n\n public ngOnInit() {\n if (!this.searchGridFields) {\n this.searchGridFields = this.searchFields.map(item => new FormField({ ...item }));\n }\n\n this.searchFields = this.searchFields.map(\n (value: FormField) => new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n })\n );\n\n this.searchGridFields = this.searchGridFields.map((gridField: FormField) => {\n gridField[\"width\"] = this.getColWidth(gridField.label);\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const formGroup = this.searchFields.reduce((result: any, field) => {\n result[field.name] = new FormControl(field.defaultValue);\n this.originalFormValues[field.name] = field.defaultValue;\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple || this.value) {\n return;\n }\n\n this.onChange(null);\n });\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n });\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(event => {\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = event.target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = \"\";\n event.target.value = newValue;\n this.onChange(newValue);\n });\n }\n\n public printRecordTotalizer(): string {\n const label = this.searchTotalRecords === 1\n ? this.recordsLabel.trim()\n : this.recordsLabel.trim();\n\n return this.searchTotalRecordsLabel ? this.searchTotalRecordsLabel : `${this.searchTotalRecords} ${label}`;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === \"dd/mm/yy\") { // valor padrão para o format.\n return \"LTS\";\n }\n\n if (hourFormat === \"12\") {\n return format\n .replace(/\\bH\\b/, \"h\") // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, \"hh\"); // hour (12 hour time)\n }\n\n if (hourFormat === \"24\") {\n return format\n .replace(/\\bh\\b/, \"H\") // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, \"HH\"); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n }\n\n public ngAfterViewInit() {\n this.autocomplete.onOverlayAnimationDone = (event) => { };\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes.searchGridData) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public lazyLoadLookup(event: any) {\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(\n ({ field }) =>\n this.formGroupDialog.contains(field) &&\n !this.formGroupDialog.get([field]).dirty\n )\n .forEach(({ value, field }) => {\n this.formGroupDialog\n .get([field])\n .patchValue(value instanceof Function ? value() : value);\n });\n }\n\n public showDialog() {\n this.setDefaultFilters();\n this.searchGridData = undefined;\n this.onTouched();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n public hideDialog() {\n const { inputEL, multiInputEL } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n\n if (this.multiple) multiInputEL.nativeElement.focus();\n else inputEL.nativeElement.focus();\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n this.dialog.moveOnTop();\n }\n\n public clear() {\n this.formGroupDialog.reset(this.originalFormValues);\n this.resetTable();\n }\n\n protected resetTable() {\n this.table.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = (val: any) => {\n this.writeValue(val);\n fn(val);\n };\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split(\".\").reduce((result, prop) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getLabelForValue(value: any, options: { label: string; value: any }[]) {\n if (!options) return value;\n const option = options.find(opt => opt.value === value);\n return option ? option.label : value;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel) {\n const value = this.getFieldValue(obj, path);\n if (value === true) return optionsLabel.true;\n else if (value === false) return optionsLabel.false;\n else return this.emptyFieldLabel;\n }\n\n public isNumber(obj: any, path: string) {\n return !(new BigNumber(this.getFieldValue(obj, path)).isNaN());\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey(\"alt+shift+l\", this.clear.bind(this));\n const findHotkey = this.newHotkey(\"alt+shift+f\", this.search.bind(this));\n const hideHotkey = this.newHotkey(\"alt+shift+c\", this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey(\"alt+shift+s\", this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(\n combo,\n () => {\n fn();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n );\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getDoubleMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n }\n }\n\n public getMoneyMaskConfig(col: BignumberFieldConfig) : MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n }\n }\n\n public getNumberMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol\n };\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.dialog?.contentViewChild?.nativeElement?.getElementsByTagName('input')[0];\n\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n}\n","import { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../configurations/fields/autocomplete-field\";\nimport { BooleanField } from \"../../configurations/fields/boolean-field\";\nimport { CalendarField } from \"../../configurations/fields/calendar-field\";\nimport { ChipsField } from \"../../configurations/fields/chips-field\";\nimport { CurrencyField } from \"../../configurations/fields/currency-field\";\nimport { BlobField } from \"../../configurations/fields/blob-field\";\nimport { LookupField } from \"../../configurations/fields/lookup-field\";\nimport { NumberField } from \"../../configurations/fields/number-field\";\nimport { RadioButtonField } from \"../../configurations/fields/radio-button-field\";\nimport { SelectField } from \"../../configurations/fields/select-field\";\nimport { TextAreaField } from \"../../configurations/fields/text-area-field\";\nimport { TextField } from \"../../configurations/fields/text-field\";\nimport { PasswordField } from \"../../configurations/fields/password-field\";\nimport { SliderField } from \"../../configurations/fields/slider-field\";\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | CalendarField\n | ChipsField\n | CurrencyField\n | BlobField\n | LookupField\n | NumberField\n | RadioButtonField\n | SelectField\n | TextField\n | PasswordField\n | TextAreaField\n | SliderField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n}\n","export enum DynamicType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Double = \"Double\",\n Enum = \"Enum\",\n Fieldset = \"Fieldset\",\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Radio = \"Radio\",\n Row = \"Row\",\n Section = \"Section\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Password = \"Password\",\n Slider = \"Slider\",\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\n\nexport interface GridConfig {\n fields?: FormField[];\n type: GridType;\n}\n\nexport class Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Grid, GridConfig } from \"./grid\";\n\nexport class Row extends Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { Grid } from \"../grid/grid\";\nimport { StructureType } from \"../structure-type\";\n\nexport interface StructureConfig {\n header: string;\n configs?: Grid[];\n type: StructureType;\n}\n\nexport abstract class Structure {\n public header: string;\n public configs?: Grid[];\n public type: StructureType;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport class Section extends Structure {\n constructor(config: StructureConfig) {\n super(config);\n }\n}\n","import { DynamicType } from \"./dynamic-type\";\nimport { AutocompleteField, AutocompleteFieldConfig } from \"./fields/autocomplete-field\";\nimport { BignumberField, BignumberFieldConfig } from \"./fields/bignumber-field\";\nimport { SliderField, SliderFieldConfig } from \"./fields/slider-field\";\nimport { BooleanField, BooleanFieldConfig } from \"./fields/boolean-field\";\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from \"./fields/boolean-switch-field\";\nimport { CalendarField, CalendarFieldConfig } from \"./fields/calendar-field\";\nimport { ChipsField, ChipsFieldConfig } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField, DecimalFieldConfig } from \"./fields/decimal-field\";\nimport { LookupField, LookupFieldConfig } from \"./fields/lookup-field\";\nimport { NumberField, NumberFieldConfig } from \"./fields/number-field\";\nimport { PasswordField, PasswordFieldConfig } from \"./fields/password-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField, SelectFieldConfig } from \"./fields/select-field\";\nimport { TextAreaField, TextAreaFieldConfig } from \"./fields/text-area-field\";\nimport { TextField, TextFieldConfig } from \"./fields/text-field\";\nimport { Row } from \"./grid/row\";\nimport { Fieldset, FieldsetConfig } from \"./structure/fieldset\";\nimport { Section } from \"./structure/section\";\nimport { StructureConfig } from \"./structure/structure\";\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === \"switch\") {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as StructureConfig);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n","import { Component, Input, ViewEncapsulation, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { DynamicConfig } from \"./configurations/dynamic-config\";\nimport { FormField } from \"./configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"dynamic-form.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id: string;\n @Input()\n public configs: DynamicConfig[];\n @Input()\n public fields: FormField[]; // @TODO deve-se remover em uma vesão de quebra. O default deve ser configs.\n @Input()\n public form: FormGroup;\n @Input()\n public errorMessages?: any = {};\n @Input()\n public displayTimeInfoSign: number;\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\n@Component({\n selector: `s-empty-state`,\n templateUrl: `./empty-state.component.html`,\n styleUrls: [\"./empty-state.component.css\"],\n})\nexport class EmptyStateComponent {\n public static nextId = 0;\n\n @Input() id = `s-empty-state-${EmptyStateComponent.nextId++}`;\n @Input() iconClass = \"fa fa-inbox\";\n @Input() title: string;\n @Input() description?: string;\n @Input() showPrimaryAction = true;\n @Input() showSecondaryAction = true;\n @Input() primaryActionLabel?: string;\n @Input() secondaryActionLabel?: string;\n @Input() primaryModel?: MenuItem[] = [];\n\n @Output() primaryAction = new EventEmitter();\n @Output() secondaryAction = new EventEmitter();\n}\n","import { Component, Input } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Component({\n selector: `s-empty-state-go-back`,\n templateUrl: `./go-back.component.html`,\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n public static nextId = 0;\n\n @Input() iconClass = \"fa fa-exclamation-triangle\";\n @Input() title: string;\n @Input() description?: string;\n @Input() primaryActionLabel: string;\n\n constructor(private cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this.cookieService.get(\"com.senior.portal.url\");\n window.open(portalUrl, \"_top\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { ButtonModule } from \"../button/index\";\nimport { EmptyStateComponent } from \"./empty-state.component\";\nimport { EmptyStateGoBackComponent } from \"./go-back/go-back.component\";\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent ],\n})\nexport class EmptyStateModule {}\n","export enum ValidateErrors {\n MAX_FILE_SIZE = \"MAX_FILE_SIZE\",\n MAX_FILE_LIMIT = \"MAX_FILE_LIMIT\",\n UNSUPPORTED_EXTENSION = \"UNSUPPORTED_EXTENSION\",\n}\n","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 767,\n MD_MIN: 768,\n MD_MAX: 991,\n LG_MIN: 992,\n LG_MAX: 1199,\n XL_MIN: 1200,\n XL_MAX: Infinity,\n};\n","import { ElementRef } from \"@angular/core\";\n\nexport class ExportUtils {\n constructor() {\n throw new Error(\"Classe não deve ser instanciada.\");\n }\n\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, \"\");\n }\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = \";\",\n documentName: string = \"download\"\n ) {\n let csv = \"\\ufeff\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += \"\\n\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) => this.resolveFieldData(record, col));\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this.resolveFieldData(record, column.field);\n }\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = \"\";\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: \"text/csv;charset=utf-8;\",\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + \".csv\");\n else {\n const link = document.createElement(\"a\");\n link.style.display = \"none\";\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute(\"href\", URL.createObjectURL(blob));\n link.setAttribute(\"download\", documentName + \".csv\");\n link.click();\n } else {\n csv = \"data:text/csv;charset=utf-8,\" + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf(\".\") == -1) return data[field];\n else {\n const fields: string[] = field.split(\".\");\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","import { HostProjectConfigs } from \"../../../../../angular-components.module\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) return \"\";\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class AngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<AngularComponentsModule> {\n return {\n ngModule: AngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../../../angular-components.module\";\nimport { CustomTranslationsService } from \"./index\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor (\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { CustomHttpClient } from \"../code-editor/infra/utils\";\nimport {\n ListBlobMetadataRequest,\n ListBlobMetadataResponse\n} from \"./models/list-blob-metadata\"\n\n@Injectable()\nexport class FileUploadService {\n private BASE_URL_FIELD_CUSTOMIZATION = \"platform/field_customization\";\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.POST(\n `${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`,\n request,\n { signal: this.TOKEN.signal }\n );\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { Subject } from \"rxjs\";\n\nimport { FileDto } from \"./models/file-dto\";\nimport { ValidateErrors } from \"./models/validate-errors\";\nimport { UploadError } from \"./models/uploadError\";\nimport { Breakpoints } from \"../utils\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { ListBlobMetadataResponse } from \"./models/list-blob-metadata\";\nimport * as moment_ from \"moment\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nconst moment = moment_;\n\n@Component({\n selector: \"s-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n styleUrls: [\"./file-upload.component.scss\"],\n})\nexport class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {\n public static nextId = 0;\n\n @ViewChild(\"inputUpload\", { static: false })\n private readonly inputUpload: ElementRef;\n\n @ViewChild(\"anchor\", { static: false })\n private readonly anchor: ElementRef;\n\n @Input() public id = `s-file-upload-${FileUploadComponent.nextId++}`;\n @Input() public chooseLabel = \"Anexar arquivos\";\n @Input() public removeLabel = \"Remover\";\n @Input() public cancelLabel = \"Cancelar\";\n @Input() public successTooltip = \"Arquivo anexado com sucesso\";\n @Input() public multiple: boolean;\n @Input() public accept: string;\n @Input() public supportedExtensions: string[] = [];\n @Input() public ariaLabelFileName: string;\n @Input() public maxFileSize: number;\n @Input() public fileLimit: number;\n @Input() public ariaLabelProgress = \"Carregando arquivo\";\n @Input() public ariaLabelSuccess: string;\n @Input() public ariaLabelError: string;\n @Input() public ariaLabelRemove: string;\n @Input() public formGroup: FormControl;\n @Input() public disabled = false;\n @Input() public showFileUploadDate: boolean = false;\n @Input() public set files(files: FileDto[]) {\n if(this.showFileUploadDate && files[0]?.objectId) {\n this.getUploadDate(files);\n }\n this._files = files.map(file => {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\n }\n return file;\n });\n }\n\n @Output() public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\n @Output() public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\n @Output() public cancelUpload: EventEmitter<number> = new EventEmitter();\n @Output() public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\n @Output() public validateErrors: EventEmitter<UploadError> = new EventEmitter();\n\n private _files: FileDto[] = [];\n private readonly ngUsubscribe: Subject<void> = new Subject();\n public isSmallDevice: boolean;\n public inputValue = \"\";\n public modifiedDate: string;\n\n constructor(private readonly sanitizer: DomSanitizer,\n private readonly fileUploadService: FileUploadService,\n private readonly translate: TranslateService) { }\n\n public ngOnInit(): void {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLowerCase());\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public onFileSelect(files: FileDto[]): void {\n const newFiles: FileDto[] = [];\n\n if (!this.multiple) {\n this.files = [];\n }\n\n if (this.isFileLimitExceeded(files)) {\n this.validateErrors.emit({\n files,\n validation: ValidateErrors.MAX_FILE_LIMIT,\n });\n this.clearFileInput();\n return;\n }\n\n for (const file of files) {\n if (this.isUnsupportedFileExtension(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.UNSUPPORTED_EXTENSION,\n });\n continue;\n }\n\n if (this.isFileSizeExceeded(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.MAX_FILE_SIZE,\n });\n continue;\n }\n\n newFiles.push(file);\n }\n\n if (newFiles.length) {\n this.files = this.files.concat(newFiles);\n this.uploadHandler.emit({\n files: newFiles,\n });\n }\n\n this.clearFileInput();\n }\n\n public onRemoveFile(file: FileDto): void {\n const fileIndex = this.files.indexOf(file);\n const removedFiles = this.files.splice(fileIndex, 1);\n\n if (removedFiles.length) {\n this.removeFile.emit({ file });\n }\n }\n\n public onCancelUpload(index: number) {\n const removedFiles = this.files.splice(index, 1);\n\n if (removedFiles.length) {\n this.cancelUpload.emit(index);\n }\n\n this.clearFileInput();\n }\n\n public onDowloadFile(index: number) {\n this.downloadFile.emit({\n index,\n anchor: this.anchor,\n });\n }\n\n public get files(): FileDto[] {\n return this._files;\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\n }\n\n private isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n private isFileLimitExceeded(files: FileDto[]) {\n if (!this.fileLimit) {\n return false;\n }\n return this.files.length + files.length > this.fileLimit;\n }\n\n private isFileSizeExceeded(file: File): boolean {\n if (!this.maxFileSize) {\n return false;\n }\n return file.size > this.maxFileSize;\n }\n\n private isUnsupportedFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return !this.supportedExtensions.includes(extension);\n }\n return false;\n }\n\n private clearFileInput() {\n this.inputUpload.nativeElement.value = null;\n }\n\n private getUploadDate(blobFile: FileDto[]): void {\n if(!blobFile) {\n return;\n }\n \n this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })\n .then(metadata => this.setModifiedDate(metadata));\n }\n\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\n const hour = moment(metadata.modified).format(\"HH\");\n const minutes = moment(metadata.modified).format(\"mm\");\n const day = moment(metadata.modified).format(\"DD\");\n const month = moment(metadata.modified).format(\"MM\");\n const fullYear = moment(metadata.modified).format(\"YYYY\");\n\n this.modifiedDate = this.translate.instant(\"platform.angular_components.date_modified_custom_blob\", { hour, minutes, day, month, fullYear });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ProgressBarModule } from \"primeng/progressbar\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { FileUploadComponent } from \"./file-upload.component\";\nimport { FileUploadService } from \"./file-upload.service\";\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n ProgressBarModule,\n ],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadModule {}\n","import { Component, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-info-sign-component\",\n templateUrl: \"./info-sign.component.html\",\n styleUrls: [\"./info-sign.component.scss\"],\n})\nexport class InfoSignComponent {\n templateRef: TemplateRef<any>;\n tooltip: string;\n displayTime: number;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { InfoSignComponent } from \"./info-sign.component\";\n\n@Directive({\n selector: \"[sInfoSign]\",\n})\nexport class InfoSignDirective implements OnInit, OnDestroy {\n @Input()\n sInfoSign: string;\n\n @Input('sInfoSignDisplayTime')\n displayTime: number = 5000;\n\n private componentRef: ComponentRef<any>;\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n public ngOnInit(): void {\n if (!this.componentRef && this.sInfoSign) {\n this.viewContainer.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(InfoSignComponent);\n this.componentRef = this.viewContainer.createComponent(componentFactory);\n\n this.componentRef.instance.templateRef = this.templateRef;\n this.componentRef.instance.tooltip = this.sInfoSign;\n this.componentRef.instance.displayTime = this.displayTime;\n } else if (this.componentRef && this.sInfoSign) {\n this.componentRef.instance.tooltip = this.sInfoSign;\n } else {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignComponent } from \"./info-sign.component\";\nimport { InfoSignDirective } from \"./info-sign.directive\";\n\n@NgModule({\n imports: [\n TooltipModule,\n CommonModule,\n ],\n declarations: [\n InfoSignDirective,\n InfoSignComponent,\n ],\n exports: [InfoSignDirective],\n entryComponents: [InfoSignComponent],\n})\nexport class InfoSignModule {}\n","import { Component, Input, OnDestroy, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-loading-state\",\n templateUrl: \"./loading-state.component.html\",\n styleUrls: [\"./loading-state.component.scss\"],\n})\nexport class LoadingStateComponent implements OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\n\n @Input()\n public blockWindow: boolean;\n\n @Input()\n public set loading(loading: boolean) {\n this._loading = loading;\n\n if (loading) this.block();\n else this.unblock();\n }\n\n public get loading() {\n return this._loading;\n }\n\n public contents: TemplateRef<any>;\n public blocking: boolean;\n\n private _loading: boolean;\n private BLOCK_TIMEOUT_VALUE = 300;\n private UNBLOCK_TIMEOUT_VALUE = 200;\n private blockTimeoutId: any;\n private unblockTimeoutId: any;\n\n public block() {\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n this.unblockTimeoutId = undefined;\n }\n\n if (!this.blockTimeoutId) {\n this.blockTimeoutId = setTimeout(() => {\n this.blocking = true;\n this.blockTimeoutId = undefined;\n }, this.BLOCK_TIMEOUT_VALUE);\n }\n }\n\n public unblock() {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n this.blockTimeoutId = undefined;\n }\n\n if (!this.unblockTimeoutId) {\n this.unblockTimeoutId = setTimeout(() => {\n this.blocking = false;\n this.unblockTimeoutId = undefined;\n }, this.UNBLOCK_TIMEOUT_VALUE);\n }\n }\n\n public ngOnDestroy() {\n if (this.blockTimeoutId) clearTimeout(this.blockTimeoutId);\n if (this.unblockTimeoutId) clearTimeout(this.unblockTimeoutId);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { LoadingStateComponent } from \"./loading-state.component\";\n\n@Directive({\n selector: \"[sLoadingState]\",\n})\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\n @Input()\n public set sLoadingState(active: boolean) {\n this._loading = active;\n if (this.loaderComponent) this.loaderComponent.instance.loading = active;\n }\n\n public get sLoadingState() {\n return this._loading;\n }\n\n private _loading = false;\n private loaderComponent: ComponentRef<LoadingStateComponent>;\n\n constructor(\n private target: ViewContainerRef,\n private template: TemplateRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n this.createComponent();\n }\n\n private createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\n this.loaderComponent = this.target.createComponent(factory);\n this.loaderComponent.instance.contents = this.template;\n this.loaderComponent.instance.loading = this.sLoadingState;\n this.cdr.detectChanges();\n }\n\n public ngOnDestroy() {\n this.loaderComponent.destroy();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateDirective } from \"./loading-state.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LoadingStateComponent, LoadingStateDirective],\n exports: [LoadingStateComponent, LoadingStateDirective],\n entryComponents: [LoadingStateComponent],\n})\nexport class LoadingStateModule {}\n","import { Directive, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\n\n@Directive({\n selector: \"input[sLocalizedNumberInput]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n @Input()\n public decimalSeparator = \",\";\n @Input()\n public thousandsSeparator = \".\";\n @Input()\n public precision = 2;\n private numberRegex: string;\n\n constructor() {}\n\n ngOnInit() {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex, \"g\"))) return { invalidNumber: true };\n return null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LocalizedNumberInputDirective } from \"./localized-number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"sMaskFormatter\",\n})\nexport class MaskFormatterPipe implements PipeTransform {\n private defs = {\n \"9\": \"[0-9]\",\n a: \"[A-Za-z]\",\n \"*\": \"[A-Za-z]|[0-9]\",\n };\n\n transform(value: string, maskFormat: string): any {\n const buffer = [];\n let opcionalPos;\n let pos = 0;\n const maskTokens = maskFormat.split(\"\");\n const symbolsPosAfterOpcional = [];\n const hasOpcional = maskFormat.includes(\"?\");\n\n for (let i = 0; i < maskTokens.length; i++) {\n const token = maskTokens[i];\n\n if (token != \"?\") {\n if (this.defs[token]) {\n const tokenRegex = this.defs[token];\n const charAtPos = value.charAt(pos);\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\n if (isValidChar) {\n if (pos < maskTokens.length) {\n buffer.push(value.charAt(pos));\n pos++;\n }\n } else {\n throw new Error(\"Value doesn't match mask format\");\n }\n } else {\n buffer.push(token);\n if (hasOpcional && i > opcionalPos) {\n symbolsPosAfterOpcional.push(i);\n }\n }\n } else {\n opcionalPos = i;\n }\n }\n\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\n let formattedValue = buffer.join(\"\");\n let beforeSymbol;\n let symbol;\n let firstAfterSymbol;\n let endOfString;\n\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\n const symbolPos = symbolsPosAfterOpcional[i];\n beforeSymbol = formattedValue.substr(0, symbolPos - 1);\n symbol = formattedValue.substr(symbolPos - 1, 1);\n firstAfterSymbol = formattedValue.substr(symbolPos, 1);\n endOfString = formattedValue.substr(symbolPos + 1);\n\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\n }\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\n }\n\n return buffer.join(\"\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MaskFormatterPipe } from \"./mask-formatter.pipe\";\n\n@NgModule({\n exports: [MaskFormatterPipe],\n declarations: [MaskFormatterPipe],\n})\nexport class MaskFormatterModule {}\n","import {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { AlignmentOptions, CurrencyMaskDirective } from \"@seniorsistemas/ng2-currency-mask\";\n\n@Directive({\n selector: \"input[sBignumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BignumberInputDirective),\n multi: true,\n },\n ],\n})\n\nexport class BignumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator = \",\";\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = AlignmentOptions.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private _maxLength: number;\n\n public ngOnInit() {\n this.updateVariables();\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) {\n this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n }\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n @HostListener(\"keypress\", [\"$event\"])\n public onKeypress(event: KeyboardEvent) {\n const code = event.code;\n\n if (code === \"Minus\" || code === \"NumpadSubtract\") {\n if (this.allowNegative) {\n this.maxLength = this._maxLength + 1; \n }\n } else if (code === \"Equal\" || code === \"NumpadAdd\") {\n this.maxLength = this._maxLength;\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimalSeparator: this.decimalSeparator,\n thousandsSeparator: this.thousandsSeparator ?? \".\",\n scale: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator?.length ?? 1;\n \n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n \n this._maxLength = maxLength;\n this.maxLength = maxLength;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { BignumberInputDirective } from \"./number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BignumberInputDirective],\n exports: [BignumberInputDirective],\n})\nexport class BignumberInputModule {}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Table, TableService } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-table-header-checkbox\",\n template: `\n <div class=\"ui-chkbox ui-widget\" (click)=\"onClick()\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"isDisabled()\">\n </div>\n <div [ngClass]=\"{'ui-chkbox-box ui-widget ui-state-default':true,\n 'ui-state-active':checked, 'ui-state-disabled': isDisabled(), 'ui-state-focus': hasFocus}\">\n <span [id]=\"id\" class=\"ui-chkbox-icon ui-clickable\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n @Input()\n public disabled: boolean;\n @Input()\n public rowProps: string[];\n @Input()\n public useAllObject: boolean;\n\n public checked: boolean;\n public hasFocus: boolean;\n\n private ngUnsubscribe = new Subject();\n\n constructor(public table: Table, public tableService: TableService) {\n this.table.tableService.valueSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n }\n\n public onFocus() {\n this.hasFocus = true;\n }\n\n public onBlur() {\n this.hasFocus = false;\n }\n\n isDisabled() {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n onClick() {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean) {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (checked) {\n const unselecteds = gridData\n .filter(record => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked() {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked() {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TableHeaderCheckboxComponent } from \"./table-header-checkbox.component\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule {}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({ selector: \"[sNavigation]\" })\nexport class NavigationDirective {\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case \"Right\": // IE 11\n case \"ArrowRight\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Left\": // IE 11\n case \"ArrowLeft\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Up\": // IE 11\n case \"ArrowUp\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Down\": // IE 11\n case \"ArrowDown\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this.setNextRowFocus(currentRow);\n }\n }\n\n private focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const prevRow = this.findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const nextRow = this.findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"tr\";\n }\n\n private isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"td\";\n }\n\n private findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) return prevRow;\n else return null;\n }\n\n private findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) return nextRow;\n else return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { RowToggler, Table } from \"primeng/table\";\n\n@Directive({ selector: \"[sRowToggler]\" })\nexport class RowTogllerDirective extends RowToggler {\n @Input(\"sRowToggler\")\n data: any;\n\n constructor(public dt: Table) {\n super(dt);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case \"Enter\":\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","import { AfterContentChecked, AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\n\n@Directive({\n selector: \"[sTableFrozenPosition]\"\n})\nexport class TableFrozenPositionDirective implements AfterViewInit, OnDestroy, AfterContentChecked {\n @Input()\n sTableFrozenPosition = \"left\";\n\n @Input()\n set sTableFrozenValue(_: any[]) {\n setTimeout(() => {\n this.synchronizeRowHeight();\n this.setUpRowResizeMonitoring();\n });\n }\n\n private table: Table;\n private isTableVisible = false;\n private resetRowHeightClassName: string;\n\n tableHeadObservable: MutationObserver;\n rowExpandedObserver: any;\n onColumnsChanged: EventEmitter<any> = new EventEmitter();\n\n constructor(private el: ElementRef, private host: Table) {\n this.table = host;\n this.table.styleClass = (this.table.styleClass || \"\") + \" s-table-frozen-position\";\n this.setUpTableEvents();\n\n window.addEventListener(\"resize\", this.handleWindowResize.bind(this));\n\n const htmlHead = document.getElementsByTagName(\"head\")[0];\n\n const expandFrozenStyle = document.createElement(\"style\");\n expandFrozenStyle.innerHTML = \".s-table-frozen-position .ui-table-frozen-view .sds-expanded-row > td { visibility: hidden; }\";\n htmlHead.appendChild(expandFrozenStyle);\n }\n\n ngAfterViewInit(): void {\n if (this.sTableFrozenPosition === \"left\") return;\n this.applyStylesForTable();\n this.setUpColumnMonitoring();\n }\n\n ngAfterContentChecked(): void {\n if (!this.isTableVisible && !!this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = true;\n\n this.synchronizeRowHeight();\n } else if (this.isTableVisible && !this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = false;\n }\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"resize\", this.handleWindowResize.bind(this));\n if (this.tableHeadObservable) {\n this.tableHeadObservable.disconnect();\n }\n\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n }\n\n private setUpTableEvents() {\n this.table.onColResize.subscribe(() => {\n this.handleColResize();\n });\n\n this.table.onRowExpand.subscribe(() => {\n this.setUpRowResizeMonitoring();\n });\n }\n\n private setUpRowResizeMonitoring() {\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n // The version of Angular/Typescript does not recognize the object ResizeObserver and breaks build\n this.rowExpandedObserver = new (window as any).ResizeObserver(() => {\n this.applyHeightForExpandedRows();\n });\n\n setTimeout(() => {\n const tdsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const originalsTds = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n tdsToAdjust.forEach((td: HTMLElement, index: number) => {\n const originalTd: HTMLElement = originalsTds[index];\n const height = originalTd.getBoundingClientRect().height;\n td.innerHTML = `<div style=\"height: ${height}px\"></div>`;\n td.style.padding = \"0px\";\n\n this.rowExpandedObserver.observe(originalTd);\n });\n });\n }\n\n private setUpColumnMonitoring() {\n this.tableHeadObservable = new MutationObserver(() => {\n this.synchronizeRowHeight();\n this.onColumnsChanged.emit(null);\n });\n const tableHeads = [...this.el.nativeElement.getElementsByTagName(\"thead\")];\n tableHeads.forEach((tableHead: Element) => {\n this.tableHeadObservable.observe(tableHead, {\n subtree: true,\n childList: true\n });\n });\n }\n\n private applyHeightForExpandedRows() {\n const frozenTDsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const unFrozenTDs = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n frozenTDsToAdjust.forEach((frozenTd: HTMLElement, index: number) => {\n const unfrozenTD: HTMLElement = unFrozenTDs[index];\n const unfrozenHeight = unfrozenTD.getBoundingClientRect().height;\n const frozenHeight = frozenTd.getBoundingClientRect().height;\n if (Math.abs(unfrozenHeight - frozenHeight) > 1) {\n frozenTd.style.height = `${unfrozenHeight}px`;\n frozenTd.innerHTML = `<div></div>`;\n }\n });\n }\n\n private applyStylesForTable() {\n const scrollWrapper = this.el.nativeElement.querySelector(\".ui-table-scrollable-wrapper\");\n if (!scrollWrapper) {\n console.warn(\"Unable to find scroll-wrapper element from table. Is the table configured with frozen template?\");\n return;\n }\n scrollWrapper.style.display = \"flex\";\n scrollWrapper.style.flexDirection = \"row\";\n\n const frozenTable = this.el.nativeElement.querySelector(\".ui-table-frozen-view\");\n if (!frozenTable) {\n console.warn(\"Unable to find frozen element from table. Is the table configured with frozen template?\");\n return;\n }\n frozenTable.style.order = \"1\";\n frozenTable.style.borderRight = \"none\";\n frozenTable.style.borderLeft = \"1px solid #dddddd\";\n frozenTable.style.boxShadow = \"-5px 0 5px -5px #cccccc\";\n\n const unfrozenTable = this.el.nativeElement.querySelector(\".ui-table-unfrozen-view\");\n if (!unfrozenTable) {\n console.warn(\"Unable to find unfrozen element from table. Is the table configured with frozen template?\");\n return;\n }\n unfrozenTable.style.position = \"unset\";\n }\n\n private handleWindowResize() {\n this.synchronizeRowHeight();\n }\n\n private handleColResize() {\n this.synchronizeRowHeight();\n }\n \n private synchronizeRowHeight() {\n const tableBodyWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-body\");\n const tableBodies = [...tableBodyWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableBodies);\n this._applyMaxRowHeight(tableBodies);\n\n const tableHeadWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-header-box\");\n const tableHeads = [...tableHeadWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableHeads);\n this._applyMaxRowHeight(tableHeads);\n }\n\n private _applyMaxRowHeight(tables: any[]) {\n if (!tables || !tables.length) {\n return;\n }\n\n const lengths = tables.map(table => table.rows.length);\n const maxLength = lengths.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue), lengths[0]);\n const minLength = lengths.reduce((accumulator, currentValue) => Math.min(accumulator, currentValue), lengths[0]);\n\n if (maxLength !== minLength) {\n throw new Error(\"The number of rows in both tables must be the same\");\n }\n\n const table = tables[0];\n\n for (let i = 0; i < table.rows.length; i++) {\n const trs = [];\n for (const table of tables) {\n trs.push(table.rows[i] as HTMLTableRowElement);\n }\n\n const max = trs.reduce((accumulator, currentValue) => \n Math.max(accumulator, currentValue.getBoundingClientRect().height), trs[0].getBoundingClientRect().height);\n\n for (const tr of trs) {\n tr.style.height = `${max}px`;\n }\n }\n }\n\n private _resetRowHeight(tables: any[]) {\n for (const table of tables) {\n for (const row of table.rows) {\n row.style.height = \"unset\";\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n BOOLEAN = \"BOOLEAN\",\n DATE = \"DATE\",\n CURRENCY = \"CURRENCY\",\n ENUM = \"ENUM\",\n LOOKUP = \"LOOKUP\",\n LINK = \"LINK\",\n TOKENS = \"TOKENS\"\n}\n","export enum EnumBadgeColors {\n RED = \"sds-semantic-red\",\n ORANGE = \"sds-semantic-orange\",\n YELLOW = \"sds-semantic-yellow\",\n GREEN = \"sds-semantic-green\",\n BLUE = \"sds-semantic-blue\",\n GRAY = \"sds-semantic-gray\"\n}\n","import * as moment_ from \"moment\";\nimport { Inject, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Component, Input, ViewChild } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\nimport {\n HostProjectConfigs,\n HostProjectConfigsInjectionToken\n} from \"../../../angular-components.module\";\nimport { IToken } from \"../../token-list\";\nimport {\n BadgeColumn,\n BadgeConfigs,\n Column,\n ColumnValues,\n EnumColumnFieldType,\n TableColumnLocaleOptions\n} from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-columns.component.html\",\n styleUrls: [\"./table-columns.component.scss\"],\n selector: \"s-table-columns\",\n})\nexport class TableColumnsComponent implements OnChanges {\n\n @ViewChild(\"columnsTemplate\", { static: true }) columnsTemplate: TemplateRef<any>;\n\n @Input() columns!: Column[];\n @Input() rowValue!: any;\n @Input() locale!: TableColumnLocaleOptions;\n\n public formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n this.createColumnsTemplate(changes);\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!changes.columns?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!changes.rowValue?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n if (!changes.locale?.currentValue) {\n throw new Error(\"The 'locale' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes.columns.currentValue;\n const rowValue: object = changes.rowValue.currentValue;\n const locale: TableColumnLocaleOptions = changes.locale.currentValue;\n\n columns.forEach((column) => this.formattedColumns.push(this.getColumnValue(column, rowValue, locale)));\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : \" - \";\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return attributeValue === null || attributeValue === undefined || (this.isArray(attributeValue) && !attributeValue.length);\n }\n\n private getFormattedColumnValue(column: Column, columnValue: any[], unifiedColumnValues: string,\n uninformedText: string, uninformedNumber: number) {\n\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply([], columnValue.filter(values => values !== uninformedText));\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: object) {\n let attributeValue!: any;\n\n attribute\n .split(\"/\")\n .forEach((value: string) => {\n if (!attributeValue) {\n value\n .split(\".\")\n .forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column, locale: TableColumnLocaleOptions): MaskConfig {\n return {\n ...locale.number,\n scale: column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : locale.number.scale,\n prefix: `${locale.number.currencySymbol} `\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: object, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n let badgeClass: BadgeColumn = {\n \"sds-badge\": false\n };\n\n const columnValue: any[] = column.attributes\n .map((attribute: string) => {\n const attributeValue = this.getAttributeValue(attribute, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column, locale);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n if (column.badgeConfigs?.length) {\n badgeClass = this.getBadgeClass(attributeValue, column.badgeConfigs);\n }\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY:\n return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER:\n numberConfigs.prefix = \"\";\n return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues\n .split(separator)\n .filter(value => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n badgeClass,\n separator,\n uninformed,\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick\n };\n }\n\n private getBadgeClass(value: string, badgeConfigs: BadgeConfigs[]): BadgeColumn {\n const badgeColumn = {\n \"sds-badge\": true\n };\n const color = badgeConfigs.find(badgeConfig => badgeConfig.enumValue === value)?.color.valueOf();\n badgeColumn[color] = true;\n\n return badgeColumn;\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === \"function\") {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign: string | ((rowValue: any) => string)): string {\n if (infoSign !== undefined && infoSign !== null) {\n if (typeof infoSign === \"function\") {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip: string | ((rowValue: any) => string)): string {\n if (tooltip !== undefined && tooltip !== null) {\n if (typeof tooltip === \"function\") {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return \"\";\n }\n\n private isNumber(value: any): boolean {\n return !(new BigNumber(value).isNaN());\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error(\"To use tokens an array must be informed\");\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\"Not a valid token array. Must be a primitive values array or an objects with label attribute array\");\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === \"symbol\" ? value.toString() : `${value}`;\n return {\n label\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter(value => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter(value => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getSplittedString(column: ColumnValues): { value: string, isUninformed: boolean, separator: string }[] {\n const { columnValue, separator, uninformed } = column;\n if (typeof columnValue === \"string\") {\n const splittedString = columnValue.split(separator);\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : \"\"\n };\n });\n }\n\n return null;\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { IToken } from \"./models/token\";\n\n@Component({\n selector: `s-token-list`,\n templateUrl: `./token-list.component.html`,\n styleUrls: [\"./token-list.component.scss\"],\n})\nexport class TokenListComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-token-list-${TokenListComponent.nextId++}`;\n\n @Input()\n tokens: IToken[];\n\n @Input()\n removableTokens = false;\n\n @Input()\n hidePointerEvents = false;\n\n @Output()\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\n\n @Output()\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\n\n public onTokenSelected(token: IToken): void {\n if (!token.disabled) {\n this.tokenSelected.next(token);\n }\n }\n\n public onTokenRemoved(token: IToken): void {\n if (!token.disabled) {\n this.tokenRemoved.next(token);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TokenListComponent } from \"./token-list.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TokenListComponent],\n exports: [TokenListComponent],\n})\nexport class TokenListModule {}\n","import * as moment_ from \"moment\";\nimport { Component, Inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\nimport { MenuItem } from \"primeng/api\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n HostProjectConfigs,\n HostProjectConfigsInjectionToken,\n} from \"../../../angular-components.module\";\nimport { ExportUtils } from \"../../utils\";\nimport { CustomAction } from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-paging.component.html\",\n styleUrls: [\"./table-paging.component.scss\"],\n selector: \"s-table-paging\",\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n @Output()\n public totalRecordsText: string;\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.totalRecords?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes.totalRecords.currentValue\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): MenuItem[] {\n const actions: MenuItem[] = [\n {\n id: \"exportCurrentPage\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage()\n }\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n id: \"exportSelected\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords()\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n id: \"exportAll\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords()\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, index) => ({\n id: \"customAction_\" + index,\n label: p.label,\n command: p.command\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error(\"Table component not defined\");\n }\n }\n\n public getColumnsToExport() {\n return [...this.table.columns].map(column => {\n const exportColumn = {\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? \" - \",\n enumPrefix: column.enumPrefix\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = this.table.value;\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = this.table.selection;\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split(\".\"), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = (this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value));\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter(p => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map(row => {\n const newRow = { ...row };\n enumColumns.forEach(column => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (match, group) => `_${group.toLowerCase()}`)\n .replace(/^_/, '');\n }\n\n private getExportFileName() {\n const fileName = this.exportFileName ?? \"download\";\n const currentDate = moment(new Date()).format(\"DD-MM-YYYY[_]HH:mm\");\n return `${fileName}_${currentDate}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n const serverData = await this.loadAllRecords();\n const columns = this.getColumnsToExport();\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NavigationDirective } from \"./navigation/navigation.directive\";\nimport { RowTogllerDirective } from \"./row-toggler/row-toggler.directive\";\nimport { TableFrozenPositionDirective } from \"./frozen-position/frozen-position.directive\";\nimport { TableColumnsComponent } from \"./table-column/table-columns.component\";\nimport { TokenListModule } from \"../token-list/token-list.module\";\nimport { TablePagingComponent } from \"./table-paging/table-paging.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TokenListModule,\n TranslateModule,\n ButtonModule,\n InfoSignModule\n ],\n exports: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n declarations: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n})\nexport class TableModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../../configurations/fields/autocomplete-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"autocomplete-field.component.html\",\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: AutocompleteField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BooleanField } from \"../../../configurations/fields/boolean-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-field.component.html\",\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanField;\n @Input()\n public formControl: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CalendarField } from \"../../../configurations/fields/calendar-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"calendar-field.component.html\",\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CalendarField;\n @Input()\n public formControl: FormControl;\n @Input()\n public showTime: boolean;\n @Input()\n public timeOnly: boolean;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { ChipsField } from \"../../../configurations/fields/chips-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./chips-field.component.html\",\n styleUrls: [\"./chips-field.component.scss\"],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: ChipsField;\n \n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CurrencyField } from \"../../../configurations/fields/currency-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: \"currency-field.component.html\",\n})\nexport class CurrencyFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CurrencyField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BlobField } from \"../../../configurations/fields/blob-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"file-upload.component.html\",\n})\nexport class FileUploadComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BlobField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { LookupField } from \"../../../configurations/fields/lookup-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"lookup-field.component.html\",\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: LookupField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NumberAlignmentOption } from \"../../../../number-input/index\";\nimport { DecimalField } from \"../../../configurations/fields/decimal-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"./../../../configurations/field-type\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: DecimalField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { RadioButtonField } from \"../../../configurations/fields/radio-button-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"radion-button-field.component.html\",\n styles: [`\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n `],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: RadioButtonField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n constructor() {}\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SelectField } from \"../../../configurations/fields/select-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"select-field.component.html\",\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: SelectField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { TextAreaField } from \"../../../configurations/fields/text-area-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-area-field.component.html\",\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: TextAreaField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { TextField } from \"../../../configurations/fields/text-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-field.component.html\",\n styleUrls: [\"./text-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: TextField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Row } from \"../../../configurations/grid/row\";\n\n@Component({\n template: `\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n `,\n})\nexport class RowComponent implements OnInit {\n @Input()\n public id: string;\n @Input()\n public config: Row;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n constructor() {}\n\n public ngOnInit() {}\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Fieldset } from \"../../../configurations/structure/fieldset\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n selector: \"s-fieldset\",\n template: `\n <p-fieldset [toggleable]=\"true\" (onBeforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (onAfterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\">\n <p-header>{{config.header}}</p-header>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </p-fieldset>\n `,\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Fieldset;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Section } from \"../../../configurations/structure/section\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n template: `\n <h3 *ngIf=\"config?.header\" class=\"sds-section-title\">{{config.header}}</h3>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n `,\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Section;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-field\",\n templateUrl: \"./dynamic-field.component.html\",\n})\nexport class DynamicFieldComponent {\n @Input()\n public id: string;\n\n @Input()\n public fields: FormField[];\n\n @Input()\n public form: FormGroup;\n\n @Input()\n public errorMessages?: any;\n\n @Input()\n public displayTimeInfoSign: number;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return this.isFunction(errorMessages)\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","export enum GridType {\n Row = \"Row\",\n}\n","export enum StructureType {\n Fieldset = \"Fieldset\",\n Section = \"Section\",\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { BignumberField } from \"../../../configurations/fields/bignumber-field\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: BignumberField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BooleanSwitchField } from \"../../../configurations/fields/boolean-switch-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-switch-field.component.html\",\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanSwitchField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\"\n\nimport { PasswordField } from \"../../../configurations/fields/password-field\";\n\n@Component({\n templateUrl: \"./password-field.component.html\",\n styleUrls: [\"./password-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, OnDestroy {\n @Input()\n public field: PasswordField;\n\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit(): void {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { SliderField } from \"../../../configurations/fields/slider-field\";\n\n@Component({\n templateUrl: \"slider-field.component.html\",\n styleUrls: [\"./slider-field.component.scss\"]\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: SliderField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n\n this.onChange.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n\n const values = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n\n this.formControl.setValue(this.field.defaultValue ?? values);\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n\n}\n","import { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/number-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { NumberFieldComponent } from \"./components/fields/number/number-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\n\nexport abstract class DynamicForm {\n group: FormGroup;\n errorMessages: any;\n abstract createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages }: { group: FormGroup; errorMessages: any }) {\n this.group = group;\n this.errorMessages = errorMessages;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField;\n errorMessages: any;\n\n constructor({ group, field, errorMessages }: { group: FormGroup; field: FormField; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.field = field;\n\n this.setFieldPropertiesByType();\n }\n\n public setFieldPropertiesByType() {\n if (this.field.type === FieldType.Integer || this.field.type === FieldType.Double) {\n this.field.numberLocaleOptions.currencySymbol = \"\";\n }\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.field = this.field;\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n component.instance.errorMessages = this.errorMessages;\n this.setVariablesByType(component);\n return component;\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.field = this.field;\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent(): any {\n switch (this.field.type) {\n case FieldType.Autocomplete:\n return AutocompleteFieldComponent;\n case FieldType.Binary:\n case FieldType.String:\n return TextFieldComponent;\n case FieldType.Boolean:\n if (this.field.representedBy === \"switch\") {\n return BooleanSwitchFieldComponent;\n }\n return BooleanFieldComponent;\n case FieldType.Chips:\n return ChipsFieldComponent;\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return CalendarFieldComponent;\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double:\n return BignumberFieldComponent;\n case FieldType.Enum:\n return SelectFieldComponent;\n case FieldType.Lookup:\n return LookupFieldComponent;\n case FieldType.Money:\n return CurrencyFieldComponent;\n case FieldType.Radio:\n return RadioButtonComponent;\n case FieldType.Text:\n return TextAreaFieldComponent;\n case FieldType.Password:\n return PasswordFieldComponent;\n case FieldType.Blob:\n return FileUploadComponent;\n case FieldType.Slider:\n return SliderFieldComponent;\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n group: FormGroup;\n config: Structure;\n errorMessages: any;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Structure; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case StructureType.Fieldset:\n return FieldsetComponent;\n case StructureType.Section:\n return SectionComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n group: FormGroup;\n config: Grid;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Grid; errorMessages: any }) {\n super({ group, errorMessages });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case GridType.Row:\n return RowComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnInit, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from \"./dynamic-form\";\n\n@Directive({ selector: \"[sDynamicForm]\" })\nexport class DynamicFormDirective implements OnInit, OnChanges {\n private id: string;\n private config: Structure | FormField | Grid;\n private group: FormGroup;\n private errorMessages: FormGroup;\n private directiveConfig: DynamicForm;\n\n @Input()\n set sDynamicForm(context: { id: string; config: FormField; structure: Structure; group: FormGroup; errorMessages: any }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n @Input(\"sDynamicFormDisplayTimeInfoSign\")\n public displayTimeInfoSign: number;\n\n public component: ComponentRef<any>;\n\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef) {}\n\n public ngOnInit() {\n if (this.isField()) {\n if (!((this.config as FormField).id) && this.id) {\n (this.config as FormField).id = this.id + \"-\" + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Grid,\n errorMessages: this.errorMessages,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n\n this.component = this.directiveConfig.createComponent(this.resolver, this.container);\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public isField() {\n return FieldType[this.config.type];\n }\n\n public isStructure() {\n return StructureType[this.config.type];\n }\n\n public isGrid() {\n return GridType[this.config.type];\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { debounceTime, repeat, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[sLongPress]\",\n})\nexport class LongPressDirective implements OnInit, OnDestroy {\n @Input()\n public sLongPressDelay = 500;\n\n @Output()\n public sLongPress = new EventEmitter<MouseEvent>();\n\n public mouseUp = new Subject<MouseEvent>();\n public mouseDown = new Subject<MouseEvent>();\n public ngUnsubscribe = new Subject();\n\n @HostListener(\"mouseup\", [\"$event\"])\n @HostListener(\"touchend\", [\"$event\"])\n public onMouseUp(event: MouseEvent) {\n this.mouseUp.next(event);\n }\n\n @HostListener(\"mousedown\", [\"$event\"])\n @HostListener(\"touchstart\", [\"$event\"])\n public onMouseDown(event: MouseEvent) {\n this.mouseDown.next(event);\n }\n\n public ngOnInit() {\n this.mouseDown\n .pipe(\n debounceTime(this.sLongPressDelay),\n takeUntil(this.mouseUp),\n repeat(),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(event => this.sLongPress.emit(event));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[sDoubleClick]'\n})\nexport class DoubleClickDirective {\n\n @Output() public onDoubleClick: EventEmitter<PointerEvent> = new EventEmitter();\n \n private _timeout: NodeJS.Timeout = null;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.onDoubleClick.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY)\n }\n \n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LongPressDirective } from \"./long-press.directive\";\nimport { DoubleClickDirective } from \"./double-click.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n LongPressDirective,\n DoubleClickDirective\n ],\n exports: [\n LongPressDirective,\n DoubleClickDirective\n ],\n})\nexport class MouseEventsModule {}\n","export enum PasswordStrengths {\n VeryWeak = \"Very_weak\",\n Weak = \"weak\",\n Medium = \"medium\",\n Strong = \"strong\",\n}","export enum PasswordStrengthPositions {\n Top = \"top\",\n Right = \"right\",\n Left = \"left\",\n}","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { PasswordStrengths, PasswordStrengthPositions } from \"./models/index\";\n\n@Component({\n templateUrl: \"./password-strength.component.html\",\n styleUrls: [\"./password-strength.component.scss\"],\n})\nexport class PasswordStrengthComponent implements OnInit {\n @Input()\n public weakTitle = \"Fraca\";\n\n @Input()\n public mediumTitle = \"Médio\";\n\n @Input()\n public strongTitle = \"Forte\";\n\n @Input()\n public description: string;\n\n public title: string;\n public position = PasswordStrengthPositions.Right;\n public left = 0;\n public top = 0;\n public visible = false;\n\n public ngOnInit(): void {\n this.title = this.weakTitle;\n }\n\n public setPasswordStrengthPosition() {\n const passwordStrength = document.querySelector(\".password-strength\");\n\n switch (this.position) {\n case PasswordStrengthPositions.Top:\n passwordStrength.classList.add(\"password-strength--top\");\n break;\n case PasswordStrengthPositions.Right:\n passwordStrength.classList.add(\"password-strength--right\");\n break;\n case PasswordStrengthPositions.Left:\n passwordStrength.classList.add(\"password-strength--left\");\n break;\n }\n }\n\n public updateIndicators(passwordStrength: PasswordStrengths) {\n const strengthIndicator1 = document.querySelector(\"#strength-indicator-1\");\n const strengthIndicator2 = document.querySelector(\"#strength-indicator-2\");\n const strengthIndicator3 = document.querySelector(\"#strength-indicator-3\");\n\n const onIndicators = [];\n const indicators = [\n strengthIndicator1,\n strengthIndicator2,\n strengthIndicator3,\n ];\n\n let strengthClass: string;\n\n switch (passwordStrength) {\n case PasswordStrengths.VeryWeak:\n this.title = this.weakTitle;\n break;\n case PasswordStrengths.Weak:\n this.title = this.weakTitle;\n strengthClass = \"strength-indicator--weak\";\n onIndicators.push(strengthIndicator1);\n break;\n case PasswordStrengths.Medium:\n this.title = this.mediumTitle;\n strengthClass = \"strength-indicator--medium\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n break;\n case PasswordStrengths.Strong:\n this.title = this.strongTitle;\n strengthClass = \"strength-indicator--strong\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n onIndicators.push(strengthIndicator3);\n break;\n }\n\n indicators.forEach(indicator => {\n indicator.classList.remove(\n \"strength-indicator--weak\",\n \"strength-indicator--medium\",\n \"strength-indicator--strong\",\n );\n });\n\n onIndicators.forEach(indicator => {\n indicator.classList.add(strengthClass);\n });\n }\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnInit,\n} from \"@angular/core\";\n\nimport { PasswordStrengthPositions, PasswordStrengths } from \"./models/index\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@Directive({\n selector: \"[sPasswordStrength]\",\n})\nexport class PasswordStrengthDirective implements OnInit {\n @Input(\"sPasswordStrength\")\n public enabled = true;\n\n @Input(\"psValidation\")\n public validation: (content: string) => PasswordStrengths;\n\n @Input(\"psPosition\")\n public position = PasswordStrengthPositions.Right;\n\n @Input(\"psWeakTitle\")\n public weakTitle: string;\n\n @Input(\"psMediumTitle\")\n public mediumTitle: string;\n\n @Input(\"psStrongTitle\")\n public strongTitle: string;\n\n @Input(\"psDescription\")\n public description: string;\n\n private componentRef: ComponentRef<any> = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n ) { }\n\n public ngOnInit() {\n this.validateProperties();\n }\n\n @HostListener(\"keyup\")\n @HostListener(\"focus\")\n public onFocus(): void {\n const content = this.elementRef.nativeElement.value ?? \"\";\n \n if (content) {\n this.createPasswordStrength();\n this.componentRef?.instance.updateIndicators(this.validation(content));\n } else {\n this.componentRef?.instance.updateIndicators(PasswordStrengths.VeryWeak);\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.destroyPasswordStrength();\n }\n\n private createPasswordStrength() {\n if (this.enabled && this.componentRef === null) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setPasswordStrengthComponentProperties();\n\n this.showPasswordStrength();\n }\n }\n\n private showPasswordStrength() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n }\n }\n\n private setPasswordStrengthComponentProperties() {\n if (this.componentRef != null) {\n this.componentRef.instance.position = this.position;\n this.componentRef.instance.weakTitle = this.weakTitle;\n this.componentRef.instance.mediumTitle = this.mediumTitle;\n this.componentRef.instance.strongTitle = this.strongTitle;\n this.componentRef.instance.description = this.description;\n\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const margin = 20;\n const elementRefHeight = bottom - top;\n const elementRefWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: PasswordStrengthPositions[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(PasswordStrengthPositions.Top)\n && invalidOptions.includes(PasswordStrengthPositions.Right)\n && invalidOptions.includes(PasswordStrengthPositions.Left)) {\n this.destroyPasswordStrength();\n throw new Error(\"No space to show password strength\");\n }\n\n switch (this.position) {\n case PasswordStrengthPositions.Top: {\n const topShift = top;\n const rightShift = document.body.clientWidth - right;\n const leftShift = left;\n\n if (topShift <= elementRefHeight + safeSpace || rightShift < 50 || leftShift < 50) {\n this.position = PasswordStrengthPositions.Right;\n invalidOptions.push(PasswordStrengthPositions.Top);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top - margin);\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Right: {\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Left;\n invalidOptions.push(PasswordStrengthPositions.Right);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(right + margin);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Left: {\n const leftShift = left;\n\n if (leftShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Top;\n invalidOptions.push(PasswordStrengthPositions.Left);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(left - margin);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private validateProperties() {\n this.validation = this.validation || this.defaultValidator;\n\n if (!this.description) {\n throw new Error(\"Description is required\");\n }\n }\n\n private destroyPasswordStrength(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private defaultValidator(content: string): PasswordStrengths {\n let points = 0;\n\n const regExpValidations = [\n new RegExp(\"(?=.*\\\\d)\"), // number\n new RegExp(\"(?=.*[a-z])\"), // lowercase\n new RegExp(\"(?=.*[A-Z])\"), // uppercase\n new RegExp(\"(?=.*[!@#$%&*.\\\\-=+^~])\"), // special character\n ];\n\n if (content.length >= 6) {\n points++;\n }\n\n regExpValidations.forEach(validation => {\n if (validation.test(content)) {\n points++;\n }\n });\n\n if (points < 1) {\n return PasswordStrengths.VeryWeak;\n } else if (points < 4) {\n return PasswordStrengths.Weak;\n } else if (points < 5) {\n return PasswordStrengths.Medium;\n } else {\n return PasswordStrengths.Strong;\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PasswordStrengthDirective } from \"./password-strength.directive\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n PasswordStrengthComponent,\n PasswordStrengthDirective,\n ],\n exports: [PasswordStrengthDirective],\n})\nexport class PasswordStrengthModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { HotkeyModule, HotkeysService } from \"angular2-hotkeys\";\n\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ButtonModule as PrimeButtonModule } from \"primeng/button\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { CheckboxModule } from \"primeng/checkbox\";\nimport { ChipsModule } from \"primeng/chips\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\nimport { MultiSelectModule } from \"primeng/multiselect\";\nimport { PanelModule } from \"primeng/panel\";\nimport { RadioButtonModule } from \"primeng/radiobutton\";\nimport { TableModule as PrimeNGTableModule } from \"primeng/table\";\nimport { SliderModule } from 'primeng/slider';\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { CalendarMaskModule } from \"../calendar-mask/calendar-mask.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { FileUploadModule } from \"../file-upload/file-upload.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { LocalizedNumberInputModule } from \"../localized-number-input/localized-number-input.module\";\nimport { MaskFormatterModule } from \"../mask/mask-formatter.module\";\nimport { NumberInputModule } from \"../number-input/number-input.module\";\nimport { BignumberInputModule } from \"../bignumber-input/number-input.module\";\nimport { TableHeaderCheckboxModule } from \"../table-header/table-header-checkox.module\";\nimport { TableModule } from \"../table/table.module\";\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { NumberFieldComponent } from \"./components/fields/number/number-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { LookupComponent } from \"./components/lookup/lookup.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\nimport { DynamicFieldComponent } from \"./components/dynamic-field/dynamic-field.component\";\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\nimport { DynamicFormDirective } from \"./dynamic-form.directive\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/number-field.component\";\nimport { MouseEventsModule } from \"../mouse-events/mouse-events.module\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { PasswordStrengthModule } from \"../password-strength/password-strength.module\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n InputTextModule,\n CheckboxModule,\n CalendarModule,\n InputMaskModule,\n DropdownModule,\n NumberInputModule,\n BignumberInputModule,\n LocalizedNumberInputModule,\n ControlErrorsModule,\n LocaleModule,\n AutoCompleteModule,\n MultiSelectModule,\n PrimeButtonModule,\n ButtonModule,\n PanelModule,\n DialogModule,\n RadioButtonModule,\n PrimeNGTableModule,\n EmptyStateModule,\n LoadingStateModule,\n HotkeyModule,\n ChipsModule,\n CalendarMaskModule,\n InputTextareaModule,\n RadioButtonModule,\n KeyFilterModule,\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n TableModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n ],\n declarations: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CurrencyFieldComponent,\n DynamicFormComponent,\n DynamicFieldComponent,\n DynamicFormDirective,\n FieldsetComponent,\n FileUploadComponent,\n LookupComponent,\n LookupFieldComponent,\n NumberFieldComponent,\n BignumberFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n TextAreaFieldComponent,\n TextFieldComponent,\n BooleanSwitchFieldComponent,\n PasswordFieldComponent,\n SliderFieldComponent,\n ],\n exports: [DynamicFormComponent, LookupComponent],\n entryComponents: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CurrencyFieldComponent,\n FieldsetComponent,\n FileUploadComponent,\n LookupFieldComponent,\n NumberFieldComponent,\n BignumberFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n TextAreaFieldComponent,\n TextFieldComponent,\n PasswordFieldComponent,\n BooleanSwitchFieldComponent,\n SliderFieldComponent,\n ],\n providers: [HotkeysService]\n})\nexport class DynamicFormModule {}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class CustomFieldsService {\n constructor(private http: HttpClient) {\n }\n\n public getCustomFields(domain: string, service: string, entity: string, endpoint: string): Observable<any> {\n const entityDto = { entityId: { domain_: domain, service_: service, id: entity } };\n return this.http.post(endpoint, entityDto);\n }\n\n public getFileLocationUrl(dto: {\n domain: string;\n service: string;\n entityName: string;\n field: string;\n fileName: string;\n }, endpoint: string): Observable<any> {\n return this.http.post(endpoint, dto);\n }\n\n public uploadTempFile(location: string, file: File) {\n return this.http.put(location, file, {\n reportProgress: true,\n observe: \"events\",\n headers: { \"Content-Type\": file.type }\n });\n }\n\n public requestAccess(objectId: string, endpoint: string) {\n return this.http.post(endpoint, { objectId });\n }\n\n public getFile(permanentUrl: string) {\n return this.http.get(permanentUrl, { responseType: \"blob\" });\n }\n}\n","import { HttpErrorResponse, HttpEventType } from \"@angular/common/http\";\nimport { Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, AfterViewInit, Optional, SimpleChange, SimpleChanges } from \"@angular/core\";\nimport {\n ControlContainer,\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup, NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n ValidatorFn,\n Validators\n} from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\nimport { BehaviorSubject, Observable, Subject, forkJoin, of, throwError } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\nimport { FieldType, FormField } from \"../dynamic-form/index\";\nimport { FileDto } from \"../file-upload/index\";\nimport { LocaleOptions } from \"../locale\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\n\nenum CustomFieldType {\n String = \"String\",\n Boolean = \"Boolean\",\n Integer = \"Integer\",\n Double = \"Double\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Time = \"Time\",\n Money = \"Money\",\n Blob = \"Blob\",\n Binary = \"Binary\",\n Any = \"Any\",\n Enum = \"Enum\"\n}\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-custom-fields\",\n templateUrl: \"./custom-fields.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n ],\n})\nexport class CustomFieldsComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator, OnChanges, AfterViewInit {\n @Input()\n public domain: string;\n @Input()\n public service: string;\n @Input()\n public entity: string;\n @Input()\n public invalidErrorLabel: string;\n @Input()\n public entityObject: any;\n @Input()\n public customFieldsEndpoint = \"platform/field_customization/queries/getEntity\";\n @Input()\n public fileLocationEndpoint = \"platform/field_customization/actions/requestUpload\";\n @Input()\n public requestAccessEndpoint = \"platform/field_customization/actions/requestAccess\";\n @Input()\n public requiredErrorMessage: string;\n @Input()\n public displayTimeInfoSign: number;\n @Input()\n public showFileUploadDate: boolean = false;\n @Input()\n public ready$: BehaviorSubject<boolean>;\n @Input()\n public disableFields: boolean;\n public fields: FormField[] = [];\n public formGroup: FormGroup;\n private ready = false;\n private onChange: any;\n private onTouched: any;\n private value: any;\n private ngUsubscribe: Subject<void> = new Subject();\n private uploadCanceled: boolean;\n private hasBlob: boolean;\n private hasUploaded: boolean;\n\n constructor(\n private customFieldsService: CustomFieldsService,\n private localeService: LocaleService,\n private sanitizer: DomSanitizer,\n private translateService: TranslateService,\n @Optional() private controlContainer: ControlContainer\n ) {\n }\n\n get parentForm(): FormGroup {\n return this.controlContainer.control as FormGroup;\n }\n\n get parentControl(): FormControl {\n return this.parentForm.get(\"custom\") as FormControl;\n }\n\n public ngOnInit() {\n if (!this.domain) throw new Error(\"You need to specify the custom-fields domain!\");\n if (!this.service) throw new Error(\"You need to specify the custom-fields service!\");\n if (!this.entity) throw new Error(\"You need to specify the custom-fields entity!\");\n\n this.formGroup = new FormGroup({});\n const observables = [this.getCustomFields(), this.localeService.get()];\n forkJoin(observables)\n .pipe(takeUntil(this.ngUsubscribe), finalize(() => {\n this.formGroup.markAsPristine();\n this.parentControl.markAsPristine();\n\n if (this.ready$)\n this.ready$.next(true);\n }))\n .subscribe((response: any[]) => {\n const [customFieldsResponse, localeOptions] = response;\n const defaults: any = {};\n defaults[CustomFieldType.String] = {};\n defaults[CustomFieldType.Boolean] = { defaultValue: false };\n defaults[CustomFieldType.Integer] = {};\n defaults[CustomFieldType.Double] = { defaultMask: \"\" };\n defaults[CustomFieldType.Money] = {};\n defaults[CustomFieldType.Date] = {};\n defaults[CustomFieldType.DateTime] = {};\n defaults[CustomFieldType.LocalDateTime] = {};\n defaults[CustomFieldType.Time] = {};\n defaults[CustomFieldType.Blob] = {};\n defaults[CustomFieldType.Enum] = {};\n defaults[CustomFieldType.Binary] = {};\n defaults[CustomFieldType.Any] = {};\n\n if (!customFieldsResponse || !customFieldsResponse.entity_) return;\n const { active, fields } = customFieldsResponse.entity_;\n if (!active) return;\n\n fields\n .filter((field: any) => field.customizable && field.customization && field.customization.active)\n .forEach((field: any) => {\n const formField = this.getFormField(field, localeOptions);\n const fieldType = field.type;\n\n if (field.type === CustomFieldType.Blob && this.value && this.value[formField.name])\n this.createBlobToFileUpload(formField);\n\n const { validationRegex } = field.customization;\n\n const asIsTypes = [\n CustomFieldType.Boolean,\n CustomFieldType.Money,\n CustomFieldType.Date,\n CustomFieldType.DateTime,\n CustomFieldType.LocalDateTime,\n CustomFieldType.Time\n ];\n\n const validators = [];\n if (validationRegex && !asIsTypes.includes(fieldType))\n validators.push(Validators.pattern(validationRegex));\n if (fieldType === CustomFieldType.Integer && !formField.mask) validators.push(Validators.pattern(/^\\-?\\d*$/));\n\n if (formField.required?.()) {\n validators.push(Validators.required);\n }\n\n const control = new FormControl(\n { value: defaults[fieldType].defaultValue, disabled: this.formGroup.disabled },\n validators\n );\n\n this.formGroup.addControl(formField.name, control);\n this.fields.push(formField);\n });\n\n this.createFieldCustomization(fields);\n this.formGroup.patchValue(this.parseValuesForFields(this.value));\n this.ready = true;\n });\n }\n\n public ngAfterViewInit(): void {\n this.enableOrDisableFields(this.disableFields);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.disableFields) {\n this.enableOrDisableFields(changes.disableFields.currentValue);\n }\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = fn;\n this.formGroup.valueChanges.subscribe(() => this.onChange(this.parseFieldsValues()));\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n if (this.ready) {\n const newValue = this.parseValuesForFields(value);\n this.formGroup.patchValue(newValue);\n this.value = newValue;\n this.createFilesIfSetFormValuesAfterInit();\n } else {\n this.formGroup.patchValue(value || {});\n this.value = value;\n }\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) this.formGroup.disable({ emitEvent: false });\n else this.formGroup.enable({ emitEvent: false });\n }\n\n public getCustomFields(): Observable<any> {\n if (this.entityObject && this.entityObject.entity_) {\n return of(this.entityObject);\n }\n return this.customFieldsService.getCustomFields(this.domain, this.service, this.entity, this.customFieldsEndpoint);\n }\n\n public validate() {\n const errors: any = {};\n Object.keys(this.formGroup.controls).forEach(field => {\n const { errors: controlErrors } = this.formGroup.get(field);\n if (controlErrors) errors[field] = controlErrors;\n });\n return errors;\n }\n\n private enableOrDisableFields(disabled: boolean): void {\n if(!this.formGroup) {\n return;\n }\n\n for(const controlName of Object.keys(this.formGroup.value)) {\n disabled ? this.formGroup.get(controlName).disable() : this.formGroup.get(controlName).enable();\n }\n }\n\n public cleanFields() {\n this.formGroup.reset();\n }\n\n\n private parseValuesForFields(values: any) {\n const parsedValues = { ...values };\n\n this.fields.forEach(field => {\n const { type, name } = field;\n const value = values && values[name];\n\n /**\n * Tratamento exclusivo para campos boolean que tem o status Empty\n * Essa condicional necessita estar antes do if (!value) return;\n * Pois ela tem um status que usa null no valor do campo radio boolean\n */\n if (type === FieldType.Boolean) {\n const isString = typeof value === \"string\";\n const notValid = !isString && typeof value !== \"boolean\";\n if (notValid) {\n parsedValues[name] = null;\n } else {\n // Condicional para campos que retornam string de boolen do backand\n if (isString) {\n parsedValues[name] = value === \"true\" ? true : false;\n } else {\n parsedValues[name] = value;\n }\n }\n }\n\n if (!value) return;\n\n switch (type) {\n case FieldType.Date:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.DateTime:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.LocalDateTime:\n parsedValues[name] = moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSS\").toDate();\n break;\n case FieldType.Time:\n parsedValues[name] = moment(value, \"HH:mm:ss\").toDate();\n break;\n }\n });\n\n return parsedValues;\n }\n\n /**\n * Algumas equipes só setam valor no formulário, após o carregamento da tela\n * Como é bem padrão isso, foi necessário criar esse método para gerar o file\n * após setar o valor no formulário\n */\n private createFilesIfSetFormValuesAfterInit() {\n if (!this.hasUploaded) {\n this.fields.filter((field: FormField) => field.type === FieldType.Blob).forEach(field => {\n if (this.formGroup.get(field.name).value) this.createBlobToFileUpload(field);\n });\n }\n }\n\n private parseFieldsValues() {\n const parsedValues: any = {};\n\n this.fields.forEach(field => {\n const { type, name, mask, scale } = field;\n let value = this.formGroup.get(name).value;\n\n if (value) {\n switch (type) {\n case FieldType.Number:\n if (mask) value = new BigNumber(value).toFixed(scale as number).toString();\n break;\n case FieldType.Date:\n value = moment(value).format(\"YYYY-MM-DD\");\n break;\n case FieldType.DateTime:\n value = moment(value).format();\n break;\n case FieldType.LocalDateTime:\n value = moment(value).format(\"YYYY-MM-DD[T]HH:mm:ss.SSS\");\n break;\n case FieldType.Time:\n value = moment(value).format(\"HH:mm:ss\");\n break;\n }\n }\n\n if (value !== null && !Number.isNaN(value)) {\n parsedValues[name] = value;\n } else if (this.isTypeNumberOrEnum(type)) {\n parsedValues[name] = field.multiple ? [] : null;\n }\n });\n\n if (this.hasBlob) parsedValues[\"fieldCustomization\"] = this.formGroup.get(\"fieldCustomization\").value;\n return parsedValues;\n }\n\n private isTypeNumberOrEnum(type: FieldType): boolean {\n const numberOrEnum = [\n FieldType.Number,\n FieldType.Enum\n ];\n return numberOrEnum.includes(type);\n }\n\n private getFormField(field: any, localeOptions: LocaleOptions): FormField {\n let parameters;\n\n switch (field.type) {\n case CustomFieldType.Blob:\n parameters = this.getBlobParameters();\n break;\n case CustomFieldType.Boolean:\n parameters = this.getBooleanParameters();\n break;\n case \"Enumeration\":\n case CustomFieldType.Enum:\n field.type = FieldType.Enum;\n parameters = this.getEnumParameters(field);\n break;\n case CustomFieldType.Money:\n parameters = {\n type: FieldType.Number,\n leftAddon: {\n label: localeOptions?.number?.currencySymbol ?? \"R$\",\n },\n };\n break;\n case CustomFieldType.Double:\n parameters = {\n type: FieldType.Number\n };\n break;\n case CustomFieldType.Integer:\n parameters = {\n type: FieldType.Number,\n scale: 0\n };\n break;\n default:\n parameters = {};\n break;\n }\n\n return new FormField({\n name: field.id,\n label: field.customization.label,\n tooltip: field.customization.tooltip,\n infoSign: field.customization.infoSign,\n type: field.type,\n mask: field.customization.mask,\n required: () => field.customization.mandatory,\n calendarOptions: localeOptions.calendar,\n currencyOptions: localeOptions.number,\n ...parameters,\n });\n }\n\n private getEnumParameters(field: any): object {\n return {\n showClear: true,\n multiple: field.customization.customEnumeration.multiple,\n options: field.customization.customEnumeration.values.map((e: any) => ({ label: e.value, value: e.key })),\n };\n }\n\n private getBooleanParameters(): object {\n return {\n optionsLabel: {\n true: this.getTranslateLabel(`true_label`),\n false: this.getTranslateLabel(`false_label`),\n empty: this.getTranslateLabel(`empty_label`),\n },\n };\n }\n\n private getBlobParameters(): object {\n return {\n size: {\n sm: 12,\n md: 12,\n lg: 12,\n xl: 12,\n },\n accept: \"image/*, application/*, text/*\",\n chooseLabel: this.getTranslateLabel(`choose_label`),\n removeLabel: this.getTranslateLabel(`remove_label`),\n cancelLabel: this.getTranslateLabel(`cancel_label`),\n successTooltip: this.getTranslateLabel(`success_tooltip`),\n multiple: false,\n onUploadFile: (event: { files: FileDto[] }, formfield: FormField) => {\n this.hasUploaded = true;\n this.uploadFile(event, formfield);\n },\n onRemoveFile: (event: { file: FileDto }, formfield: FormField) => {\n this.removeFile(event, formfield);\n },\n onCancelUpload: (event: number, formfield: FormField) => {\n this.cancelUpload(event, formfield);\n },\n onDownloadFile: (event: { index: number; anchor: ElementRef }, formfield: FormField) => {\n this.downloadFile(event, formfield);\n },\n showFileUploadDate: this.showFileUploadDate\n };\n }\n\n /**\n * É necessário criar o fieldCustomization quando há um Blob na entidade para gerar o\n * com os fields inseridos e deletados.\n */\n private createFieldCustomization(fields: any[]): void {\n this.hasBlob = !!fields.filter((field: any) => field.type === CustomFieldType.Blob).length;\n if (this.hasBlob) {\n this.formGroup.addControl(\n \"fieldCustomization\",\n new FormArray([\n new FormGroup({\n domain: new FormControl(this.domain),\n service: new FormControl(this.service),\n entity: new FormControl(this.entity),\n toDelete: new FormControl({ value: {}, disabled: false }),\n toInsert: new FormControl({ value: {}, disabled: false }),\n }),\n ])\n );\n }\n }\n\n private createBlobToFileUpload(field: FormField) {\n const objectId = this.value[field.name] ? this.value[field.name] : this.formGroup.get(field.name).value;\n const fileName = objectId.substring(objectId.lastIndexOf(\"/\") + 1);\n const file: Partial<FileDto> = { name: fileName, objectId, savedFile: true };\n field.files = [file as FileDto];\n }\n\n private downloadFile(event: { index: number; anchor: ElementRef }, field: FormField) {\n const { index, anchor } = event;\n const currentFile = field.files[index];\n if (currentFile.objectURL) {\n anchor.nativeElement.click();\n } else {\n this.customFieldsService\n .requestAccess(currentFile.objectId, this.requestAccessEndpoint)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((data: { fileName: string; uri: string }) => {\n const { fileName, uri } = data;\n this.customFieldsService\n .getFile(uri)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((blob: any) => {\n const newFile = <FileDto>new File([blob], fileName);\n newFile.objectURL = this.sanitizer.bypassSecurityTrustUrl(uri);\n anchor.nativeElement.setAttribute(\"href\", uri);\n newFile.objectId = currentFile.objectId;\n newFile.savedFile = true;\n field.files[index] = newFile;\n field.files = [...field.files];\n anchor.nativeElement.click();\n });\n });\n }\n }\n\n private uploadFile(event: { files: FileDto[] }, formField: any): void {\n const { files } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n\n // Se ocorrer um upload, já existindo um arquivo com upload feito. É necessário excluir o mesmo.\n if (field.files && field.files.length) {\n this.removeFile({ file: field.files[0] }, field);\n }\n field.files = files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (!file.savedFile && !file.progress) {\n file.isUploading = true;\n this.formGroup.get(field.name).setValidators(isUploading(file));\n this.formGroup.get(field.name).updateValueAndValidity();\n this.customFieldsService\n .getFileLocationUrl(\n {\n domain: this.domain,\n service: this.service,\n entityName: this.entity,\n field: field.name,\n fileName: file.name,\n },\n this.fileLocationEndpoint\n )\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i)))\n )\n .subscribe((data: any) => {\n const { location, version, objectId } = data;\n file.version = version;\n file.objectId = objectId;\n file[\"uploadSubscribe\"] = this.customFieldsService\n .uploadTempFile(location, file)\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i))),\n finalize(() => {\n file.isUploading = false;\n })\n )\n .subscribe((response: any) => {\n const { type } = response;\n if (!this.uploadCanceled) {\n if (type === HttpEventType.UploadProgress)\n file.progress = Math.round(response.loaded / response.total) * 100;\n else if (type === HttpEventType.Response) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\n\n const value = { objectId, name: file.name, version: file.version };\n const toInsert = this.formGroup.get(\"fieldCustomization\").value[0].toInsert;\n this.formGroup.get(\"fieldCustomization\").value[0].toInsert = {\n ...toInsert,\n [field.name]: value,\n };\n this.formGroup.get(field.name).setValue(`${file.objectId}/${file.name}`);\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).updateValueAndValidity();\n field.files = [file];\n }\n } else if (this.uploadCanceled && type === HttpEventType.Response) this.uploadCanceled = false;\n });\n field.files = [file];\n });\n }\n }\n }\n\n private removeFile(event: { file: FileDto }, formField: any): void {\n const { file } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files = [];\n if (file.objectId) {\n // Quando é um arquivo já salvo o objectId já é no formato \"objectId/name\"\n const value = file.savedFile ? `${file.objectId}` : `${file.objectId}/${file.name}`;\n const toDelete = this.formGroup.get(\"fieldCustomization\").value[0].toDelete;\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(\"fieldCustomization\").value[0].toDelete = {\n ...toDelete,\n [field.name]: [...(toDelete[field.name] || []), value],\n };\n }\n\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private cancelUpload(index: number, formField: any): void {\n this.uploadCanceled = true;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files[index][\"uploadSubscribe\"].unsubscribe();\n field.files = [];\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private defaltCatchError(field: FormField, err: HttpErrorResponse, index: number): Observable<never> {\n const { files } = field;\n files[index].error = err;\n files[index].isUploading = false;\n field.files = [...files];\n this.formGroup.get(field.name).setValidators([errorOnUpload(files[index])]);\n this.formGroup.get(field.name).updateValueAndValidity();\n return throwError(new Error(\"error in upload file. Details: \" + err.message));\n }\n\n private getTranslateLabel(label: string): string {\n return this.translateService.instant(`${this.domain}.${this.service}.${label}`);\n }\n}\n\nfunction isUploading(file: FileDto): ValidatorFn {\n return () => (file.isUploading ? { isUploading: true } : null);\n}\n\nfunction errorOnUpload(file: FileDto): ValidatorFn {\n return () => (file.error ? { uploadError: true } : null);\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicFormModule } from \"../dynamic-form/index\";\nimport { LocaleModule } from \"../locale/index\";\nimport { CustomFieldsComponent } from \"./custom-fields.component\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n LocaleModule,\n DynamicFormModule,\n TranslateModule\n ],\n declarations: [CustomFieldsComponent],\n exports: [CustomFieldsComponent],\n providers: [CustomFieldsService, TranslateService]\n})\nexport class CustomFieldsModule {\n}\n","import { AfterViewInit, Directive, Input } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Directive({\n selector: \"p-table[sEditableOverlay]\",\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n @Input()\n public table: any;\n\n constructor() {}\n\n ngAfterViewInit() {\n this.table.bindDocumentEditListener = this.bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"ng-trigger-overlayAnimation\"));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"s-lookup\"));\n }\n\n private bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, \"ui-editing-cell\");\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener(\"click\", this.table.documentEditListener);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { EditableOverlayDirective } from \"./editable-overlay.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","import * as moment_ from \"moment\";\n\nconst moment = moment_;\n\nconst YEAR = \"year\";\nconst MONTH = \"month\";\nconst DAY = \"day\";\nconst HOUR = \"hour\";\nconst MINUTE = \"minute\";\nconst SECOND = \"second\";\nconst MILLISECOND = \"millisecond\";\n\nexport abstract class DateUtils {\n public static parse(date: Date | string): Date {\n return moment(date).toDate();\n }\n\n public static toString(date: Date, with_time = false) {\n let result = with_time ? moment(date, \"YYYY-MM-DD hh:mm:ss.SSS\") : moment(date, \"YYYY-MM-DD\");\n\n return result.toString();\n }\n\n public static format(date: any, formatString: string = \"YYYY-MM-DD HH:mm:ss.SSS\", lang: string = \"en\"): string {\n const monthName = moment(date)\n .locale(lang)\n .startOf(\"month\")\n .format(\"MMMM\");\n \n const monthNameCapitalized = monthName.charAt(0).toUpperCase() + monthName.slice(1);\n const dateToFormat = moment(date);\n const format_map = {\n YYYY: dateToFormat.format(\"YYYY\"),\n MM: dateToFormat.format(\"MM\"),\n DD: dateToFormat.format(\"DD\"),\n HH: dateToFormat.format(\"HH\"),\n mm: dateToFormat.format(\"mm\"),\n ss: dateToFormat.format(\"ss\"),\n SSS: dateToFormat.format(\"SSS\"),\n D: dateToFormat.format(\"D\"),\n MMMM: monthNameCapitalized,\n MMM: monthNameCapitalized,\n };\n\n let str = formatString;\n const formattedValues: any[] = [];\n\n Object.keys(format_map)\n .sort((a, b) => b.length - a.length)\n .forEach(key => {\n if (str.includes(key)) {\n str = str.replace(key, `$${formattedValues.length}`);\n formattedValues.push(format_map[key]);\n }\n });\n\n formattedValues.forEach((value, i) => {\n str = str.replace(`$${i}`, value);\n });\n\n return str;\n }\n\n public static diff(fistDate: Date, secondDate: Date, scale: string) {\n const milliseconds = moment(fistDate).diff(secondDate, MILLISECOND);\n const seconds = moment(fistDate).diff(secondDate, SECOND);\n const minutes = moment(fistDate).diff(secondDate, MINUTE);\n const hours = moment(fistDate).diff(secondDate, HOUR);\n const days = moment(fistDate).diff(secondDate, DAY);\n const months = moment(fistDate).diff(secondDate, MONTH);\n const years = moment(fistDate).diff(secondDate, YEAR);\n \n if (!scale.endsWith(\"s\")) {\n scale += \"s\";\n }\n \n return Math.floor(\n {\n milliseconds,\n seconds,\n minutes,\n hours,\n days,\n months,\n years,\n }[scale]\n );\n }\n\n public static today(): Date {\n const dateStr = moment().format(\"YYY-MM-DD\");\n return new Date(dateStr);\n }\n\n public static now(): Date {\n return moment().toDate();\n }\n\n public static add(date: Date, quantity: any, scale: any): Date {\n return moment(date).add(quantity, scale).toDate();\n }\n\n public static startOf(date: Date, scale: string): Date {\n const scores = {\n [YEAR]: 6,\n [MONTH]: 5,\n [DAY]: 4,\n [HOUR]: 3,\n [MINUTE]: 2,\n [SECOND]: 1,\n [MILLISECOND]: 0,\n };\n\n function shouldReset(_scale: any) {\n const max_score = scores[scale];\n return scores[_scale] <= max_score;\n }\n\n const vals: any = [\n date.getFullYear(),\n shouldReset(YEAR) ? 0 : date.getMonth(),\n shouldReset(MONTH) ? 1 : date.getDate(),\n shouldReset(DAY) ? 0 : date.getHours(),\n shouldReset(HOUR) ? 0 : date.getMinutes(),\n shouldReset(MINUTE) ? 0 : date.getSeconds(),\n shouldReset(SECOND) ? 0 : date.getMilliseconds(),\n ];\n\n return new Date(vals[0], vals[1], vals[2], vals[3], vals[4], vals[5], vals[6]);\n }\n\n public static clone(date: Date): Date {\n return moment(date).toDate();\n }\n\n public static getDateValues(date: Date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n }\n\n public static getDaysInMonth(date: Date) {\n return moment(date, \"YYYY-MM\").daysInMonth();\n }\n}\n","\n\nexport const $ = (expr: any, con: any) => {\n return typeof expr === 'string'\n ? (con || document).querySelector(expr)\n : expr || null;\n}\n\nexport const createSVG = (tag: any, attrs: any) => {\n const elem = document.createElementNS(\"http://www.w3.org/2000/svg\", tag);\n for (let attr in attrs) {\n if (attr === \"append_to\") {\n const parent = attrs.append_to;\n parent.appendChild(elem);\n } else if (attr === \"innerHTML\") {\n elem.innerHTML = attrs.innerHTML;\n } else {\n elem.setAttribute(attr, attrs[attr]);\n }\n }\n return elem;\n}\n\nexport const animateSVG = (svgElement: any, attr: any, from: any, to: any) => {\n const animatedSvgElement = getAnimationElement(svgElement, attr, from, to);\n\n if (animatedSvgElement === svgElement) {\n // triggered 2nd time programmatically\n // trigger artificial click event\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"click\", true, true);\n // event.eventName = 'click'; TODO: Ver porque esta propriedade não existe\n animatedSvgElement.dispatchEvent(event);\n }\n}\n\nconst getAnimationElement = (svgElement: any, attr: any, from: any, to: any, dur = \"0.4s\", begin = \"0.1s\") => {\n const animEl = svgElement.querySelector(\"animate\");\n if (animEl) {\n $.attr(animEl, {\n attributeName: attr,\n from,\n to,\n dur,\n begin: \"click + \" + begin, // artificial click\n }, null);\n return svgElement;\n }\n\n const animateElement = createSVG(\"animate\", {\n attributeName: attr,\n from,\n to,\n dur,\n begin,\n calcMode: \"spline\",\n values: from + \";\" + to,\n keyTimes: \"0; 1\",\n keySplines: cubic_bezier(\"ease-out\"),\n });\n svgElement.appendChild(animateElement);\n\n return svgElement;\n}\n\nconst cubic_bezier = (name: any) => {\n return {\n ease: \".25 .1 .25 1\",\n linear: \"0 0 1 1\",\n \"ease-in\": \".42 0 1 1\",\n \"ease-out\": \"0 0 .58 1\",\n \"ease-in-out\": \".42 0 .58 1\",\n }[name];\n}\n\n$.on = (element: any, event: any, selector: any, callback: any) => {\n if (!callback) {\n callback = selector;\n $.bind(element, event, callback);\n } else {\n $.delegate(element, event, selector, callback);\n }\n};\n\n$.off = (element: any, event: any, handler: any) => {\n element.removeEventListener(event, handler);\n};\n\n$.bind = (element: any, event: any, callback: any) => {\n event.split(/\\s+/).forEach(function (event: any) {\n element.addEventListener(event, callback);\n });\n};\n\n$.delegate = (element: any, event: any, selector: any, callback: any) => {\n element.addEventListener(event, function (e: any) {\n const delegatedTarget = e.target.closest(selector);\n if (delegatedTarget) {\n e.delegatedTarget = delegatedTarget;\n callback.call(this, e, delegatedTarget);\n }\n });\n};\n\n$.closest = (selector: any, element: any) => {\n if (!element) { \n return null;\n }\n\n if (element.matches(selector)) {\n return element;\n }\n\n // TODO: Corrigir este problema\n // return $.closest(selector, element.parentNode);\n};\n\n$.attr = (element: any, attr: any, value: any) => {\n if (!value && typeof attr === \"string\") {\n return element.getAttribute(attr);\n }\n\n if (typeof attr === \"object\") {\n for (let key in attr) {\n $.attr(element, key, attr[key]);\n }\n return;\n }\n\n element.setAttribute(attr, value);\n};\n","export enum ViewMode {\n QuarterDay = \"quarterDay\",\n HalfDay = \"halfDay\",\n Day = \"day\",\n Week = \"week\",\n Month = \"month\",\n Year = \"year\",\n Hour = \"hour\",\n}\n","import { DateUtils } from './utils/date-utils';\nimport { $, createSVG, animateSVG } from './utils/svg-utils';\nimport { ViewMode } from \"../../models/view-mode\";\n\nimport { Gantt } from \"./gantt\";\nimport { EnrichedTask } from \"../../models/task\";\nimport { Arrow } from \"./arrow\";\n\nexport class Bar {\n private _actionCompleted: boolean;\n private _gantt: Gantt;\n private _invalid: boolean;\n private _height: number;\n private _x: number;\n private _y: number;\n private _cornerRadius: number;\n private _duration: number;\n private _width: number;\n private _barGroup: any;\n\n private _arrows: Arrow[];\n private _group: any;\n private _task: EnrichedTask;\n private _element: any;\n\n public get arrows(): Arrow[] {\n return this._arrows;\n }\n\n public set arrows(arrows: Arrow[]) {\n this._arrows = arrows;\n }\n\n public get task(): EnrichedTask {\n return this._task;\n }\n\n public get element() {\n return this._element;\n }\n\n public get group() {\n return this._group;\n }\n\n constructor(gantt: any, task: any) {\n this._setDefaults(gantt, task);\n this._prepare();\n this._draw();\n this._bind();\n }\n\n public updateBarPosition({ x, width }: any): void {\n const bar = this.element;\n if (x) {\n // get all x values of parent task\n const xs = this.task.dependencies.map((dep: any) => {\n return this._gantt.get_bar(dep).element.getX();\n });\n // child task must not go before parent\n const valid_x = xs.reduce((prev: any, curr: any) => {\n return x >= curr;\n }, x);\n if (!valid_x) {\n width = null;\n return;\n }\n this._updateAttr(bar, \"x\", x);\n }\n if (width && width >= this._gantt.options.columnWidth) {\n this._updateAttr(bar, \"width\", width);\n }\n this._updateLabelPosition();\n this._updateArrowPosition();\n }\n\n public dateChanged(): void {\n let changed = false;\n const { newStartDate, newEndDate } = this._computeStartEndDate();\n\n if (this.task.start !== newStartDate) {\n changed = true;\n this.task.start = newStartDate;\n }\n\n if (this.task.end !== newEndDate) {\n changed = true;\n this.task.end = newEndDate;\n }\n\n if (changed) {\n this._gantt.trigger_event(\"onDateChange\", [\n this.task,\n newStartDate,\n DateUtils.add(newEndDate, -1, \"second\"),\n ]);\n };\n }\n\n public setActionCompleted(): void {\n this._actionCompleted = true;\n setTimeout(() => {\n this._actionCompleted = false;\n }, 1000);\n }\n\n private _setDefaults(gantt: any, task: any) {\n this._actionCompleted = false;\n this._gantt = gantt;\n this._task = task;\n }\n\n private _prepare() {\n this._prepareValues();\n this._prepareHelpers();\n }\n\n private _prepareValues(): void {\n this._invalid = this.task.invalid;\n this._height = this._gantt.options.barHeight;\n this._x = this._computeX();\n this._y = this._computeY();\n this._cornerRadius = this._gantt.options.barCornerRadius;\n this._duration = DateUtils.diff(this.task.end, this.task.start, \"minute\") / this._gantt.options.step / 60.0;\n this._width = this._gantt.options.columnWidth * this._duration;\n this._group = createSVG(\"g\", {\n class: \"bar-wrapper \" + (this.task.custom_class || \"\"),\n \"data-id\": this.task.id,\n });\n this._barGroup = createSVG(\"g\", {\n class: \"bar-group\",\n append_to: this.group,\n });\n }\n\n private _prepareHelpers(): void {\n (SVGElement.prototype as any).getX = function () {\n return +this.getAttribute(\"x\");\n };\n (SVGElement.prototype as any).getY = function () {\n return +this.getAttribute(\"y\");\n };\n (SVGElement.prototype as any).getWidth = function () {\n return +this.getAttribute(\"width\");\n };\n (SVGElement.prototype as any).getHeight = function () {\n return +this.getAttribute(\"height\");\n };\n (SVGElement.prototype as any).getEndX = function () {\n return this.getX() + this.getWidth();\n };\n }\n\n private _draw(): void {\n this._drawBar();\n this._drawLabel();\n }\n\n private _drawBar(): void {\n this._element = createSVG(\"rect\", {\n x: this._x,\n y: this._y,\n width: this._width,\n height: this._height,\n rx: this._cornerRadius,\n ry: this._cornerRadius,\n class: \"bar\",\n append_to: this._barGroup,\n fill: this.task.color,\n });\n\n animateSVG(this.element, \"width\", 0, this._width);\n\n if (this._invalid) {\n this.element.classList.add(\"bar-invalid\");\n }\n }\n\n private _drawLabel(): void {\n createSVG(\"text\", {\n x: this._x + this._width / 2,\n y: this._y + this._height / 2,\n innerHTML: this.task.showTaskName ? this.task.name : \"\",\n class: \"bar-label\",\n append_to: this._barGroup,\n });\n // labels get BBox in the next tick\n requestAnimationFrame(() => this._updateLabelPosition());\n }\n\n private _bind(): void {\n if (!this._invalid) {\n this._setupClickEvent();\n }\n }\n\n private _setupClickEvent(): void {\n $.on(this.group, \"focus \" + this._gantt.options.popupTrigger, (e: any) => {\n // just finished a move action, wait for a few seconds\n if (!this._actionCompleted) {\n this._showPopup();\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n }\n }, null);\n\n $.on(this.group, \"dblclick\", (e: any) => {\n // just finished a move action, wait for a few seconds\n \n if (!this._actionCompleted) {\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n }\n\n private _showPopup() {\n if (this._gantt.bar_being_dragged) {\n return;\n }\n\n const formatString = this._gantt.view_is(ViewMode.Hour)\n ? \"HH:ss\"\n : \"MMM D\";\n\n const start_date = DateUtils.format(\n this.task.start,\n formatString,\n this._gantt.options.language\n );\n const end_date = DateUtils.format(\n DateUtils.add(this.task.end, -1, \"second\"),\n formatString,\n this._gantt.options.language\n );\n const subtitle = start_date + \" - \" + end_date;\n\n this._gantt.show_popup({\n target_element: this.element,\n title: this.task.name,\n subtitle: subtitle,\n task: this.task,\n });\n }\n\n private _computeStartEndDate(): { newStartDate: Date, newEndDate: Date } {\n const bar = this.element;\n const xInUnits = bar.getX() / this._gantt.options.columnWidth;\n const newStartDate = DateUtils.add(\n this._gantt.minDate,\n xInUnits * this._gantt.options.step,\n \"hour\"\n );\n const width_in_units = bar.getWidth() / this._gantt.options.columnWidth;\n const newEndDate = DateUtils.add(\n newStartDate,\n width_in_units * this._gantt.options.step,\n \"hour\"\n );\n\n return { newStartDate, newEndDate };\n }\n\n private _computeX() {\n const { step, columnWidth } = this._gantt.options;\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"hour\");\n let x = (diff / step) * columnWidth;\n\n if (this._gantt.view_is(ViewMode.Month)) {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"day\");\n x = (diff * columnWidth) / 30;\n }\n return x;\n }\n\n private _computeY() {\n return (\n this._gantt.options.headerHeight +\n this._gantt.options.padding +\n this.task._index * (this._height + this._gantt.options.padding)\n );\n }\n\n private _updateAttr(element: any, attr: any, value: any) {\n value = +value;\n if (!isNaN(value)) {\n element.setAttribute(attr, value);\n }\n return element;\n }\n\n private _updateLabelPosition(): void {\n const bar = this.element,\n label = this.group.querySelector(\".bar-label\");\n\n if (label.getBBox().width > bar.getWidth()) {\n label.classList.add(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() + 5);\n } else {\n label.classList.remove(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() / 2);\n }\n }\n\n private _updateArrowPosition(): void {\n this._arrows = this._arrows || [];\n for (let arrow of this._arrows) {\n arrow.update();\n }\n }\n}\n","export class Popup {\n private parent: any;\n private customHtml: any;\n private title: any;\n private subtitle: any;\n private pointer: any;\n\n constructor(parent: any, customHtml: any) {\n this.parent = parent;\n this.customHtml = customHtml;\n this.make();\n }\n\n public show(options: any) {\n if (!options.target_element) {\n throw new Error(\"target_element is required to show popup\");\n }\n if (!options.position) {\n options.position = \"left\";\n }\n const target_element = options.target_element;\n\n if (this.customHtml) {\n let html = this.customHtml(options.task);\n html += '<div class=\"pointer\"></div>';\n this.parent.innerHTML = html;\n this.pointer = this.parent.querySelector(\".pointer\");\n } else {\n // set data\n this.title.innerHTML = options.title;\n this.subtitle.innerHTML = options.subtitle;\n this.parent.style.width = this.parent.clientWidth + \"px\";\n }\n\n // set position\n let positionMeta;\n if (target_element instanceof HTMLElement) {\n positionMeta = target_element.getBoundingClientRect();\n } else if (target_element instanceof SVGElement) {\n positionMeta = options.target_element.getBBox();\n }\n\n if (options.position === 'left') {\n this.parent.style.left = positionMeta.x + (positionMeta.width + 10) + \"px\";\n this.parent.style.top = positionMeta.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(90deg)\";\n this.pointer.style.left = \"-7px\";\n this.pointer.style.top = \"2px\";\n }\n\n // show\n this.parent.style.opacity = 1;\n }\n\n private make() {\n this.parent.innerHTML = `\n <div class=\"popup\">\n <div class=\"wrp-title\">\n <span class=\"title\"></span>\n </div>\n <div class=\"wrp-subtitle\">\n <span class=\"icon fas fa-calendar-alt\"></span>\n <span class=\"subtitle\"></span>\n </div>\n <div class=\"pointer\"></div>\n </div>\n `;\n\n this.hide();\n\n this.title = this.parent.querySelector(\".title\");\n this.subtitle = this.parent.querySelector(\".subtitle\");\n this.pointer = this.parent.querySelector(\".pointer\");\n }\n\n private hide() {\n this.parent.style.opacity = 0;\n this.parent.style.left = 0;\n }\n}\n","import { createSVG } from './utils/svg-utils';\nimport { Gantt } from \"./gantt\";\nimport { Bar } from \"./bar\";\n\nexport class Arrow {\n private _gantt: Gantt;\n private _fromTask: Bar;\n private _toTask: Bar;\n private _path: any;\n private _element: any;\n\n constructor(gantt: Gantt, fromTask: Bar, toTask: Bar) {\n this._gantt = gantt;\n this._fromTask = fromTask;\n this._toTask = toTask;\n\n this.calculatePath();\n this.draw();\n }\n\n public get fromTask(): Bar {\n return this._fromTask;\n }\n\n public get toTask(): Bar {\n return this._toTask;\n }\n\n public get element() {\n return this._element;\n }\n\n public update() {\n this.calculatePath();\n this._element.setAttribute(\"d\", this._path);\n }\n\n private calculatePath() {\n let startX = this.fromTask.element.getX() + this.fromTask.element.getWidth() / 2;\n\n const condition = () =>\n this.toTask.element.getX() < startX + this._gantt.options.padding &&\n startX > this.fromTask.element.getX() + this._gantt.options.padding;\n\n while (condition()) {\n startX -= 10;\n }\n\n const startY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.fromTask.task._index +\n this._gantt.options.padding;\n const endX = this.toTask.element.getX() - this._gantt.options.padding / 2;\n const endY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight / 2 +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.toTask.task._index +\n this._gantt.options.padding;\n const fromIsBelowTo = this.fromTask.task._index > this.toTask.task._index;\n const curve = this._gantt.options.arrowCurve;\n const clockwise = fromIsBelowTo ? 1 : 0;\n const curveY = fromIsBelowTo ? -curve : curve;\n const offset = fromIsBelowTo\n ? endY + this._gantt.options.arrowCurve\n : endY - this._gantt.options.arrowCurve;\n\n this._path = `\n M ${startX} ${startY}\n V ${offset}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n\n if (this.toTask.element.getX() < this.fromTask.element.getX() + this._gantt.options.padding) {\n const down1 = this._gantt.options.padding / 2 - curve;\n const down2 = this.toTask.element.getY() + this.toTask.element.getHeight() / 2 - curveY;\n const left = this.toTask.element.getX() - this._gantt.options.padding;\n\n this._path = `\n M ${startX} ${startY}\n v ${down1}\n a ${curve} ${curve} 0 0 1 -${curve} ${curve}\n H ${left}\n a ${curve} ${curve} 0 0 ${clockwise} -${curve} ${curveY}\n V ${down2}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n }\n }\n\n private draw() {\n this._element = createSVG(\"path\", {\n d: this._path,\n \"data-from\": this.fromTask.task.id,\n \"data-to\": this.toTask.task.id,\n });\n }\n}\n","import { Options } from \"../../models/options\";\nimport { ViewMode } from \"../../models/view-mode\";\n\nexport const defaultOptions: Options = {\n headerHeight: 94,\n columnWidth: 30,\n step: 24,\n barHeight: 20,\n barCornerRadius: 0,\n arrowCurve: 4,\n padding: 24,\n viewMode: ViewMode.Day,\n dateFormat: \"YYYY-MM-DD\",\n popupTrigger: \"click\",\n customPopupHtml: null,\n language: \"en\",\n};\n","import { DateUtils } from \"./utils/date-utils\";\nimport { $, createSVG } from \"./utils/svg-utils\";\nimport { Bar } from \"./bar\";\nimport { Popup } from \"./popup\";\nimport { Arrow } from \"./arrow\";\nimport { Options } from \"../../models/options\";\nimport { defaultOptions } from \"./gantt-options\";\nimport { ViewMode } from \"../../models/view-mode\";\nimport { Task, EnrichedTask } from \"../../models\";\n\nexport class Gantt {\n public options: Options;\n public tasks: EnrichedTask[];\n public dependency_map: any;\n\n private _minDate: Date;\n private _maxDate: Date;\n private _realMinDate: Date;\n private _realMaxDate: Date;\n\n public dates: any;\n public layers: any;\n public bars: Bar[];\n public arrows: Arrow[];\n public bar_being_dragged: any;\n public $svg: any;\n public $container: HTMLDivElement;\n public popup_wrapper: HTMLDivElement;\n public popup: any;\n\n public get minDate(): Date {\n return this._minDate;\n }\n\n public get maxDate(): Date {\n return this._maxDate;\n }\n\n constructor(wrapper: any, tasks: Task[], options?: Options) {\n this.setup_wrapper(wrapper);\n this.setup_options(options);\n this.setup_tasks(tasks);\n // initialize with default view mode\n this.change_view_mode();\n this.bind_events();\n }\n\n private setup_wrapper(element: any) {\n let svg_element, wrapper_element;\n\n // CSS Selector is passed\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n // get the SVGElement\n if (element instanceof HTMLElement) {\n wrapper_element = element;\n svg_element = element.querySelector(\"svg\");\n } else if (element instanceof SVGElement) {\n svg_element = element;\n } else {\n throw new TypeError(\n \"Frappé Gantt only supports usage of a string CSS selector, HTML DOM element or SVG DOM element for the \\'element\\' parameter\"\n );\n }\n\n // svg element\n if (!svg_element) {\n // create it\n this.$svg = createSVG(\"svg\", {\n append_to: wrapper_element,\n class: \"gantt\",\n });\n } else {\n this.$svg = svg_element;\n this.$svg.classList.add(\"gantt\");\n }\n\n // wrapper element\n this.$container = document.createElement(\"div\");\n this.$container.classList.add(\"gantt-container\");\n\n const parent_element = this.$svg.parentElement;\n parent_element.appendChild(this.$container);\n this.$container.appendChild(this.$svg);\n\n // popup wrapper\n this.popup_wrapper = document.createElement(\"div\");\n this.popup_wrapper.classList.add(\"popup-wrapper\");\n this.$container.appendChild(this.popup_wrapper);\n }\n\n private setup_options(options: any) {\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n public setup_tasks(tasks: any) {\n // prepare tasks\n this.tasks = tasks.map((task: any, i: any) => {\n //standard colors if needed\n task.color = task.color || '#7892A1';\n\n // convert to Date objects\n task._start = DateUtils.parse(task.start);\n task._end = DateUtils.parse(task.end);\n\n // make task invalid if duration too large\n if (DateUtils.diff(task._end, task._start, \"year\") > 10) {\n task.end = null;\n }\n\n // cache index\n task._index = i;\n\n if (typeof task._row_id === \"number\") {\n task._index = task._row_id;\n }\n\n // invalid dates\n if (!task.start && !task.end) {\n const today = DateUtils.today();\n task._start = today;\n task._end = DateUtils.add(today, 2, \"day\");\n }\n\n if (!task.start && task.end) {\n task._start = DateUtils.add(task._end, -2, 'day');\n }\n\n if (task.start && !task.end) {\n task._end = DateUtils.add(task._start, 2, \"day\");\n }\n\n // if hours is not set, assume the last day is full day\n // e.g: 2018-09-09 becomes 2018-09-09 23:59:59\n const task_end_values = DateUtils.getDateValues(task._end);\n if (task_end_values.slice(3).every((d) => d === 0)) {\n task._end = DateUtils.add(task._end, 24, \"hour\");\n }\n\n // invalid flag\n if (!task.start || !task.end) {\n task.invalid = true;\n }\n\n // dependencies\n if (typeof task.dependencies === \"string\" || !task.dependencies) {\n let deps = [];\n if (task.dependencies) {\n deps = task.dependencies\n .split(',')\n .map((d: any) => d.trim())\n .filter((d: any) => d);\n }\n task.dependencies = deps;\n }\n\n // uids\n if (!task.id) {\n task.id = generate_id(task);\n }\n\n return task;\n });\n\n this.setup_dependencies();\n }\n\n private setup_dependencies() {\n this.dependency_map = {};\n for (let t of this.tasks) {\n for (let d of t.dependencies) {\n this.dependency_map[d] = this.dependency_map[d] || [];\n this.dependency_map[d].push(t.id);\n }\n }\n }\n\n public refresh(tasks: Task[]) {\n this.setup_tasks(tasks);\n this.change_view_mode();\n }\n\n public change_view_mode(mode = this.options.viewMode) {\n this.update_view_scale(mode);\n this.setup_dates();\n this.render();\n // fire viewmode_change event\n this.trigger_event(\"onViewChange\", [mode]);\n }\n\n private update_view_scale(view_mode: any) {\n this.options.viewMode = view_mode;\n // this.isHourView = false;\n if (view_mode === ViewMode.Hour) {\n this.options.step = 24 / 24;\n this.options.columnWidth = 50;\n // this.isHourView = true;\n } else if (view_mode === ViewMode.Day) {\n this.options.step = 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.HalfDay) {\n this.options.step = 24 / 2;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.QuarterDay) {\n this.options.step = 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Week) {\n this.options.step = 24 * 7;\n this.options.columnWidth = 140;\n } else if (view_mode === ViewMode.Month) {\n this.options.step = 24 * 30;\n this.options.columnWidth = 120;\n } else if (view_mode === ViewMode.Year) {\n this.options.step = 24 * 365;\n this.options.columnWidth = 120;\n }\n }\n\n private setup_dates() {\n this.setup_gantt_dates();\n this.setup_date_values();\n }\n\n private setup_gantt_dates() {\n this._minDate = null;\n this._maxDate = null;\n\n for (let task of this.tasks) {\n // set global start and end date\n if (!this.minDate || task.start < this.minDate) {\n this._minDate = task.start;\n }\n if (!this.maxDate || task.end > this.maxDate) {\n this._maxDate = task.end;\n }\n }\n\n this._realMinDate = this.minDate;\n this._realMaxDate = this.maxDate;\n\n switch (this.options.viewMode) {\n case ViewMode.Hour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"hour\");\n break;\n case ViewMode.QuarterDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 12), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 12, \"hour\");\n break;\n case ViewMode.HalfDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"day\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"day\");\n break;\n case ViewMode.Day:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 3), \"day\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 3, \"day\");\n break;\n case ViewMode.Week:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"month\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"month\");\n break;\n case ViewMode.Month:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"year\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"year\");\n break;\n case ViewMode.Year:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 2), \"year\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 2, \"year\");\n break;\n }\n }\n\n private setup_date_values() {\n this.dates = [];\n let cur_date = null;\n\n while (cur_date === null || cur_date < this.maxDate) {\n if (!cur_date) {\n cur_date = DateUtils.clone(this.minDate);\n } else {\n if (this.view_is(ViewMode.Year)) {\n cur_date = DateUtils.add(cur_date, 1, \"year\");\n } else if (this.view_is(ViewMode.Month)) {\n cur_date = DateUtils.add(cur_date, 1, \"month\");\n } else {\n cur_date = DateUtils.add(\n cur_date,\n this.options.step,\n 'hour'\n );\n }\n }\n this.dates.push(cur_date);\n }\n\n console.log(\"cur_date\", cur_date);\n console.log(\"dates\", this.dates);\n }\n\n private bind_events() {\n this.bind_grid_click();\n this.bind_bar_events();\n }\n\n private render() {\n this.clear();\n this.setup_layers();\n this.make_grid();\n this.make_dates();\n this.make_bars();\n this.make_arrows();\n this.map_arrows_on_bars();\n this.set_width();\n this.set_scroll_position();\n }\n\n private setup_layers() {\n this.layers = {};\n const layers = [\"grid\", \"date\", \"arrow\", \"progress\", \"bar\", \"details\"];\n // make group layers\n for (let layer of layers) {\n this.layers[layer] = createSVG('g', {\n class: layer,\n append_to: this.$svg,\n });\n }\n }\n\n private make_grid() {\n this.make_grid_background();\n this.make_grid_rows();\n this.make_grid_header();\n this.make_grid_highlights();\n this.make_grid_ticks();\n }\n\n private make_grid_background() {\n const grid_width = this.dates.length * this.options.columnWidth;\n const distinct_rows = [...new Set(this.tasks.map((x: any) => x._row_id))];\n const grid_height = this.options.headerHeight +\n this.options.padding / 2 +\n (this.options.barHeight + this.options.padding) *\n distinct_rows.length;\n\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: grid_width,\n height: grid_height,\n class: \"grid-background\",\n append_to: this.layers.grid,\n });\n\n $.attr(this.$svg, {\n height: grid_height,\n width: \"100%\",\n }, null);\n }\n\n private make_grid_rows() {\n const rows_layer = createSVG(\"g\", { append_to: this.layers.grid });\n const lines_layer = createSVG(\"g\", { append_to: this.layers.grid });\n\n const row_width = this.dates.length * this.options.columnWidth;\n const row_height = this.options.barHeight + this.options.padding;\n //TODO: ajustar o posicionamento das linhas\n let row_y = this.options.headerHeight + this.options.padding / 2;\n\n this.tasks.forEach(_ => {\n createSVG(\"rect\", {\n x: 0,\n y: row_y,\n width: row_width,\n height: row_height,\n class: \"grid-row\",\n append_to: rows_layer,\n });\n\n createSVG(\"line\", {\n x1: 0,\n y1: row_y + row_height,\n x2: row_width,\n y2: row_y + row_height,\n class: \"row-line\",\n append_to: lines_layer,\n });\n\n row_y += this.options.barHeight + this.options.padding;\n });\n }\n\n private make_grid_header() {\n // const addIsHourView = this.isHourView ? 25 : 10\n const header_width = this.dates.length * this.options.columnWidth;\n const header_height = this.options.headerHeight + 10;\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: header_width,\n height: header_height,\n class: \"grid-header\",\n append_to: this.layers.grid,\n });\n }\n\n private make_grid_ticks() {\n let tick_x = 0;\n let tick_y = this.options.headerHeight + this.options.padding / 2;\n let tick_height =\n (this.options.barHeight + this.options.padding) *\n this.tasks.length;\n\n for (let date of this.dates) {\n let tick_class = \"tick\";\n // thick tick for monday\n if (this.view_is(ViewMode.Day) && date.getDate() === 1) {\n tick_class += \" thick\";\n }\n // thick tick for first week\n if (\n this.view_is(ViewMode.Week) &&\n date.getDate() >= 1 &&\n date.getDate() < 8\n ) {\n tick_class += \" thick\";\n }\n // thick ticks for quarters\n if (this.view_is(ViewMode.Month) && date.getMonth() % 3 === 0) {\n tick_class += \" thick\";\n }\n\n createSVG(\"path\", {\n d: `M ${tick_x} ${tick_y} v ${tick_height}`,\n class: tick_class,\n append_to: this.layers.grid,\n });\n\n if (this.view_is(ViewMode.Month)) {\n tick_x +=\n (DateUtils.getDaysInMonth(date) *\n this.options.columnWidth) /\n 30;\n } else {\n tick_x += this.options.columnWidth;\n }\n }\n }\n\n make_grid_highlights() {\n if (this.view_is(ViewMode.Day)) {\n const width = this.options.columnWidth;\n const height = (this.options.barHeight + this.options.padding) *\n this.tasks.length +\n this.options.headerHeight +\n this.options.padding / 2;\n\n let x = 0;\n\n for (let date of this.dates) {\n\n let y = (this.options.headerHeight + this.options.padding) / 2;\n\n let isToday = date.toString() == DateUtils.today();\n let isWeekend = (date.getDay() == 0 || date.getDay() == 6);\n let className;\n\n if (isToday) {\n className = \"today-highlight\";\n y = (this.options.headerHeight + this.options.padding) / 2;\n } else if (isWeekend) {\n className = \"weekend-highlight\";\n }\n\n const rx = 3;\n const ry = 3;\n\n if (isToday || isWeekend) {\n createSVG(\"rect\", {\n x,\n y,\n rx,\n ry,\n width,\n height,\n class: className,\n append_to: this.layers.grid\n });\n }\n\n x += this.options.columnWidth;\n }\n }\n }\n\n private make_dates() {\n const dates = this.get_dates_to_draw();\n const isHourView = this.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay]);\n let counter = 0;\n\n for (let i = 0; i < dates.length; i++) {\n const date = dates[i];\n\n if (isHourView && date.date >= this._realMinDate && date.date <= this._realMaxDate) {\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y,\n innerHTML: `H${counter++ * this.options.step}`,\n class: \"title-1\",\n append_to: this.layers.date,\n });\n }\n\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y + 20,\n innerHTML: date.lower_text,\n class: \"title-2\",\n append_to: this.layers.date,\n });\n\n if (date.upper_text) {\n const $upper_text = createSVG(\"text\", {\n x: date.upper_x,\n y: date.upper_y,\n innerHTML: date.upper_text,\n class: \"upper-text\",\n append_to: this.layers.date,\n });\n\n // remove out-of-bound dates\n if (\n $upper_text.getBBox().x2 > this.layers.grid.getBBox().width\n ) {\n $upper_text.remove();\n }\n }\n }\n }\n\n private get_dates_to_draw() {\n let last_date: any = null;\n const dates = this.dates.map((date: any, i: any) => {\n const d = this.get_date_info(date, last_date, i);\n last_date = date;\n return d;\n });\n return dates;\n }\n\n private get_date_info(date: Date, last_date: Date, i: any) {\n if (!last_date) {\n last_date = DateUtils.add(date, 1, \"year\");\n }\n const date_text = {\n hourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n quarterDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n halfDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n dayLower: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D\", this.options.language)\n : \"\",\n\n weekLower: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language),\n\n monthLower: DateUtils.format(date, \"MMMM\", this.options.language),\n\n yearLower: DateUtils.format(date, \"YYYY\", this.options.language),\n\n quarterDayUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n halfDayUpper: date.getDate() !== last_date.getDate()\n ? date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language)\n : \"\",\n\n dayUpper: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n weekUpper: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n monthUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n yearUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n hour: date.getHours() !== last_date.getHours()\n ? DateUtils.format(date, \"HH:mm\", this.options.language)\n : \"\",\n };\n\n // Descontando 20 para adcionar uma segunda linha de informação no cabeçalho\n const base_pos = {\n x: i * this.options.columnWidth,\n lower_y: this.options.headerHeight - 20,\n upper_y: this.options.headerHeight - 20 - 25,\n };\n\n const x_pos = {\n hourLower: this.options.columnWidth / 2,\n hourUpper: this.options.columnWidth * 24 / 2,\n quarterDayLower: this.options.columnWidth / 2,\n quarterDayUpper: this.options.columnWidth * 4 / 2,\n halfDayLower: this.options.columnWidth / 2,\n halfDayUpper: this.options.columnWidth * 2 / 2,\n dayLower: this.options.columnWidth / 2,\n dayUpper: (this.options.columnWidth * 30) / 2,\n weekLower: 0,\n weekUpper: (this.options.columnWidth * 4) / 2,\n monthLower: this.options.columnWidth / 2,\n monthUpper: (this.options.columnWidth * 12) / 2,\n yearLower: this.options.columnWidth / 2,\n yearUpper: (this.options.columnWidth * 30) / 2,\n };\n\n return {\n upper_text: date_text[`${this.options.viewMode}Upper`],\n lower_text: date_text[`${this.options.viewMode}Lower`],\n upper_x: base_pos.x + x_pos[`${this.options.viewMode}Upper`],\n upper_y: base_pos.upper_y,\n lower_x: base_pos.x + x_pos[`${this.options.viewMode}Lower`],\n lower_y: base_pos.lower_y,\n date,\n };\n }\n\n private make_bars() {\n this.bars = this.tasks.map((task: any) => {\n const bar = new Bar(this, task);\n this.layers.bar.appendChild(bar.group);\n return bar;\n });\n }\n\n private make_arrows() {\n this.arrows = [];\n for (let task of this.tasks) {\n let arrows = [];\n arrows = task.dependencies\n .map((task_id: any) => {\n const dependency = this.get_task(task_id);\n if (!dependency) return;\n const arrow = new Arrow(\n this,\n this.bars[dependency._index], // from_task\n this.bars[task._index] // to_task\n );\n this.layers.arrow.appendChild(arrow.element);\n return arrow;\n })\n .filter(Boolean); // filter falsy values\n this.arrows = this.arrows.concat(arrows);\n }\n }\n\n private map_arrows_on_bars() {\n for (let bar of this.bars) {\n bar.arrows = this.arrows.filter((arrow: Arrow) => {\n return (\n arrow.fromTask.task.id === bar.task.id ||\n arrow.toTask.task.id === bar.task.id\n );\n });\n }\n }\n\n private set_width() {\n const cur_width = this.$svg.getBoundingClientRect().width;\n const actual_width = this.$svg\n .querySelector(\".grid .grid-row\")\n .getAttribute(\"width\");\n if (cur_width < actual_width) {\n this.$svg.setAttribute(\"width\", actual_width);\n }\n }\n\n private set_scroll_position() {\n const parent_element = this.$svg.parentElement;\n if (!parent_element) return;\n\n const hours_before_first_task = DateUtils.diff(\n this.get_oldest_starting_date(),\n this.minDate,\n \"hour\"\n );\n\n const scroll_pos =\n (hours_before_first_task / this.options.step) *\n this.options.columnWidth -\n this.options.columnWidth;\n\n parent_element.scrollLeft = scroll_pos;\n }\n\n private bind_grid_click() {\n $.on(\n this.$svg,\n this.options.popupTrigger,\n \".grid-row, .grid-header\",\n () => {\n this.unselect_all();\n this.hide_popup();\n }\n );\n }\n\n private bind_bar_events() {\n let is_dragging = false;\n let x_on_start = 0;\n let is_resizing_left = false;\n let is_resizing_right = false;\n let parent_bar_id: any = null;\n let bars: Bar[] = [];\n this.bar_being_dragged = null;\n\n function action_in_progress() {\n return is_dragging || is_resizing_left || is_resizing_right;\n }\n\n $.on(this.$svg, \"mousedown\", \".bar-wrapper, .handle\", (e: any, element: any) => {\n const bar_wrapper = $.closest(\".bar-wrapper\", element);\n\n if (element.classList.contains(\"left\")) {\n is_resizing_left = true;\n } else if (element.classList.contains(\"right\")) {\n is_resizing_right = true;\n } else if (element.classList.contains(\"bar-wrapper\")) {\n is_dragging = true;\n }\n\n bar_wrapper.classList.add(\"active\");\n\n x_on_start = e.offsetX;\n\n parent_bar_id = bar_wrapper.getAttribute(\"data-id\");\n const ids = [\n parent_bar_id,\n ...this.get_all_dependent_tasks(parent_bar_id),\n ];\n bars = ids.map((id) => this.get_bar(id));\n\n this.bar_being_dragged = parent_bar_id;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.ox = $bar.getX();\n $bar.oy = $bar.getY();\n $bar.owidth = $bar.getWidth();\n $bar.finaldx = 0;\n });\n });\n\n $.on(this.$svg, \"mousemove\", (e: any) => {\n if (!action_in_progress()) {\n return;\n }\n\n const dx = e.offsetX - x_on_start;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.finaldx = this.get_snap_position(dx);\n this.hide_popup();\n if (is_resizing_left) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n width: $bar.owidth - $bar.finaldx,\n });\n } else {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n });\n }\n } else if (is_resizing_right) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n width: $bar.owidth + $bar.finaldx,\n });\n }\n } else if (is_dragging) {\n bar.updateBarPosition({ x: $bar.ox + $bar.finaldx });\n }\n });\n }, null);\n\n document.addEventListener(\"mouseup\", (e: any) => {\n if (is_dragging || is_resizing_left || is_resizing_right) {\n bars.forEach((bar) => bar.group.classList.remove(\"active\"));\n }\n\n is_dragging = false;\n is_resizing_left = false;\n is_resizing_right = false;\n });\n\n $.on(this.$svg, \"mouseup\", (e: any) => {\n this.bar_being_dragged = null;\n bars.forEach((bar) => {\n const $bar = bar.element;\n if (!$bar.finaldx) return;\n bar.dateChanged();\n bar.setActionCompleted();\n });\n }, null);\n }\n\n private get_all_dependent_tasks(task_id: any) {\n let out: any[] = [];\n let to_process = [task_id];\n while (to_process.length) {\n const deps = to_process.reduce((acc, curr) => {\n acc = acc.concat(this.dependency_map[curr]);\n return acc;\n }, []);\n\n out = out.concat(deps);\n to_process = deps.filter((d: any) => !to_process.includes(d));\n }\n\n return out.filter(Boolean);\n }\n\n private get_snap_position(dx: any) {\n let odx = dx,\n rem,\n position;\n\n if (this.view_is(ViewMode.Hour)) {\n rem = dx % (this.options.columnWidth / 6);\n position = odx - rem + (rem < this.options.columnWidth / 12 ? 0 : this.options.columnWidth / 6);\n } else if (this.view_is(ViewMode.Week)) {\n rem = dx % (this.options.columnWidth / 7);\n position = odx - rem + (rem < this.options.columnWidth / 14 ? 0 : this.options.columnWidth / 7);\n } else if (this.view_is(ViewMode.Month)) {\n rem = dx % (this.options.columnWidth / 30);\n position = odx - rem + (rem < this.options.columnWidth / 60 ? 0 : this.options.columnWidth / 30);\n } else {\n rem = dx % this.options.columnWidth;\n position = odx - rem + (rem < this.options.columnWidth / 2 ? 0 : this.options.columnWidth);\n }\n return position;\n }\n\n public unselect_all() {\n [...this.$svg.querySelectorAll(\".bar-wrapper\")].forEach((el) => {\n el.classList.remove(\"active\");\n });\n }\n\n public view_is(modes: ViewMode | ViewMode[]) {\n if (Array.isArray(modes)) {\n return modes.some((mode) => this.options.viewMode === mode);\n }\n\n return this.options.viewMode === modes;\n }\n\n private get_task(id: any) {\n return this.tasks.find((task: any) => {\n return task.id === id;\n });\n }\n\n public get_bar(id: any): Bar {\n return this.bars.find((bar: any) => {\n return bar.task.id === id;\n });\n }\n\n public show_popup(options: any) {\n if (!this.popup) {\n this.popup = new Popup(\n this.popup_wrapper,\n this.options.customPopupHtml\n );\n }\n this.popup.show(options);\n }\n\n private hide_popup() {\n this.popup && this.popup.hide();\n }\n\n public trigger_event(event: string, args: any) {\n if (this.options[event]) {\n this.options[event].apply(null, args);\n }\n }\n\n private get_oldest_starting_date() {\n return this.tasks\n .map((task: any) => task._start)\n .reduce((prev_date: any, cur_date: any) =>\n cur_date <= prev_date ? cur_date : prev_date\n );\n }\n\n private clear() {\n this.$svg.innerHTML = '';\n }\n}\n\nfunction generate_id(task: any) {\n return task.name + \"_\" + Math.random().toString(36).slice(2, 12);\n}\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, Output, ViewEncapsulation, EventEmitter, SimpleChanges } from \"@angular/core\";\n\nimport { Gantt } from \"./components/gantt/gantt\";\nimport { TaskGroup, Task, EnrichedTask } from \"./models/task\"\nimport { ViewMode } from \"./models/view-mode\";\n\n@Component({\n selector: \"s-gantt\",\n templateUrl: \"./gantt.component.html\",\n styleUrls: [\n \"./gantt.component.scss\",\n \"./components/gantt/gantt.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GanttComponent implements AfterViewInit, OnChanges, OnInit {\n @Input()\n public columnTitle: string;\n\n @Input()\n public multipleTaskPerLine = false;\n\n @Input()\n public showSideTable = true;\n\n @Input()\n public viewMode = ViewMode.Day;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public marginBeforeStart?: number;\n\n @Input()\n public marginAfterEnd?: number;\n\n @Output()\n public taskClicked: EventEmitter<Task> = new EventEmitter();\n\n @Output()\n public taskDateChanged: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public viewChanged: EventEmitter<ViewMode> = new EventEmitter();\n\n private _gantt: Gantt;\n\n public ngOnInit(): void {\n this._validateViewMode();\n }\n\n public ngAfterViewInit(): void {\n this._gantt = new Gantt(\"#gantt\", this._filterTask(this.tasks), {\n viewMode: this.viewMode,\n marginBeforeStart: this.marginBeforeStart,\n marginAfterEnd: this.marginAfterEnd,\n language: \"pt-BR\",\n onClick: (task: Task) => this.taskClicked.emit(task),\n onDateChange: (task: Task, start: any, end: any) => this.taskDateChanged.emit({ task, start, end }),\n onViewChange: (viewMode: ViewMode) => this.viewChanged.emit(viewMode),\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this._gantt) {\n return;\n }\n \n if (changes.viewMode) {\n this._gantt.options.viewMode = changes.viewMode.currentValue;\n this._gantt.change_view_mode();\n }\n\n if (changes.tasks) {\n this._gantt.refresh(this._filterTask(changes.tasks.currentValue));\n }\n }\n\n private _filterTask(tasksGroups: TaskGroup[]): Task[] {\n const tasks: Task[] = [];\n\n if (this.multipleTaskPerLine) {\n tasksGroups.forEach((group: any, index: number) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: index };\n }));\n }, []);\n } else {\n let i = 0;\n tasksGroups.forEach((group: any) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: i++ };\n }));\n }, []);\n }\n\n return tasks;\n }\n\n private _validateViewMode(): void {\n if (![\n ViewMode.Hour,\n ViewMode.QuarterDay,\n ViewMode.HalfDay,\n ViewMode.Day,\n ViewMode.Week,\n ViewMode.Month,\n ViewMode.Year,\n ].includes(this.viewMode)) {\n throw new Error(\"Invalid gantt view mode\");\n }\n }\n}","import { Component, Input } from '@angular/core';\nimport { TaskGroup } from '../../models/task';\n\n@Component({\n selector: 'gantt-side-table',\n templateUrl: './side-table.component.html',\n styleUrls: ['./side-table.component.scss']\n})\nexport class SideTableComponent {\n public ROW_HEIGHT = 44;\n\n @Input()\n public columnTitle: string;\n\n @Input()\n public tasks : TaskGroup[];\n\n @Input()\n public multipleTaskPerLine = false;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GanttComponent } from \"./gantt.component\";\nimport { SideTableComponent } from \"./components/side-table/side-table.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n GanttComponent,\n SideTableComponent,\n ],\n exports: [GanttComponent],\n})\nexport class GanttModule { }","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-footer\",\n template: `<ng-content></ng-content>`,\n})\nexport class FooterComponent {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { HeaderComponent } from \"./header.component\";\nimport { FooterComponent } from \"./footer.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n ContentChild,\n} from \"@angular/core\";\nimport Cropper from \"cropperjs\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { FooterComponent } from \"../structure/footer.component\";\n\n@Component({\n selector: \"s-image-cropper\",\n templateUrl: \"./image-cropper.component.html\",\n styleUrls: [\"../../../../node_modules/cropperjs/dist/cropper.min.css\", \"./image-cropper.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ImageCropperComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public id = `s-image-cropper-${ImageCropperComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header = \"Recortar imagem\";\n\n @Input()\n public cropLabel = \"Recortar\";\n\n @Input()\n public selectAnotherLabel = \"Trocar\";\n\n @Input()\n public removeLabel = \"Remover\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public emptyStateTitle = \"Selecione uma foto, em seguida você poderá ajustá-la\";\n\n @Input()\n public emptyStateActionLabel = \"Escolher imagem\";\n\n @Input()\n public emptyStateIconClass = \"fa fa-picture-o\";\n\n @Input()\n public aspectRatio = NaN;\n\n @Input()\n public rounded = false;\n\n @Input()\n public allowSelectAnother = true;\n\n @Input()\n public allowRemove = true;\n\n @Input()\n public allowCancel = true;\n\n @Input()\n public imageSource?: string;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @Output()\n public changeImage = new EventEmitter();\n\n @Output()\n public croppedImage = new EventEmitter<string>();\n\n @Output()\n public croppedCanvas = new EventEmitter<HTMLCanvasElement>();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public cancel = new EventEmitter();\n\n @ViewChild(\"image\", { static: true })\n public image: ElementRef;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n public cropper: Cropper;\n\n public ngOnInit() {\n if (this.imageSource) this.initCropper();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.imageSource && changes.imageSource.currentValue) {\n this.initCropper();\n }\n }\n\n private initCropper() {\n if (this.cropper) this.cropper.destroy();\n this.image.nativeElement.src = this.imageSource;\n this.cropper = new Cropper(this.image.nativeElement, {\n aspectRatio: this.rounded ? 1 : this.aspectRatio,\n guides: false,\n dragMode: \"move\" as Cropper.DragMode,\n minCropBoxHeight: 2,\n minCropBoxWidth: 2,\n toggleDragModeOnDblclick: false,\n });\n }\n\n public getRoundedCanvas(sourceCanvas: HTMLCanvasElement) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const width = sourceCanvas.width;\n const height = sourceCanvas.height;\n canvas.width = width;\n canvas.height = height;\n context.imageSmoothingEnabled = true;\n context.drawImage(sourceCanvas, 0, 0, width, height);\n context.globalCompositeOperation = \"destination-in\";\n context.beginPath();\n context.arc(width / 2, height / 2, Math.min(width, height) / 2, 0, 2 * Math.PI, true);\n context.fill();\n return canvas;\n }\n\n public onCropImage() {\n if (!this.imageSource) {\n this.croppedImage.emit();\n this.croppedCanvas.emit();\n } else {\n const _croppedCanvas = this.rounded\n ? this.getRoundedCanvas(this.cropper.getCroppedCanvas())\n : this.cropper.getCroppedCanvas();\n\n this.croppedCanvas.emit(_croppedCanvas);\n this.croppedImage.emit(_croppedCanvas.toDataURL());\n }\n\n this.visibleChange.emit(false);\n }\n\n public onChangeImage() {\n this.changeImage.emit();\n }\n\n public onRemoveImage() {\n this.imageSource = undefined;\n this.removedImage.emit();\n }\n\n public onCancel() {\n this.visibleChange.emit(false);\n this.cancel.emit();\n }\n\n public onModalVisibleChange(visible: boolean) {\n if (!visible) this.onCancel();\n this.visibleChange.emit(visible);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { DialogModule } from \"primeng/dialog\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, DialogModule, ButtonModule, EmptyStateModule, StructureModule],\n declarations: [ImageCropperComponent],\n exports: [ImageCropperComponent, StructureModule],\n entryComponents: [ImageCropperComponent],\n})\nexport class ImageCropperModule {}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef } from \"@angular/core\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, delay } from \"rxjs/operators\";\n\n@Injectable()\nexport class ImageCropperService {\n public activeCropper: ActiveCropper;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n public show(config?: ImageCropperConfig) {\n if (this.activeCropper) this.destroy(this.activeCropper);\n\n const activeCropper = {\n componentRef: this.componentFactoryResolver.resolveComponentFactory(ImageCropperComponent).create(this.injector),\n ngUnsubscribe: new Subject(),\n };\n\n this.activeCropper = activeCropper;\n\n this.appRef.attachView(activeCropper.componentRef.hostView);\n const domElem = (activeCropper.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n this.configureInstance(activeCropper, config);\n activeCropper.componentRef.instance.visible = true;\n\n activeCropper.componentRef.instance.visibleChange\n .pipe(\n takeUntil(this.activeCropper.ngUnsubscribe),\n delay(1000)\n )\n .subscribe(visible => {\n if (!visible) this.destroy(activeCropper);\n });\n }\n\n private configureInstance(activeCropper: ActiveCropper, config?: ImageCropperConfig) {\n const instance = activeCropper.componentRef.instance;\n\n if (config) {\n Object.keys(config).forEach(key => {\n const value = config[key];\n if (typeof value !== \"function\") instance[key] = value;\n else if (typeof value === \"function\") {\n instance[key].pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe((...param: any[]) => config[key](...param));\n }\n });\n }\n\n instance.visibleChange.pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe(visible => (instance.visible = visible));\n }\n\n private destroy(activeCropper: ActiveCropper) {\n activeCropper.ngUnsubscribe.next();\n activeCropper.ngUnsubscribe.complete();\n\n this.appRef.detachView(activeCropper.componentRef.hostView);\n activeCropper.componentRef.destroy();\n }\n}\n\nexport interface ActiveCropper {\n componentRef?: ComponentRef<ImageCropperComponent>;\n ngUnsubscribe?: Subject<any>;\n}\n\nexport interface ImageCropperConfig {\n id?: any;\n header?: string;\n cropLabel?: string;\n selectAnotherLabel?: string;\n removeLabel?: string;\n cancelLabel?: string;\n emptyStateTitle?: string;\n emptyStateActionLabel?: string;\n emptyStateIconClass?: string;\n aspectRatio?: number;\n rounded?: boolean;\n allowSelectAnother?: boolean;\n allowRemove?: boolean;\n allowCancel?: boolean;\n imageSource?: string;\n\n cancel?: () => any;\n changeImage?: () => any;\n removedImage?: () => any;\n croppedImage?: (imageSource: string) => any;\n croppedCanvas?: (imageSource: HTMLCanvasElement) => any;\n}\n","export enum ThumbnailSize {\n Small = \"small\",\n Medium = \"medium\",\n Large = \"large\",\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ThumbnailService {\n public getBinaryFile(img: HTMLImageElement) {\n return new Promise(resolve => {\n const getOrientation = this.getOrientation.bind(this);\n\n let http = new XMLHttpRequest();\n http.addEventListener(\"load\", () => {\n if (http.readyState === 4 && (http.status == 200 || http.status === 0)) {\n const orientation = getOrientation(http.response);\n http = null;\n resolve(orientation);\n }\n });\n\n http.addEventListener(\"error\", () => {\n http = null;\n throw new Error(\"Não foi possível carregar a imagem\");\n });\n\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n });\n }\n\n /**\n * Retorna a tag da orientação EXIF {-1} Não definido, {-2} Não é formato JPEG, {1, 2, 3, 4, 5, 6, 7, 8} valores da orientação.\n */\n private getOrientation(file: ArrayBuffer): number {\n const view = new DataView(file);\n\n if (view.getUint16(0, false) != 0xffd8) return -2; // not jpeg\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker == 0xffe1) {\n if (view.getUint32((offset += 2), false) != 0x45786966) {\n return -1; // not defined\n }\n const little = view.getUint16((offset += 6), false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let i = 0; i < tags; i++)\n if (view.getUint16(offset + i * 12, little) == 0x0112) return view.getUint16(offset + i * 12 + 8, little);\n // tslint:disable-next-line: no-bitwise\n } else if ((marker & 0xff00) != 0xff00) break;\n else offset += view.getUint16(offset, false);\n }\n return -1; // not defined\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n} from \"@angular/core\";\n\nimport { from, Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { ThumbnailSize } from \"./thumbnail-size\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@Component({\n selector: \"s-thumbnail\",\n templateUrl: \"./thumbnail.component.html\",\n styleUrls: [\"./thumbnail.component.scss\"],\n})\nexport class ThumbnailComponent implements AfterViewInit, OnDestroy {\n public static nextId = 0;\n public fallback = false;\n public orientation: number;\n\n @ViewChild(\"img\", { static: false })\n public imgEl: ElementRef;\n\n @Input()\n public id = `s-thumbnail-${ThumbnailComponent.nextId++}`;\n\n @Input()\n public size: ThumbnailSize = ThumbnailSize.Medium;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public iconClass = \"far fa-image\";\n\n @Input()\n public hasAction = false;\n\n @Input()\n public actionIconClass = \"fas fa-camera\";\n\n @Input()\n public isTile = false;\n\n @Input()\n public isBrand = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private thumbnailService: ThumbnailService) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit(): void {\n if (this.imgEl) {\n this.imgEl.nativeElement.addEventListener(\"load\", () => {\n from(this.thumbnailService.getBinaryFile(this.imgEl.nativeElement))\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((orientation: number) => (this.orientation = orientation));\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"./thumbnail.component\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThumbnailComponent],\n exports: [ThumbnailComponent],\n providers: [ThumbnailService],\n})\nexport class ThumbnailModule {}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\n\n@Component({\n selector: \"s-object-card-field\",\n templateUrl: \"./object-card-field.component.html\",\n styleUrls: [\"./object-card-field.component.scss\"],\n})\nexport class ObjectCardFieldComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n}\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailSize } from \"../../../thumbnail/thumbnail-size\";\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { Breakpoints } from \"../../../utils\";\n\n@Component({\n selector: \"s-object-card-main\",\n templateUrl: \"./object-card-main.component.html\",\n styleUrls: [\"./object-card-main.component.scss\"],\n})\nexport class ObjectCardMainComponent implements AfterContentInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-main-${ObjectCardMainComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass = \"fa fa-picture-o\";\n\n @Input()\n public hasThumbnail = true;\n\n @Input()\n public hasDescription = true;\n\n @Input()\n public isBrand = false;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n private _thumbnailSize = ThumbnailSize.Medium;\n\n public set thumbnailSize(value: ThumbnailSize) {\n this._thumbnailSize = value;\n if (this.thumbnailComponent) this.thumbnailComponent.size = value;\n }\n\n public get thumbnailSize() {\n return this._thumbnailSize;\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n public update() {\n const windowWidth = window.innerWidth;\n\n if (windowWidth <= Breakpoints.SM_MAX) this.thumbnailSize = ThumbnailSize.Small;\n else this.thumbnailSize = ThumbnailSize.Medium;\n }\n}\n","export enum EnumSeverity {\n Default = \"Default\",\n Info = \"Info\",\n Warn = \"Warn\",\n Error = \"Error\",\n Success = \"Success\",\n}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from \"@angular/core\";\nimport * as elementResizeDetectorMaker_ from \"element-resize-detector\";\n\nimport { Breakpoints } from \"../utils/breakpoints\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\nconst elementResizeDetectorMaker = elementResizeDetectorMaker_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-object-card\",\n templateUrl: \"./object-card.component.html\",\n styleUrls: [\"./object-card.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class ObjectCardComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-${ObjectCardComponent.nextId++}`;\n\n @Input()\n public expanded = false;\n\n @Input()\n public expandTooltip = \"Abrir painel\";\n\n @Input()\n public collapseTooltip = \"Fechar painel\";\n\n @Input()\n public fieldsMinWidth = 200;\n\n @Output()\n public expandedChange = new EventEmitter<boolean>();\n\n @ContentChild(ObjectCardMainComponent, { static: true })\n public main: ObjectCardMainComponent;\n\n @ContentChildren(ObjectCardFieldComponent, { descendants: true })\n public fields?: QueryList<ObjectCardFieldComponent>;\n\n public maxVisibleFields = 0;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef) {}\n\n public ngAfterViewInit() {\n this.update();\n this.cdr.detectChanges();\n this.fields.changes.subscribe(() => {\n this.update();\n });\n\n const erd = elementResizeDetectorMaker({\n strategy: \"scroll\",\n });\n\n erd.listenTo(this.elementRef.nativeElement, () => this.update());\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n const mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;\n const fieldsMinWidth = this.fieldsMinWidth;\n const expandIconWidth = 50;\n const fieldElementList = this.elementRef.nativeElement.getElementsByClassName(\"s-object-card-field\");\n for (const element of fieldElementList) {\n element.style.minWidth = `${this.fieldsMinWidth}px`;\n }\n\n let maxFieldQtd;\n\n if (windowWidth <= Breakpoints.SM_MAX) maxFieldQtd = 0;\n else maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);\n\n if (maxFieldQtd && maxFieldQtd < this.fields.length) {\n maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);\n }\n\n this.maxVisibleFields = maxFieldQtd;\n\n if (maxFieldQtd >= this.fields.length && this.expanded) this.collapse();\n }\n\n public toggle() {\n this.expanded ? this.collapse() : this.expand();\n }\n\n public expand() {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n }\n\n public collapse() {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n }\n\n public getExpandedFieldWidth() {\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n\n let fieldsPerRow;\n if (containerWidth <= Breakpoints.SM_MAX) fieldsPerRow = 1;\n else if (containerWidth <= Breakpoints.MD_MAX) fieldsPerRow = 2;\n else if (containerWidth <= Breakpoints.LG_MAX) fieldsPerRow = 4;\n else fieldsPerRow = 6;\n\n return 12 / fieldsPerRow;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../models/border-button-options\";\nimport { EnumSeverity } from \"../models/enum-severity\";\nimport { TooltipPosition } from \"../../tooltip/models/tooltip-position\";\n\n@Component({\n selector: \"s-border-button\",\n templateUrl: \"./border-button.component.html\",\n styleUrls: [\"./border-button.component.scss\"],\n})\nexport class BorderButtonComponent {\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n options: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n readonly TooltipPosition = TooltipPosition;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../../tooltip/tooltip.module\";\nimport { BorderButtonComponent } from \"./border-button.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ObjectCardComponent } from \"./object-card.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule, ButtonModule, BorderButtonModule],\n declarations: [ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n})\nexport class ObjectCardModule {}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-product-header\",\n templateUrl: \"./product-header.component.html\",\n styleUrls: [\"./product-header.component.scss\"],\n})\nexport class ProductHeaderComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-product-header-${ProductHeaderComponent.nextId++}`;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public isHeaderFrame = true;\n\n @ViewChild(\"headerContainer\", { static: false })\n public container: ElementRef;\n\n public ngAfterViewInit() {\n this.container.nativeElement.style.zIndex = String(this.baseZIndex + ++DomHandler.zindex);\n if (this.isHeaderFrame) {\n this.container.nativeElement.style.borderBottom = \"1px solid $default-secondary-color\";\n } else {\n this.container.nativeElement.style.borderTop = \"1px solid $default-secondary-color\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ProductHeaderComponent } from \"./product-header.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule],\n declarations: [ProductHeaderComponent],\n exports: [ProductHeaderComponent, ThumbnailModule],\n})\nexport class ProductHeaderModule {}\n","import { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport { Component, ContentChild, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { Sidebar } from \"primeng/sidebar\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SidebarComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-sidebar-${SidebarComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public largeSized = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @ViewChild(Sidebar, { static: true })\n public innerSidebar: Sidebar;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n constructor(private focusTrapFactory: FocusTrapFactory) {}\n\n public onShow() {\n DomHandler.addClass(document.body, \"ui-overflow-hidden-sidebar\");\n const focusTrap = this.focusTrapFactory.create(this.innerSidebar.containerViewChild.nativeElement, false);\n focusTrap.focusInitialElementWhenReady();\n }\n\n public onHide() {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n }\n\n public close(event: Event) {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n this.visibleChange.emit(false);\n event.preventDefault();\n }\n}\n","import { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ScrollPanelModule } from \"primeng/scrollpanel\";\nimport { SidebarModule as PrimeSidebar } from \"primeng/sidebar\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { SidebarComponent } from \"./sidebar.component\";\n\n@NgModule({\n imports: [CommonModule, A11yModule, PrimeSidebar, ScrollPanelModule, StructureModule],\n declarations: [SidebarComponent],\n exports: [StructureModule, SidebarComponent],\n})\nexport class SidebarModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n AfterViewChecked,\n Output,\n ViewChild,\n} from \"@angular/core\";\n\nconst SMALL_DEVICE_BREAKPOINT = 420;\n\n@Component({\n selector: \"s-slide-panel\",\n templateUrl: \"./slide-panel.component.html\",\n styleUrls: [\"./slide-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [\n style({ width: \"0\" }),\n animate(\"200ms linear\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [\n style({ width: \"*\" }),\n animate(\"200ms linear\", style({ width: \"0\" })),\n ]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ width: \"*\", padding: '0 16px' })),\n state(\"false\", style({ width: '0px', padding: '0' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class SlidePanelComponent implements OnInit, AfterViewChecked {\n @Input()\n public openIcon = \"fas fa-chevron-right\";\n\n @Input()\n public closeIcon = \"fas fa-chevron-left\";\n\n @Input()\n public cache = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n @ViewChild(\"mainContainer\")\n public mainContainer: ElementRef;\n\n @ViewChild(\"sideContent\")\n public sideContent: ElementRef;\n\n public slideHeight = 0;\n\n public isOpen = false;\n public isSlideOver = false;\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._checkOverBehavior();\n }\n\n public ngOnInit(): void {\n this._checkOverBehavior();\n }\n\n public ngAfterViewChecked() {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this._calculateSlideHeight();\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onClickButton() {\n if (this.isAnimating) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n }\n\n private _checkOverBehavior() {\n this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;\n }\n\n private _calculateSlideHeight() {\n this.slideHeight = this.sideContent.nativeElement.clientHeight;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { SlidePanelComponent } from \"./slide-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n ],\n declarations: [SlidePanelComponent],\n exports: [SlidePanelComponent],\n})\nexport class SlidePanelModule { }","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from \"@angular/core\";\nimport { BigNumber } from \"bignumber.js\";\n\n@Component({\n selector: \"s-stats-card\",\n templateUrl: \"./stats-card.component.html\",\n styleUrls: [\"./stats-card.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public alwaysWithBorder = false;\n\n @Input()\n public lightVersion = false;\n\n @Input()\n public lightMode = true;\n\n @Input()\n public iconClass = \"fa fa-bar-chart\";\n\n @Input()\n public color = \"#339966\";\n\n @Input()\n public animateNumbers = true;\n\n @Input()\n public clickable = false;\n\n @Input()\n public set value(value: string) {\n this.previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this.updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n @Input()\n public tooltip = \"\";\n\n public get value() {\n return this._value;\n }\n\n @Output()\n public onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n public displayValue: string;\n\n private ANIMATION_DURATION_MS = 200;\n private STEP_DURATION_MS = 20;\n private previousValue = \"0\";\n private intervalId: any;\n private _value = \"0\";\n\n private updateDisplayValue() {\n const animationDuration = new BigNumber(this.ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this.STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this.previousValue.replace(/\\D/g, \"\"));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, \"\"));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this.intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this.intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this.intervalId);\n }\n }, this.STEP_DURATION_MS);\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, \"\");\n const newValueString = newValue ? newValue.toString() : \"\";\n const formattedNewValue = newValueString\n .toString()\n .replace(/\\D/g, \"\")\n .padStart(rawValue.length, \"0\");\n let newValueIndex = 0;\n\n return value\n .split(\"\")\n .map(char => {\n const number = Number(char);\n if (number || char === \"0\") return formattedNewValue[newValueIndex++];\n return char;\n })\n .join(\"\");\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StatsCardComponent } from \"./stats-card.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [\n StatsCardComponent,\n ],\n exports: [\n StatsCardComponent,\n ],\n})\nexport class StatsCardModule { }\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport enum StepState {\n Default = \"default\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport interface Step {\n id: any;\n label: string;\n ariaLabel?: string;\n ariaControls?: string;\n /**\n * @deprecated\n * @todo remover propriedade deprecada\n */\n description?: string;\n state?: StepState;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n}\n\nexport interface StepSelectionEvent {\n step: Step;\n index: number;\n event: any;\n}\n\n@Component({\n selector: \"s-steps\",\n templateUrl: \"./steps.component.html\",\n styleUrls: [\"./steps.component.scss\"],\n host: {\n \"aria-orientation\": \"horizontal\",\n role: \"tablist\",\n \"tab-index\": \"0\",\n },\n animations: [\n trigger(\"beforeActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 100ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 250ms linear\")]),\n ]),\n trigger(\"activeDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"100ms 150ms linear\")]),\n transition(\"desactive => active\", [animate(\"100ms 150ms linear\")]),\n ]),\n trigger(\"afterActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 250ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 100ms linear\")]),\n ]),\n ],\n})\nexport class StepsComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-steps-${StepsComponent.nextId++}`;\n @Input()\n public steps: Step[];\n @Input()\n public activeIndex = 0;\n\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index == this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public get stepState() {\n return StepState;\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n\n get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StepsComponent } from \"./steps.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import { Component, HostListener, Input, OnInit } from \"@angular/core\";\n\nimport { TimelineItem } from \"./models/timeline-item\";\n\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\nconst MIN_ITEM_SIZE = 200;\n\n@Component({\n selector: \"s-timeline\",\n templateUrl: \"./timeline.component.html\",\n})\nexport class TimelineComponent implements OnInit {\n private _innerWidth: number;\n private _items: TimelineItem[];\n\n public get items(): TimelineItem[] {\n return this._items;\n }\n\n @Input()\n public set items(items: TimelineItem[]) {\n this._items = items;\n this.checkDuplicateIds();\n }\n\n @Input()\n public activeIndex: number;\n\n @Input()\n public direction: typeof HORIZONTAL | typeof VERTICAL = HORIZONTAL;\n\n @Input()\n public collapsable = true;\n\n @Input()\n public counterLabel = \"items\";\n\n public ngOnInit(): void {\n this._innerWidth = window.innerWidth;\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n public onResize(_: any): void {\n this._innerWidth = window.innerWidth;\n }\n\n public changeToVertical(): boolean {\n return this.direction === VERTICAL || this._innerWidth / this.items.length < MIN_ITEM_SIZE;\n }\n\n public checkDuplicateIds(): void {\n const ids = this.items.map(item => {\n return item.id;\n });\n\n if ((new Set(ids)).size !== ids.length) {\n throw new Error(\"A duplicate id was found in the items list\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models\";\n\n@Component({\n selector: \"s-timeline-icon-item\",\n templateUrl: \"./timeline-icon-item.component.html\",\n styleUrls: [\"./timeline-icon-item.component.scss\"],\n})\nexport class TimelineIconItemComponent {\n @Input()\n public item: TimelineItem;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public isComplete: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineIconItemComponent } from \"./timeline-icon-item.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [TimelineIconItemComponent],\n exports: [TimelineIconItemComponent],\n})\nexport class TimelineItemModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-horizontal-timeline\",\n templateUrl: \"./horizontal-timeline.component.html\",\n styleUrls: [\"./horizontal-timeline.component.scss\"],\n})\nexport class HorizontalTimelineComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public activeIndex = 0;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineComponent } from \"./horizontal-timeline.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TimelineItemModule,\n ],\n declarations: [HorizontalTimelineComponent],\n exports: [HorizontalTimelineComponent],\n})\nexport class HorizontalTimelineModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-timeline\",\n templateUrl: \"./vertical-timeline.component.html\",\n styleUrls: [\"./vertical-timeline.component.scss\"],\n})\nexport class VerticalTimelineComponent {\n public static nextId = 0;\n private _activeIndex: number;\n public isG1Collapsed = true;\n public isG2Collapsed = true;\n\n public firstItem: TimelineItem[];\n public g1Items: TimelineItem[];\n public activeItem: TimelineItem[];\n public g2Items: TimelineItem[];\n public lastItem: TimelineItem[];\n\n @Input()\n public set activeIndex(index: number) {\n this._activeIndex = index;\n this.groupItems();\n }\n\n public get activeIndex() {\n return this._activeIndex;\n }\n\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public counterLabel: string;\n\n @Input()\n public collapsable: boolean;\n\n public onChangeG1(event: boolean) {\n this.isG1Collapsed = event;\n }\n\n public onChangeG2(event: boolean) {\n this.isG2Collapsed = event;\n }\n\n public groupItems() {\n this.firstItem = this.activeIndex === 0 ? [] : [this.items[0]];\n this.g1Items = this.items.slice(1, this.activeIndex);\n this.activeItem = [this.items[this.activeIndex]];\n this.g2Items = this.items.slice(this.activeIndex + 1, this.items.length - 1);\n this.lastItem = this.activeIndex === this.items.length - 1 ? [] : [this.items[this.items.length - 1]];\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-range-line\",\n templateUrl: \"./range-line.component.html\",\n styleUrls: [\"./range-line.component.scss\"],\n})\nexport class RangeLineComponent { }\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-option\",\n templateUrl: \"./collapse-option.component.html\",\n styleUrls: [\"./collapse-option.component.scss\"],\n})\nexport class CollapseOptionComponent {\n @Input()\n public isCollapsed = false;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public onClick(): void {\n this.change.emit(!this.isCollapsed);\n }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-collapsed-items\",\n templateUrl: \"./collapsed-items.component.html\",\n styleUrls: [\"./collapsed-items.component.scss\"],\n})\nexport class CollapsedItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isCollapsed: boolean;\n\n @Input()\n public isCompleted: boolean;\n\n @Input()\n public counterLabel: string;\n\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n public onChange(event: boolean) {\n this.isCollapsed = !this.isCollapsed;\n this.isCollapsedChange.emit(this.isCollapsed);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-items\",\n templateUrl: \"./vertical-items.component.html\",\n styleUrls: [\"./vertical-items.component.scss\"],\n})\nexport class VerticalItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isLast: boolean;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public isCompleted: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { VerticalTimelineComponent } from \"./vertical-timeline.component\";\nimport { RangeLineComponent } from \"./components/range-line/range-line.component\";\nimport { CollapseOptionComponent } from \"./components/collapse-option/collapse-option.component\";\nimport { CollapsedItemsComponent } from \"./components/collapsed-items/collapsed-items.component\";\nimport { VerticalItemsComponent } from \"./components/vertical-items/vertical-items.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n ],\n declarations: [\n VerticalTimelineComponent,\n RangeLineComponent,\n CollapseOptionComponent,\n CollapsedItemsComponent,\n VerticalItemsComponent,\n ],\n exports: [VerticalTimelineComponent],\n})\nexport class VerticalTimelineModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineComponent } from \"./timeline.component\";\nimport { TimelineItemModule } from \"./components/timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineModule } from \"./components/horizontal-timeline/horizontal-timeline.module\";\nimport { VerticalTimelineModule } from \"./components/vertical-timeline/vertical-timeline.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n HorizontalTimelineModule,\n VerticalTimelineModule,\n ],\n declarations: [\n TimelineComponent,\n ],\n exports: [\n TimelineComponent,\n ],\n})\nexport class TimelineModule { }\n","export enum TimelineItemSeverity {\n Normal = \"normal\",\n Warning = \"warning\",\n Error = \"error\",\n}\n","export enum TimelineItemSize {\n Normal = \"normal\",\n Small = \"small\",\n}\n","import { TimelineItemSeverity } from \"./timeline-item-severity\";\nimport { TimelineItemSize } from \"./timeline-item-size\";\n\nconst LABEL_MAX_LENGTH = 2; \n\nexport class TimelineItem {\n public id: string;\n public title: string;\n public description: string;\n public icon?: string;\n public label?: string;\n public tooltip?: string;\n public size: TimelineItemSize;\n public severity: TimelineItemSeverity;\n public color?: string;\n\n constructor(params: {\n id: string,\n title: string,\n description: string,\n icon?: string,\n label?: string,\n size?: TimelineItemSize,\n severity?: TimelineItemSeverity,\n tooltip?: string,\n color?: string,\n }) {\n this.id = params.id;\n this.title = params.title;\n this.description = params.description;\n this.icon = params.icon;\n this.label = params.label;\n this.tooltip = params.tooltip;\n this.size = params.size || TimelineItemSize.Normal;\n this.severity = params.severity || TimelineItemSeverity.Normal;\n this.color = params.color;\n\n this.checkItemIconContent();\n }\n\n public checkItemIconContent() {\n if (!this.icon && !this.label) {\n throw new Error(\"No icon or label string was passed for the item. Enter an icon or label text\");\n }\n\n if (this.icon && this.label) {\n throw new Error(\"An icon and label string were passed to the item. Enter an icon or label text\");\n }\n\n if (this.label?.length > LABEL_MAX_LENGTH) {\n throw new Error(\"Label text is expected to be a maximum of two characters long\");\n }\n }\n\n public testSize(value: string) {\n return this.size.valueOf() === value;\n }\n\n public testSeverity(value: string) {\n return this.severity?.valueOf() === value;\n }\n}\n","import { Component, EventEmitter, Input, Output, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-tile\",\n templateUrl: \"./tile.component.html\",\n styleUrls: [\"./tile.component.scss\"],\n})\nexport class TileComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-tile-${TileComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public description: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabIndex = 0;\n\n @Output()\n public onClick = new EventEmitter();\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.label) {\n const words = this.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: any) {\n if (!this.disabled && [13, 32].includes(event.keyCode)) {\n this.onClick.emit();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { TileComponent } from \"./tile.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ThumbnailModule,\n ],\n declarations: [TileComponent],\n exports: [\n TileComponent,\n ThumbnailModule,\n ],\n})\nexport class TileModule { }\n","export interface FileValidationErrors {\n file: File;\n validation: FileValidation,\n}\n\nexport enum FileValidation {\n MaxFileSize = \"maxFileSize\",\n MaxFileLimit = \"maxFileLimit\",\n TypeInvalid = \"typeInvalid\",\n UnsupportedExtension = \"unsupportedExtension\",\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\n\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { CropperLabelsConfig, FileValidationErrors, FileValidation, ConfirmationTexts } from \"./models/index\";\nimport { ImageCropperService } from \"../image-cropper/image-cropper.service\";\n\n@Component({\n selector: \"s-profile-picture-picker\",\n templateUrl: \"profile-picture-picker.component.html\",\n styleUrls: [\"profile-picture-picker.component.scss\"],\n})\nexport class ProfilePicturePickerComponent implements OnInit {\n @Input()\n public simpleTitle: string;\n\n @Input()\n public actionTitle: string;\n\n @Input()\n public subtitle: string;\n\n @Input()\n public aspectRatio = 1;\n\n @Input()\n public cropperLabelsConfig: CropperLabelsConfig;\n\n @Input()\n public removeButtonLabel = \"Remover\";\n\n @Input()\n public changeButtonLabel = \"Alterar foto\";\n\n @Input()\n public confirmationTexts: ConfirmationTexts = {\n removalHeader: \"Remover foto de perfil\",\n removalMessage: \"Deseja remover sua foto de perfil? Não pode ser revertida.\",\n removalAcceptLabel: \"Remover\",\n removalRejectLabel: \"Cancelar\",\n };\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public image: string;\n\n @ViewChild(\"uploadPicture\")\n public uploadPicture: ElementRef;\n\n @ViewChild(\"info\")\n public info: ElementRef;\n\n @ViewChild(\"thumbnail\", { read: ElementRef })\n public thumbnail: ElementRef;\n\n @ViewChild(\"fileInput\", { read: ElementRef })\n public fileInput: ElementRef;\n\n @Output()\n public changedImage: EventEmitter<string> = new EventEmitter();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public invalidFile: EventEmitter<FileValidationErrors> = new EventEmitter();\n\n constructor(\n private imageCropperService: ImageCropperService,\n private confirmationService: ConfirmationService,\n ) { }\n\n public ngOnInit(): void {\n this._normalizeSuportedExtensions();\n }\n\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"drop\", [\"$event\"])\n public onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const files: File[] = [];\n const dataTransferFiles = event.dataTransfer.files;\n\n for (let i = 0; i < dataTransferFiles.length; i++) {\n files.push(dataTransferFiles.item(i));\n }\n\n this._showImageCropper(files);\n }\n\n // Verificando o redimensionamento para ajustar o design para ficar responsivo.\n @HostListener(\"window:resize\")\n public onResize(): void {\n if (this.uploadPicture && this.info && this.thumbnail) {\n const uploadPictureWidth = this._getWidthElement(this.uploadPicture);\n const infoWidth = this._getWidthElement(this.info);\n const thumbnailWidth = this._getWidthElement(this.thumbnail);\n\n if (thumbnailWidth + infoWidth > uploadPictureWidth) {\n this.uploadPicture.nativeElement.classList.add(\"upload-picture--small\");\n } else {\n this.uploadPicture.nativeElement.classList.remove(\"upload-picture--small\");\n }\n }\n }\n\n public selectPhoto(): void {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n fileInputElement.click();\n }\n\n public removePhoto(): void {\n this.confirmationService.confirm({\n message: this.confirmationTexts.removalMessage,\n acceptLabel: this.confirmationTexts.removalAcceptLabel,\n rejectLabel: this.confirmationTexts.removalRejectLabel,\n header: this.confirmationTexts.removalHeader,\n accept: () => {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n this.image = \"\";\n this.removedImage.emit();\n },\n });\n }\n\n public photoSelected(event: any) {\n this._showImageCropper(event.srcElement.files);\n }\n\n private _showImageCropper(files: File[]) {\n if (!this._validateData(files)) {\n return;\n }\n\n const file = files[0];\n\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onloadend = (fileEvent: any) => {\n this.imageCropperService.show({\n imageSource: fileEvent.target.result,\n croppedImage: image => {\n this.image = image;\n this.changedImage.emit(image);\n },\n changeImage: () => this.selectPhoto(),\n allowSelectAnother: false,\n aspectRatio: this.aspectRatio,\n ...this.cropperLabelsConfig,\n });\n };\n }\n\n private _normalizeSuportedExtensions() {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLocaleLowerCase());\n }\n\n private _validateData(files: File[]) {\n if (!files.length) {\n return false;\n }\n\n if (files.length > 1) {\n this.invalidFile.emit({ file: null, validation: FileValidation.MaxFileLimit });\n return false;\n }\n\n const file = files[0];\n\n if (!file.type.includes(\"image\")) {\n this.invalidFile.emit({ file, validation: FileValidation.TypeInvalid });\n return false;\n }\n\n if (!this._validateFileExtension(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.UnsupportedExtension });\n return false;\n }\n\n if (!this._validateFileSize(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.MaxFileSize });\n return false;\n }\n\n return true;\n }\n\n private _validateFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return this.supportedExtensions.includes(extension);\n }\n return true;\n }\n\n private _validateFileSize(file: File) {\n if (this.maxFileSize) {\n return file.size > this.maxFileSize;\n }\n return true;\n }\n\n private _getWidthElement(element: ElementRef): number {\n const { left, right } = element.nativeElement.getBoundingClientRect();\n return right - left;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { ButtonModule } from '../button/button.module';\nimport { ThumbnailModule } from '../thumbnail/thumbnail.module';\nimport { ImageCropperModule } from '../image-cropper/image-cropper.module';\nimport { ImageCropperService } from '../image-cropper/image-cropper.service';\nimport { ProfilePicturePickerComponent } from \"./profile-picture-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n ThumbnailModule,\n ImageCropperModule,\n ConfirmDialogModule,\n ],\n declarations: [ProfilePicturePickerComponent],\n exports: [ProfilePicturePickerComponent],\n providers: [\n ImageCropperService,\n ConfirmationService,\n ],\n})\nexport class ProfilePicturePickerModule { }","export enum GlobalSearchSizeEnum {\n STANDARD = \"STANDARD\",\n MEDIUM = \"MEDIUM\",\n SMALL = \"SMALL\"\n}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef\n} from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { GlobalSearchSizeEnum } from \"../../global-search-size.enum\";\n\n@Component({\n selector: \"s-global-search-dropdown-item\",\n templateUrl: \"./global-search-dropdown-item.component.html\",\n styleUrls: [\"./global-search-dropdown-item.component.scss\"]\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel: string;\n\n @Input()\n public secondaryEmptyLabel: string;\n\n @Input()\n public tertiaryEmptyLabel: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size = GlobalSearchSizeEnum.STANDARD;\n\n @Input()\n public template: ElementRef;\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n private isStandardSize() {\n return this.size === GlobalSearchSizeEnum.STANDARD;\n }\n\n public isMediumSize() {\n return this.size === GlobalSearchSizeEnum.MEDIUM;\n }\n\n public isSmallSize() {\n return this.size === GlobalSearchSizeEnum.SMALL;\n }\n\n public getImageSize() {\n return this.isStandardSize() ? \"medium\" : \"small\";\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n ChangeDetectorRef\n} from \"@angular/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nimport { ExportUtils } from \"../utils\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\n\n@Component({\n selector: \"s-global-search\",\n templateUrl: \"./global-search.component.html\",\n styleUrls: [\"./global-search.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n ]\n})\nexport class GlobalSearchComponent {\n\n public static nextId = 0;\n\n @ViewChild(\"globalSearch\", { static: false }) globalSearch: ElementRef;\n\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public delay = 500;\n\n @Input()\n public totalItensLabel: string;\n\n @Input()\n public showMoreLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public isLoading = false;\n\n @Input()\n public totalElements: number;\n\n @Input()\n public emptyTitle: string;\n\n @Input()\n public emptyDescription: string;\n\n @Input()\n public emptyIcon: string;\n\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent>;\n\n @Output() onSearch = new EventEmitter<string>();\n @Output() onFocus = new EventEmitter<boolean>();\n @Output() onShowMore = new EventEmitter();\n\n public search: string;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this.canShowGlobalSearchActive();\n this.onSearch.emit(this.search);\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.onFocus.emit(true);\n }\n\n public focusOut() {\n this.onFocus.emit(false);\n }\n\n public showMore() {\n this.onShowMore.emit();\n }\n\n private removeActiveClassByGlobalSearch() {\n ExportUtils.removeClass(this.globalSearch, \"global-search__input-active\");\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this.removeActiveClassByGlobalSearch();\n }\n\n private canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n ExportUtils.addClass(this.globalSearch, \"global-search__input-active\");\n } else {\n this.removeActiveClassByGlobalSearch();\n this.close();\n }\n this.cdr.detectChanges();\n }\n\n}\n","import {\n ElementRef,\n EventEmitter,\n Directive,\n HostListener\n} from \"@angular/core\";\nimport { Output } from \"@angular/core\";\n\n@Directive({\n selector: \"[sInfiniteScroll]\"\n})\nexport class InfiniteScrollDirective {\n\n @Output() onScroll = new EventEmitter<number>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"scroll\")\n scroll() {\n if (this.el.nativeElement.scrollTop > (this.el.nativeElement.scrollHeight - this.el.nativeElement.offsetHeight - 2)) {\n this.onScroll.emit();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { InfiniteScrollDirective } from \"./infinite-scroll.directive\";\n\n@NgModule({\n declarations: [\n InfiniteScrollDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { GlobalSearchComponent } from \"./global-search.component\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { InfiniteScrollModule } from \"../infinite-scroll/infinite-scroll.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ],\n entryComponents: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ]\n})\nexport class GlobalSearchModule { }\n","export enum Languages {\n TaxCalculation = \"TaxCalculation\"\n}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/editor-options\";\n\n/* Enums */\nexport * from \"./enums/languages\";\nexport * from \"./enums/themes\";\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade; \n\nexport class CoreLinters {\n\n private static _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) return languageLinterFactory();\n }\n}\n","import {\n Observable,\n ReplaySubject,\n Subject\n} from \"rxjs\";\n\nimport {\n EditorOptions,\n Languages,\n Themes\n} from \"../../models\";\nimport { Marker } from \"../models\";\nimport { CoreLinters } from \"../use-cases/core-linters\";\nimport { LinterFacade } from \"./linter-facade\";\n\nexport abstract class CoreFacade {\n\n private $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private $onCodeChange: Subject<string> = new Subject();\n private $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = \"\";\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== \"object\") throw new Error(\"Editor's options must be an EditorOptions object\");\n\n this.validateLanguage(options.language);\n this.validateTheme(options.theme);\n this.setLinter(options.language);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language);\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) throw new Error(`The informed language \"${language}\" is not supported`);\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n\n private getSafeCode(code: string): string {\n return typeof code === \"string\" ? code : \"\";\n }\n}\n","import {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport {\n take,\n takeUntil\n} from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../core/facades/core-facade\";\nimport { EditorOptions } from \"../models\";\n\n@Component({\n selector: \"s-code-editor\",\n template: `<div #coreWrapper class=\"core-wrapper\"></div>`,\n styleUrls: [\"./code-editor-component.scss\"]\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n\n private _ngUnsubscribe: Subject<void> = new Subject();\n\n @ViewChild(\"coreWrapper\") private coreWrapperElement: ElementRef;\n\n @Input() public set editorOptions(options: EditorOptions) {\n this.coreFacade.changeEditorOptions(options);\n }\n\n @Input() public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n @Output() public codeChange: EventEmitter<string> = new EventEmitter();\n\n @Input() public isCodeValid: boolean;\n\n @Output() public isCodeValidChange: EventEmitter<boolean> = new EventEmitter();\n\n @Output() public onCodeChange: EventEmitter<string> = new EventEmitter();\n\n @Output() public onComponentFinishLoad: EventEmitter<void> = new EventEmitter();\n\n constructor(private readonly coreFacade: CoreFacade) {}\n\n public ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(code => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(validity => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/tax-calculation-configs\";\nexport * from \"./interfaces/fields-order-by\";\nexport * from \"./interfaces/rec-page-request\";\nexport * from \"./interfaces/list-facade-metadata-names\";\nexport * from \"./interfaces/facade-metadata-name\";\nexport * from \"./interfaces/rec-front-context-metadata\";\nexport * from \"./interfaces/list-context-metadata-by-id\";\nexport * from \"./interfaces/rec-expression-metadata\";\nexport * from \"./interfaces/list-expression-metadata\";\nexport * from \"./interfaces/rec-front-field-metadata\";\nexport * from \"./interfaces/rec-front-facade-metadata\";\nexport * from \"./interfaces/get-facade-metadata-by-path\";\nexport * from \"./interfaces/safe-http-communication\";\nexport * from \"./interfaces/completion-Item\";\n\n/* Enums */\nexport * from \"./enums/enum-type-order\";\nexport * from \"./enums/meta-type\";\nexport * from \"./enums/request-types\";\nexport * from \"./enums/completion-types\";\nexport * from \"./enums/keywords\";\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","/* Interfaces */\nexport * from \"./interfaces/marker\";\n\n/* Enums */\nexport * from \"./enums/marker-severity\";\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from \"@codemirror/state\";\nimport { showTooltip, Tooltip } from \"@codemirror/tooltip\";\n\nimport { CodeMirror6Core } from \"../../../../../../codemirror-6-core\";\nimport { style } from \"./autocomplete-state-wrapper-style\";\n\nlet htmlElementToBeWrapped: HTMLElement = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\n export function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field) {\n return showTooltip.compute([field], state => state.field(field));\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip {\n if (!htmlElementToBeWrapped) return;\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement(\"div\");\n wrapperDiv.className = \"cm-tooltip-autocomplete cm-tooltip\";\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from \"../models\";\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {}\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion\n} from \"@codemirror/autocomplete\";\n\nimport { CustomTranslationsService } from \"../../../../../../utils\";\nimport { CodeMirror6Core } from \"../../../../codemirror-6-core\";\nimport { isCurrentPositionInsideString } from \"../../../../utils\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState\n} from \"./autocomplete-states\";\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from \"../../models\";\nimport {\n getLanguageConfigs,\n getSafeResponse\n} from \"../../utils\";\nimport { style } from \"./autocomplete-style\";\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete (): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = \"core_language_tax_calculation\";\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) return;\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength\n ? codeLength\n : finalCompletionResults.from;\n completionResults = null;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n}\n\nlet cancelLastCompletionSearch: () => void = () => {};\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either pressing the\n * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the isSearchCanceled on token object\n * to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener(\"click\", cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener(\"click\", cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search was not cancelled\n * by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? \"\";\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise\n .all(requests)\n .then(responses => {\n if (!token.signal.aborted) {\n const completions = [].concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses),\n getExpressionsCompletions(responses),\n getEntitiesCompletions(responses)\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions\n };\n startCompletion(CodeMirror6Core.getEditorView());\n\n } else {\n showAutocompleteEmptyState();\n }\n\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) return \"\";\n\n const filter = string.match(/(#|\\.|)\\w*$/)?.[0] ?? \"\";\n return filter.replace(\".\", \"\").trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) return \"\";\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const path = stringWithoutPath.match(/(\\w*\\.)*$/)?.[0] ?? \"\";\n return path.replace(/\\.$/, \"\");\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === \"\") {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal\n )\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20\n }\n },\n abortSignal\n )\n });\n\n } else if (path.includes(\".\")) {\n const splittedPath = path.split(\".\");\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2)\n },\n abortSignal\n )\n });\n\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30\n }\n },\n abortSignal\n )\n });\n }\n\n return requests.map(request => getSafeResponse(request));\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== \"\") return [];\n\n const completions = [\n {\n label: Keywords.SE,\n apply: \"SE ()\\nENTAO\\n\\tacao\\nFIM_SE\",\n },\n {\n label: Keywords.SENAO,\n apply: \"SENAO\\n\\tacao\",\n },\n {\n label: Keywords.CONTENHA,\n apply: \"CONTENHA(condicao)\",\n },\n {\n label: Keywords.ENTAO,\n apply: \"ENTAO\\n\\tacao\",\n },\n {\n label: Keywords.FIM_SE,\n apply: \"FIM_SE \",\n },\n {\n label: Keywords.NAO,\n apply: \"NAO \",\n },\n {\n label: Keywords.E,\n apply: \"E \",\n },\n {\n label: Keywords.OU,\n apply: \"OU \"\n },\n ];\n\n return completions.map(completionItem => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword\n }));\n}\n\nfunction getContextsCompletions(responses: Response<any>[]): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListContextMetadataById\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? [])\n .map(contextMetadata => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response<any>[]): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListExpressionMetadata\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? [])\n .map(expressionMetadata => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? \"senior_expression\"\n : \"user_expression\"\n }`),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? CompletionTypes.Expression : CompletionTypes.UserExpression\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response<any>[]): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListFacadeMetadataNames\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> = responses.find(response =>\n response?.requestType === RequestTypes.GetFacadeMetadataByPath\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n facade.type === MetaType.ENTITY\n ? \"entity\"\n : \"field\"\n }`),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .filter(completionItem =>\n completionItem\n .label\n .toLowerCase()\n .startsWith(filter.toLowerCase()));\n}\n\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire completion's apply \n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .map(completionItem => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`)\n }));\n}\n\nfunction getCompletionApply(filter: string, oldApplyText: string): ((view: EditorView, completion: Completion, from: number, to: number) => void) {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n \n view.dispatch({\n changes: {\n from: newFrom,\n to,\n insert: oldApplyText\n },\n selection: {\n anchor: newFrom + oldApplyText.length\n },\n userEvent: \"input.complete\",\n annotations: pickedCompletion.of(completion)\n });\n } \n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","import { EditorView } from \"@codemirror/view\";\nimport {\n EditorState,\n StateEffect,\n Extension,\n TransactionSpec\n} from \"@codemirror/state\";\nimport { setDiagnostics } from \"@codemirror/lint\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../../../core/facades/core-facade\";\nimport { Marker } from \"../../../core/models\";\nimport { EditorOptions } from \"../../../models\";\nimport { EditorLanguages } from \"./languages/editor-languages\";\nimport { EditorThemes } from \"./themes/editor-themes\";\nimport { convertMarkersToDiagnostics } from \"./utils\";\n\nexport class CodeMirror6Core extends CoreFacade {\n\n public static $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = \"\";\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = \"\";\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language);\n const theme = EditorThemes.getTheme(options.theme);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([\n language,\n theme,\n this.getCodeChangeListenerExtension()\n ])\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(markers, CodeMirror6Core._editorView.state.doc.length);\n CodeMirror6Core.updateEditorView(setDiagnostics(CodeMirror6Core._editorView.state, diagnostics));\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe(items => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [\n this._editorOptionsReceivedBeforeViewCreation,\n this.getCodeChangeListenerExtension()\n ]\n })\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(update => update.docChanged && this.notifyCodeChange(update.state.doc.toString()));\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code\n }\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor-component\";\nimport { CoreFacade } from \"../core/facades/core-facade\";\nimport { CodeMirror6Core } from \"../infra/cores/codemirror-6/codemirror-6-core\";\nimport {\n CustomTranslationsModule\n} from \"../infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n CustomTranslationsModule,\n ],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core\n }\n ]\n})\nexport class CodeEditorModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n} from \"@angular/core\";\n\nimport { Workspace } from \"./models/workspace\";\n\n@Component({\n selector: \"s-workspace-switch\",\n templateUrl: \"./workspace-switch.component.html\",\n styleUrls: [\"./workspace-switch.component.scss\"],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n @Input()\n public workspaces: Workspace[];\n\n @Input()\n public footerButtonLabel = \"Adicionar\";\n\n @Input()\n public showFooterButton = true;\n\n @Input()\n public disabled = false;\n\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n public open = false;\n\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n }\n } else if (event.key === \"ArrowUp\") {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations() {\n if (!this.workspaces.length) {\n throw new Error(\"Workspaces list is empty.\");\n }\n }\n\n public buttonOnBlur() {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace) {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick() {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { WorkspaceSwitchComponent } from \"./workspace-switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule { }\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"./models\";\n\n@Component({\n selector: \"s-progressbar\",\n templateUrl: \"./progressbar.component.html\",\n styleUrls: [\"./progressbar.component.scss\"],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n public ngOnInit() {\n this.validateValues();\n }\n\n private validateValues() {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ProgressBarComponent } from \"./progressbar.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ProgressBarComponent],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule { }","export enum ProgressBarColors {\n Blue = \"blue\",\n Green = \"green\",\n Red = \"red\",\n Yellow = \"yellow\",\n}","import { Component, Input, forwardRef } from \"@angular/core\";\n\nimport { RatingScaleNode } from \"./models/rating-scale-node\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-rating-scale\",\n templateUrl: \"./rating-scale.component.html\",\n styleUrls: [\"./rating-scale.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingScaleComponent),\n multi: true,\n }],\n})\nexport class RatingScaleComponent implements ControlValueAccessor {\n @Input()\n public nodes: RatingScaleNode[];\n\n @Input()\n public startLabel: string;\n\n @Input()\n public endLabel: string;\n\n @Input()\n public disabled = false;\n\n public value: RatingScaleNode;\n private _onChange: (value: RatingScaleNode) => void;\n private _onTouched: (value: RatingScaleNode) => void;\n\n public writeValue(value: RatingScaleNode): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n public registerOnChange(onChange: (value: RatingScaleNode) => void): void {\n this._onChange = onChange;\n }\n public registerOnTouched(onTouched: (value: RatingScaleNode) => void): void {\n this._onTouched = onTouched;\n }\n\n public onSelect(rating: RatingScaleNode) {\n this.value = rating;\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { RatingScaleComponent } from \"./rating-scale.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ],\n declarations: [RatingScaleComponent],\n exports: [RatingScaleComponent],\n})\nexport class RatingScaleModule { }\n","export enum SplitButtonType {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Default = \"default\",\n}","import { Component, Input, Output, EventEmitter, HostListener, ElementRef } from \"@angular/core\";\n\nimport { SplitButtonOption } from \"./models/split-button-option\";\nimport { SplitButtonType } from \"./models/split-button-type\";\n\n@Component({\n selector: \"s-split-button\",\n templateUrl: \"./split-button.component.html\",\n styleUrls: [\"./split-button.component.scss\"],\n})\nexport class SplitButtonComponent {\n @Input()\n public disabled = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public label: string;\n\n @Input()\n public type = SplitButtonType.Primary;\n\n @Input()\n public options: SplitButtonOption[];\n\n @Output()\n public buttonClicked = new EventEmitter();\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeDropdown();\n }\n }\n\n public open = false;\n\n public onButtonClick() {\n if (!this.disabled) {\n this.buttonClicked.emit();\n this.closeDropdown();\n }\n }\n\n public onDropdownClick() {\n if (!this.disabled) {\n this.open = !this.open;\n }\n }\n\n public onOptionClick(option: SplitButtonOption) {\n option.action && option.action();\n this.closeDropdown();\n }\n\n private closeDropdown() {\n this.open = false;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SplitButtonComponent } from \"./split-button.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SplitButtonComponent],\n exports: [SplitButtonComponent],\n})\nexport class SplitButtonModule { }","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\n@Component({\n selector: \"s-panel\",\n templateUrl: \"./panel.component.html\",\n styleUrls: [\"./panel.component.scss\"],\n animations: [\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class PanelComponent {\n @Input()\n header: string;\n\n @Input()\n toggleable = true;\n\n @Input()\n collapsed = false;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n onCollapsedChange(collapsed: boolean): void {\n this.collapsed = collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n readonly EnumSeverity = EnumSeverity;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { PanelModule as PrimengPanelModule } from \"primeng/panel\";\n\nimport { PanelComponent } from \"./panel.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, PrimengPanelModule, BorderButtonModule],\n declarations: [PanelComponent],\n exports: [PanelComponent],\n})\nexport class PanelModule {}\n","export const fallback: any = {\n \"platform.angular_components.country_name_br\": \"Brasil\",\n \"platform.angular_components.country_name_us\": \"Estados Unidos\",\n \"platform.angular_components.country_name_co\": \"Colômbia\",\n \"platform.angular_components.country_name_ar\": \"Argentina\",\n \"platform.angular_components.country_name_cl\": \"Chile\",\n \"platform.angular_components.country_name_py\": \"Paraguai\",\n \"platform.angular_components.country_name_uy\": \"Uruguai\",\n \"platform.angular_components.country_name_cn\": \"China\",\n \"platform.angular_components.country_name_ca\": \"Canadá\",\n \"platform.angular_components.country_name_as\": \"Samoa Americana\",\n \"platform.angular_components.country_name_ai\": \"Anguilla\",\n \"platform.angular_components.country_name_ag\": \"Antígua e Barbuda\",\n \"platform.angular_components.country_name_bs\": \"Bahamas\",\n \"platform.angular_components.country_name_bb\": \"Barbados\",\n \"platform.angular_components.country_name_bm\": \"Bermuda\",\n \"platform.angular_components.country_name_vg\": \"Ilhas Virgens Britânicas\",\n \"platform.angular_components.country_name_ky\": \"Ilhas Cayman\",\n \"platform.angular_components.country_name_dm\": \"Dominica\",\n \"platform.angular_components.country_name_do\": \"República Dominicana\",\n \"platform.angular_components.country_name_gd\": \"Granada\",\n \"platform.angular_components.country_name_gu\": \"Guam\",\n \"platform.angular_components.country_name_jm\": \"Jamaica\",\n \"platform.angular_components.country_name_ms\": \"Montserrat\",\n \"platform.angular_components.country_name_mp\": \"Ilhas Mariana do Norte\",\n \"platform.angular_components.country_name_pr\": \"Porto Rico\",\n \"platform.angular_components.country_name_kn\": \"Saint Kitts and Nevis\",\n \"platform.angular_components.country_name_lc\": \"Saint Lucia\",\n \"platform.angular_components.country_name_vc\": \"Saint Vincent and the Grenadines\",\n \"platform.angular_components.country_name_tt\": \"Trinidad e Tobago\",\n \"platform.angular_components.country_name_tc\": \"Ilhas Turcas e Caicos\",\n \"platform.angular_components.country_name_fi\": \"Finlândia\",\n \"platform.angular_components.country_name_rs\": \"Sérvia\",\n \"platform.angular_components.country_name_zm\": \"Zâmbia\",\n \"platform.angular_components.country_name_af\": \"Afghanistão\",\n \"platform.angular_components.country_name_al\": \"Albânia\",\n \"platform.angular_components.country_name_hr\": \"Croácia\",\n \"platform.angular_components.country_name_ec\": \"Equador\",\n \"platform.angular_components.country_name_et\": \"Etiópia\",\n \"platform.angular_components.country_name_gh\": \"Gana\",\n \"platform.angular_components.country_name_gr\": \"Grécia\",\n \"platform.angular_components.country_name_ie\": \"Irlanda\",\n \"platform.angular_components.country_name_it\": \"Itália\",\n \"platform.angular_components.country_name_lr\": \"Libéria\",\n \"platform.angular_components.country_name_na\": \"Namíbia\",\n \"platform.angular_components.country_name_nz\": \"Nova Zelândia\",\n \"platform.angular_components.country_name_sa\": \"Arábia Saudita\",\n \"platform.angular_components.country_name_za\": \"África do Sul\",\n \"platform.angular_components.country_name_lk\": \"Sri Lanka\",\n \"platform.angular_components.country_name_sd\": \"Sudão\",\n \"platform.angular_components.country_name_th\": \"Tailândia\",\n \"platform.angular_components.country_name_ua\": \"Ucrânia\",\n \"platform.angular_components.country_name_ae\": \"Emirados Árabes Unidos\",\n \"platform.angular_components.country_name_va\": \"Vaticano\",\n \"platform.angular_components.country_name_zw\": \"Zimbábue\",\n \"platform.angular_components.country_name_dz\": \"Argélia\",\n \"platform.angular_components.country_name_be\": \"Bélgica\",\n \"platform.angular_components.country_name_yt\": \"Mayotte\",\n \"platform.angular_components.country_name_bl\": \"Saint Barthelemy\",\n \"platform.angular_components.country_name_mf\": \"Saint Martin\",\n \"platform.angular_components.country_name_ad\": \"Andora\",\n \"platform.angular_components.country_name_ao\": \"Angola\",\n \"platform.angular_components.country_name_ba\": \"Bósnia e Herzegovina\",\n \"platform.angular_components.country_name_bg\": \"Bulgária\",\n \"platform.angular_components.country_name_kh\": \"Camboja\",\n \"platform.angular_components.country_name_cz\": \"República Checa\",\n \"platform.angular_components.country_name_gq\": \"Guiné Equatorial\",\n \"platform.angular_components.country_name_gw\": \"Guiné-Bissau\",\n \"platform.angular_components.country_name_li\": \"Liechtenstein\",\n \"platform.angular_components.country_name_lu\": \"Luxemburgo\",\n \"platform.angular_components.country_name_mk\": \"Macedónia\",\n \"platform.angular_components.country_name_me\": \"Montenegro\",\n \"platform.angular_components.country_name_pe\": \"Peru\",\n \"platform.angular_components.country_name_pl\": \"Polónia\",\n \"platform.angular_components.country_name_pt\": \"Portugal\",\n \"platform.angular_components.country_name_si\": \"Slovenia\",\n \"platform.angular_components.country_name_am\": \"Arménia\",\n \"platform.angular_components.country_name_aw\": \"Aruba\",\n \"platform.angular_components.country_name_bn\": \"Brunei\",\n \"platform.angular_components.country_name_fj\": \"Fiji\",\n \"platform.angular_components.country_name_gm\": \"Gâmbia\",\n \"platform.angular_components.country_name_gy\": \"Guiana\",\n \"platform.angular_components.country_name_is\": \"Islândia\",\n \"platform.angular_components.country_name_fm\": \"Micronésia\",\n \"platform.angular_components.country_name_nr\": \"Nauru\",\n \"platform.angular_components.country_name_nu\": \"Niue\",\n \"platform.angular_components.country_name_pw\": \"Palau\",\n \"platform.angular_components.country_name_st\": \"Sao Tome e Principe\",\n \"platform.angular_components.country_name_to\": \"Tonga\",\n \"platform.angular_components.country_name_vu\": \"Vanuatu\",\n \"platform.angular_components.country_name_fk\": \"Ilhas Falkland (Malvinas)\",\n \"platform.angular_components.country_name_fo\": \"Ilhas Feroé\",\n \"platform.angular_components.country_name_sh\": \"Saint Helena\",\n \"platform.angular_components.country_name_au\": \"Austrália\",\n \"platform.angular_components.country_name_cx\": \"Christmas Island\",\n \"platform.angular_components.country_name_cc\": \"Ilhas Cocos (Keeling)\",\n \"platform.angular_components.country_name_cd\": \"República Democrática do Congo\",\n \"platform.angular_components.country_name_kg\": \"Quirguistão\",\n \"platform.angular_components.country_name_ro\": \"Roménia\",\n \"platform.angular_components.country_name_rw\": \"Ruanda\",\n \"platform.angular_components.country_name_sk\": \"Slovakia\",\n \"platform.angular_components.country_name_sy\": \"Syria\",\n \"platform.angular_components.country_name_tw\": \"Taiwan\",\n \"platform.angular_components.country_name_tz\": \"Tanzânia\",\n \"platform.angular_components.country_name_ye\": \"Iémen (Iémen, Yemen)\",\n \"platform.angular_components.country_name_at\": \"Áustria\",\n \"platform.angular_components.country_name_ke\": \"Quénia (Kenya)\",\n \"platform.angular_components.country_name_ug\": \"Uganda\",\n \"platform.angular_components.country_name_az\": \"Azerbaijão\",\n \"platform.angular_components.country_name_ch\": \"Suiça\",\n \"platform.angular_components.country_name_vn\": \"Vietnã (Vietname)\",\n \"platform.angular_components.country_name_bh\": \"Bahrein\",\n \"platform.angular_components.country_name_cr\": \"Costa Rica\",\n \"platform.angular_components.country_name_sv\": \"El Salvador\",\n \"platform.angular_components.country_name_ee\": \"Estónia\",\n \"platform.angular_components.country_name_sz\": \"Suazilândia\",\n \"platform.angular_components.country_name_gt\": \"Guatemala\",\n \"platform.angular_components.country_name_hk\": \"Hong Kong\",\n \"platform.angular_components.country_name_ls\": \"Lesoto\",\n \"platform.angular_components.country_name_mo\": \"Macau\",\n \"platform.angular_components.country_name_mt\": \"Malta\",\n \"platform.angular_components.country_name_mu\": \"Maurícia\",\n \"platform.angular_components.country_name_mn\": \"Mongólia\",\n \"platform.angular_components.country_name_ni\": \"Nicaragua\",\n \"platform.angular_components.country_name_om\": \"Omã\",\n \"platform.angular_components.country_name_pg\": \"Papua-Nova Guiné\",\n \"platform.angular_components.country_name_qa\": \"Catar\",\n \"platform.angular_components.country_name_sg\": \"Cingapura\",\n \"platform.angular_components.country_name_tl\": \"Timor-Leste\",\n \"platform.angular_components.country_name_bd\": \"Bangladesh\",\n \"platform.angular_components.country_name_im\": \"Ilha de Man\",\n \"platform.angular_components.country_name_by\": \"Bielorrússia\",\n \"platform.angular_components.country_name_bz\": \"Belize\",\n \"platform.angular_components.country_name_mv\": \"Maldivas\",\n \"platform.angular_components.country_name_mh\": \"Ilhas Marshall\",\n \"platform.angular_components.country_name_sr\": \"Suriname\",\n \"platform.angular_components.country_name_bj\": \"Benim\",\n \"platform.angular_components.country_name_bt\": \"Butão\",\n \"platform.angular_components.country_name_bf\": \"Burkina Faso\",\n \"platform.angular_components.country_name_bi\": \"Burundi\",\n \"platform.angular_components.country_name_cf\": \"República Centro-Africana\",\n \"platform.angular_components.country_name_td\": \"Chad\",\n \"platform.angular_components.country_name_ci\": \"Costa do Marfim\",\n \"platform.angular_components.country_name_dk\": \"Dinamarca\",\n \"platform.angular_components.country_name_dj\": \"Djibouti\",\n \"platform.angular_components.country_name_fr\": \"França\",\n \"platform.angular_components.country_name_pf\": \"Polinésia Francesa\",\n \"platform.angular_components.country_name_ga\": \"Gabão\",\n \"platform.angular_components.country_name_ml\": \"Mali\",\n \"platform.angular_components.country_name_mr\": \"Mauritânia\",\n \"platform.angular_components.country_name_ne\": \"Níger\",\n \"platform.angular_components.country_name_sm\": \"San Marino\",\n \"platform.angular_components.country_name_tg\": \"Togo\",\n \"platform.angular_components.country_name_bo\": \"Bolívia\",\n \"platform.angular_components.country_name_gi\": \"Gibraltar\",\n \"platform.angular_components.country_name_ki\": \"Kiribati\",\n \"platform.angular_components.country_name_tv\": \"Tuvalu\",\n \"platform.angular_components.country_name_bw\": \"Botswana\",\n \"platform.angular_components.country_name_er\": \"Eritreia\",\n \"platform.angular_components.country_name_lv\": \"Letônia\",\n \"platform.angular_components.country_name_lb\": \"Líbano\",\n \"platform.angular_components.country_name_tn\": \"Tunísia\",\n \"platform.angular_components.country_name_cm\": \"Camarões\",\n \"platform.angular_components.country_name_cv\": \"Cabo Verde\",\n \"platform.angular_components.country_name_km\": \"Comores\",\n \"platform.angular_components.country_name_pm\": \"Saint Pierre and Miquelon\",\n \"platform.angular_components.country_name_cg\": \"República do Congo\",\n \"platform.angular_components.country_name_mz\": \"Moçambique\",\n \"platform.angular_components.country_name_mm\": \"Myanmar (Burma)\",\n \"platform.angular_components.country_name_ck\": \"Ilhas Cook\",\n \"platform.angular_components.country_name_cu\": \"Cuba\",\n \"platform.angular_components.country_name_cy\": \"Chipre\",\n \"platform.angular_components.country_name_eg\": \"Egito\",\n \"platform.angular_components.country_name_ir\": \"Irã\",\n \"platform.angular_components.country_name_iq\": \"Iraque\",\n \"platform.angular_components.country_name_ng\": \"Nigéria\",\n \"platform.angular_components.country_name_kp\": \"Coreia do Norte\",\n \"platform.angular_components.country_name_ph\": \"Filipinas\",\n \"platform.angular_components.country_name_ge\": \"Geórgia\",\n \"platform.angular_components.country_name_gn\": \"Guiné\",\n \"platform.angular_components.country_name_es\": \"Espanha\",\n \"platform.angular_components.country_name_de\": \"Alemanha\",\n \"platform.angular_components.country_name_gl\": \"Groelândia\",\n \"platform.angular_components.country_name_wf\": \"Wallis e Futuna\",\n \"platform.angular_components.country_name_ht\": \"Haiti\",\n \"platform.angular_components.country_name_hn\": \"Honduras\",\n \"platform.angular_components.country_name_pa\": \"Panamá\",\n \"platform.angular_components.country_name_hu\": \"Hungria\",\n \"platform.angular_components.country_name_in\": \"India\",\n \"platform.angular_components.country_name_id\": \"Indonésia\",\n \"platform.angular_components.country_name_il\": \"Israel\",\n \"platform.angular_components.country_name_jp\": \"Japão\",\n \"platform.angular_components.country_name_jo\": \"Jordânia\",\n \"platform.angular_components.country_name_kz\": \"Cazaquistão\",\n \"platform.angular_components.country_name_kw\": \"Kuwait\",\n \"platform.angular_components.country_name_la\": \"Laos\",\n \"platform.angular_components.country_name_ly\": \"Líbia\",\n \"platform.angular_components.country_name_lt\": \"Lituânia\",\n \"platform.angular_components.country_name_np\": \"Nepal\",\n \"platform.angular_components.country_name_mg\": \"Madagáscar\",\n \"platform.angular_components.country_name_mw\": \"Malawi\",\n \"platform.angular_components.country_name_my\": \"Malásia\",\n \"platform.angular_components.country_name_mx\": \"México\",\n \"platform.angular_components.country_name_md\": \"Moldávia\",\n \"platform.angular_components.country_name_mc\": \"Monaco\",\n \"platform.angular_components.country_name_ma\": \"Marrocos\",\n \"platform.angular_components.country_name_nl\": \"Países Baixos\",\n \"platform.angular_components.country_name_nc\": \"Nova Caledônia\",\n \"platform.angular_components.country_name_no\": \"Noruega\",\n \"platform.angular_components.country_name_pk\": \"Paquistão\",\n \"platform.angular_components.country_name_ru\": \"Rússia\",\n \"platform.angular_components.country_name_ws\": \"Samoa\",\n \"platform.angular_components.country_name_sb\": \"Ilhas Salomão\",\n \"platform.angular_components.country_name_sn\": \"Senegal\",\n \"platform.angular_components.country_name_sc\": \"Seychelles\",\n \"platform.angular_components.country_name_sl\": \"Serra Leoa\",\n \"platform.angular_components.country_name_so\": \"Somalia\",\n \"platform.angular_components.country_name_kr\": \"Coreia do Sul\",\n \"platform.angular_components.country_name_se\": \"Suécia\",\n \"platform.angular_components.country_name_tj\": \"Tajiquistão\",\n \"platform.angular_components.country_name_tk\": \"Tokelau\",\n \"platform.angular_components.country_name_tr\": \"Turquia\",\n \"platform.angular_components.country_name_tm\": \"Turquemenistão\",\n \"platform.angular_components.country_name_uz\": \"Uzbequistão\",\n \"platform.angular_components.country_name_ve\": \"Venezuela\",\n \"platform.angular_components.date_modified_custom_blob\": \"Enviado às {{hour}}:{{minutes}} de {{day}}/{{month}}/{{fullYear}}\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {CoreFacade as ɵce} from './components/code-editor/core/facades/core-facade';\nexport {CodeMirror6Core as ɵcf} from './components/code-editor/infra/cores/codemirror-6/codemirror-6-core';\nexport {CustomTranslationsModule as ɵcc} from './components/code-editor/infra/utils/custom-translations/custom-translations.module';\nexport {CodeEditorComponent as ɵcd} from './components/code-editor/presentation/code-editor-component';\nexport {CountryPhonePickerService as ɵc} from './components/country-phone-picker/country-phone-picker.service';\nexport {DynamicFieldComponent as ɵq} from './components/dynamic-form/components/dynamic-field/dynamic-field.component';\nexport {AutocompleteFieldComponent as ɵl} from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';\nexport {BignumberFieldComponent as ɵw} from './components/dynamic-form/components/fields/bignumber/number-field.component';\nexport {BooleanFieldComponent as ɵm} from './components/dynamic-form/components/fields/boolean/boolean-field.component';\nexport {BooleanSwitchFieldComponent as ɵbd} from './components/dynamic-form/components/fields/boolean/boolean-switch-field.component';\nexport {CalendarFieldComponent as ɵn} from './components/dynamic-form/components/fields/calendar/calendar-field.component';\nexport {ChipsFieldComponent as ɵo} from './components/dynamic-form/components/fields/chips/chips-field.component';\nexport {CurrencyFieldComponent as ɵp} from './components/dynamic-form/components/fields/currency/currency-field.component';\nexport {FileUploadComponent as ɵt} from './components/dynamic-form/components/fields/file-upload/file-upload.component';\nexport {LookupFieldComponent as ɵu} from './components/dynamic-form/components/fields/lookup/lookup-field.component';\nexport {NumberFieldComponent as ɵv} from './components/dynamic-form/components/fields/number/number-field.component';\nexport {PasswordFieldComponent as ɵbe} from './components/dynamic-form/components/fields/password/password-field.component';\nexport {RadioButtonComponent as ɵx} from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';\nexport {SelectFieldComponent as ɵba} from './components/dynamic-form/components/fields/select/select-field.component';\nexport {SliderFieldComponent as ɵbf} from './components/dynamic-form/components/fields/slider/slider-field.component';\nexport {TextAreaFieldComponent as ɵbb} from './components/dynamic-form/components/fields/text-area/text-area-field.component';\nexport {TextFieldComponent as ɵbc} from './components/dynamic-form/components/fields/text/text-field.component';\nexport {RowComponent as ɵy} from './components/dynamic-form/components/grid/row/row.component';\nexport {FieldsetComponent as ɵs} from './components/dynamic-form/components/structure/fieldset/fieldset.component';\nexport {SectionComponent as ɵz} from './components/dynamic-form/components/structure/section/section.component';\nexport {DecimalField as ɵbh,DecimalFieldConfig as ɵbg} from './components/dynamic-form/configurations/fields/decimal-field';\nexport {DynamicFormDirective as ɵr} from './components/dynamic-form/dynamic-form.directive';\nexport {EmptyStateGoBackComponent as ɵg} from './components/empty-state/go-back/go-back.component';\nexport {FileUploadService as ɵh} from './components/file-upload/file-upload.service';\nexport {SideTableComponent as ɵbi} from './components/gantt/components/side-table/side-table.component';\nexport {InfiniteScrollDirective as ɵcb} from './components/infinite-scroll/infinite-scroll.directive';\nexport {InfiniteScrollModule as ɵca} from './components/infinite-scroll/infinite-scroll.module';\nexport {InfoSignComponent as ɵi} from './components/info-sign/info-sign.component';\nexport {NumberLocaleOptions as ɵbm} from './components/locale/options';\nexport {LocalizedBignumberImpurePipe as ɵf} from './components/locale/pipes/localized-bignumber-impure.pipe';\nexport {LocalizedBignumberPipe as ɵe} from './components/locale/pipes/localized-bignumber.pipe';\nexport {LocalizedCurrencyImpurePipe as ɵd} from './components/locale/pipes/localized-currency-impure.pipe';\nexport {BorderButtonComponent as ɵbp} from './components/shared/border-button/border-button.component';\nexport {BorderButtonModule as ɵbo} from './components/shared/border-button/border-button.module';\nexport {FooterComponent as ɵbl} from './components/structure/footer.component';\nexport {HeaderComponent as ɵbk} from './components/structure/header.component';\nexport {StructureModule as ɵbj} from './components/structure/structure.module';\nexport {TableColumnsComponent as ɵj} from './components/table/table-column/table-columns.component';\nexport {TablePagingComponent as ɵk} from './components/table/table-paging/table-paging.component';\nexport {ThumbnailService as ɵbn} from './components/thumbnail/thumbnail.service';\nexport {HorizontalTimelineComponent as ɵbt} from './components/timeline/components/horizontal-timeline/horizontal-timeline.component';\nexport {HorizontalTimelineModule as ɵbs} from './components/timeline/components/horizontal-timeline/horizontal-timeline.module';\nexport {TimelineIconItemComponent as ɵbr} from './components/timeline/components/timeline-icon-item/timeline-icon-item.component';\nexport {TimelineItemModule as ɵbq} from './components/timeline/components/timeline-icon-item/timeline-icon-item.module';\nexport {CollapseOptionComponent as ɵbx} from './components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component';\nexport {CollapsedItemsComponent as ɵby} from './components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component';\nexport {RangeLineComponent as ɵbw} from './components/timeline/components/vertical-timeline/components/range-line/range-line.component';\nexport {VerticalItemsComponent as ɵbz} from './components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component';\nexport {VerticalTimelineComponent as ɵbv} from './components/timeline/components/vertical-timeline/vertical-timeline.component';\nexport {VerticalTimelineModule as ɵbu} from './components/timeline/components/vertical-timeline/vertical-timeline.module';\nexport {TooltipComponent as ɵa} from './components/tooltip/tooltip.component';\nexport {TooltipDirective as ɵb} from './components/tooltip/tooltip.directive';"],"names":["style","PrimeBreadcrumbModule","TooltipModule","moment","ProgressBarModule","CurrencyMaskDirective","FileUploadComponent","PrimeButtonModule","PanelModule","PrimeNGTableModule","PrimeSidebar","BigNumber","PrimengPanelModule"],"mappings":"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,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MA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EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACjD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACjD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAClD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACjD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAClD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAChD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACjD,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;CAChD;;ICnOW,UAIX;AAJD,WAAY,UAAU;IACnB,uBAAS,CAAA;IACT,uBAAS,CAAA;IACT,uBAAS,CAAA;AACZ,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;;ICKY,yBAAyB,GAAtC,MAAa,yBAAyB;IACnC,YAA6B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;KAAK;IAEtD,YAAY,CAAC,UAAsB;QACvC,QAAQ,UAAU;YACf,KAAK,UAAU,CAAC,EAAE;gBACf,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,KAAK,UAAU,CAAC,EAAE;gBACf,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC9C,KAAK,UAAU,CAAC,EAAE,CAAC;YACnB;gBACG,OAAO,SAAS,CAAC;SACtB;KACH;IAEO,kBAAkB;QACvB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5E,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpC,CAAC,CAAC;KACL;IAEO,4BAA4B;QACjC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE5E,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpC,CAAC,CAAC;KACL;CACH,CAAA;;YA/B0C,gBAAgB;;AAD9C,yBAAyB;IADrC,UAAU,EAAE;GACA,yBAAyB,CAgCrC;;;ICtBY,2BAA2B,mCAAxC,MAAa,2BAA2B;IAerC,YACoB,yBAAoD,EACpD,SAA2B,EAC3B,IAAgB;QAFhB,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,cAAS,GAAT,SAAS,CAAkB;QAC3B,SAAI,GAAJ,IAAI,CAAY;QAf7B,qBAAgB,GAAG,CAAC,CAAC;QAErB,UAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5B,WAAM,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAM5B,UAAK,GAAG,KAAK,CAAC;QACd,cAAS,GAAG,CAAC,CAAC;QA4Cf,eAAU,GAAe,UAAU,CAAC,EAAE,CAAC;QAGvC,aAAQ,GAAmC,IAAI,YAAY,EAAE,CAAC;QAG9D,SAAI,GAAqC,IAAI,YAAY,EAAE,CAAC;QAyC5D,aAAQ,GAAG,CAAC,CAAC;QAyEZ,qBAAgB,GAAG,CAAC,KAAa;YACtC,IAAI,CAAC,KAAK,EAAE;gBACT,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC;aACnD;iBAAM;gBACJ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO;oBAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,OAAO,CAAC,EAAE,EAAE,CAAW,CAAC;oBAC/G,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;iBACjE,CAAC,CAAC;aACL;SACH,CAAA;KAvKI;IAEL,IAAW,KAAK;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;KACrB;IAED,IAAW,KAAK,CAAC,KAAyB;QACvC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KAC7B;IAEM,UAAU,CAAC,KAAyB;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,MAAM,EAAE;gBACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;SACH;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACtC;KACH;IAEM,gBAAgB,CAAC,QAA6C;QAClE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC5B;IAEM,iBAAiB,CAAC,SAA8C;QACpE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC9B;IAkBM,UAAU,CAAC,KAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAClD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACZ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACpB;SACH;KACH;IAEM,QAAQ;;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1D,UAAI,IAAI,CAAC,SAAS,0CAAE,MAAM,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3F;aAAM;YACJ,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SAClC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK;YACrC,IAAI,CAAC,KAAK,GAAG;gBACV,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBACxB,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;gBAC1B,QAAQ,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE;gBACrB,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;aACjD,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,EAAE;gBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B;SACH,CAAC,CAAC;KACL;IAMM,SAAS,CAAC,KAAoB;QAClC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;gBACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAChC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACpB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;SACrB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,SAAS,EAAE,CAAC;SACnB;KACH;IAED,IAAW,IAAI;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;KACpB;IAED,IAAW,IAAI,CAAC,IAAa;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,IAAI,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACxC;KACH;IAEM,YAAY,CAAC,OAAyB;QAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACxC;IAEM,aAAa;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAC3B;IAEM,iBAAiB;QACrB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACpB;IAEM,OAAO;;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,QAAC,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM;kBAC5F,IAAI,CAAC,CAAC,CAAC;kBACP,IAAI,CAAC,CAAC,CAAC,CAAC;SACf;aAAM;YACJ,OAAO,IAAI,CAAC;SACd;KACH;IAEM,cAAc;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACrC;IAEO,0BAA0B;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACvC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAyB,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAEpG,OAAO,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;KACvE;IAaO,SAAS;QACd,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;YAC7B,OAAO;SACT;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,UAAU,GAAQ,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1D,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACzC;KACH;IAEO,WAAW;QAChB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1D,OAAO;SACT;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,UAAU,GAAQ,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE;YAC/D,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACzC;KACH;IAEO,UAAU,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC;QAET,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;kBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;kBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SACxC;aAAM;YACJ,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;SACvC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACzB,IAAI,UAAU,EAAE;oBACb,MAAM,IAAI,QAAQ,UAAU,IAAI,CAAC;oBACjC,OAAO,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC5B,UAAU,GAAG,CAAC,CAAC;iBACjB;gBAED,IAAI,KAAK,KAAK,IAAI,EAAE;oBACjB,OAAO,IAAI,KAAK,CAAC;iBACnB;aACH;iBAAM;gBACJ,UAAU,EAAE,CAAC;aACf;SACH;QAED,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;KAC/D;CACH,CAAA;;YAhPiD,yBAAyB;YACzC,gBAAgB;YACrB,UAAU;;AAoCpC;IADC,KAAK,EAAE;8DACmB;AAG3B;IADC,KAAK,EAAE;+DACsC;AAG9C;IADC,MAAM,EAAE;6DAC4D;AAGrE;IADC,MAAM,EAAE;yDAC0D;AAGnE;IADC,SAAS,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;+DACZ;AAG9B;IADC,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;6DAO1C;AA6BD;IADC,WAAW,CAAC,eAAe,CAAC;6DACT;AAGpB;IADC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;4DAenC;AAzHS,2BAA2B;IAVvC,SAAS,CAAC;QACR,QAAQ,EAAE,wBAAwB;QAClC,svDAAoD;QAEpD,SAAS,EAAE,CAAC;gBACT,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA2B,CAAC;gBAC1D,KAAK,EAAE,IAAI;aACb,CAAC;;KACJ,CAAC;GACW,2BAA2B,CAgQvC;;IC9PY,wBAAwB,GAArC,MAAa,wBAAwB;CAAI,CAAA;AAA5B,wBAAwB;IAXpC,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZ,eAAe;YACf,mBAAmB;YACnB,aAAa,CAAC,OAAO,EAAE;SACzB;QACD,YAAY,EAAE,CAAC,2BAA2B,CAAC;QAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;QACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;KACxC,CAAC;GACW,wBAAwB,CAAI;;ICrB7B,SA0BX;AA1BD,WAAY,SAAS;IACjB,0CAA6B,CAAA;IAC7B,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,4CAA+B,CAAA;IAE/B,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,0BAAa,CAAA;IAEb,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IAEjB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IAErB,8BAAiB,CAAA;AACrB,CAAC,EA1BW,SAAS,KAAT,SAAS,QA0BpB;;MC1BY,SAAS;IAMlB,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAa;QACtD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;CACJ;;MCUqB,KAAK;IAkBvB,YAAY,MAAmB;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;KAC7C;CACJ;;MCxCY,iBAAkB,SAAQ,KAAK;IAexC,YAAY,MAA+B;QACvC,KAAK,CAAC,gCAAK,MAAM,KAAE,IAAI,EAAE,SAAS,CAAC,YAAY,GAA6B,CAAC,CAAC;QAT3E,gBAAW,GAAU,EAAE,CAAC;QAU3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;KACzF;CACJ;;MCzBY,qBAAqB;IAyB9B,YAAY,SAAiC,EAAE;QAxBxC,eAAU,GAAG,IAAI,CAAC;QAClB,eAAU,GAAG,UAAU,CAAC;QACxB,mBAAc,GAAG,CAAC,CAAC;QACnB,UAAK,GAAG,MAAM,CAAC;QACf,UAAK,GAAG,QAAQ,CAAC;QACjB,aAAQ,GAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5F,kBAAa,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5E,gBAAW,GAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5D,oBAAe,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjH,eAAU,GAAa;YAC1B,SAAS;YACT,WAAW;YACX,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;YACR,UAAU;YACV,SAAS;YACT,UAAU;YACV,UAAU;SACb,CAAC;QAGE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC9E;CACJ;;MCnCY,mBAAmB;IAK5B,YAAY,SAA+B,EAAE;QAJtC,uBAAkB,GAAG,GAAG,CAAC;QACzB,qBAAgB,GAAG,GAAG,CAAC;QACvB,mBAAc,GAAG,IAAI,CAAC;QAGzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC/B;CACJ;;MCNY,aAAa;IAItB,YAAY,SAAyB,EAAE;QAHvC,aAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACvC,WAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAG/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC9E;CACJ;AAED;;;AAGA,MAAa,+BAA+B,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAE3E;;;AAGA,MAAa,6BAA6B,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAEvE;;;AAGA,MAAa,sBAAsB,GAAG,IAAI,aAAa,EAAE;;ACrBzD,MAAM,MAAM,GAAG,OAAO,CAAC;AAGvB,IAAa,aAAa,GAA1B,MAAa,aAAa;IAMtB,YACY,IAAgB,EAChB,aAA4B;QAD5B,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAe;QALhC,yBAAoB,GAAG,2CAA2C,CAAC;QACnE,yBAAoB,GAAG,OAAO,CAAC;KAKlC;IAEL,GAAG;QACC,OAAO,IAAI,CAAC,aAAa;cACnB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;cACtB,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAA4B,MAAM,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;KAClH;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM;cACZ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;cACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,QAAa;gBACd,IAAI,CAAC,MAAM,GAAW,QAAQ,CAAC,MAAM,IAAY,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC;gBAClF,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB,CAAC,CACL,CAAC;KACX;IAEO,WAAW;QACf,IAAI;YACA,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;SACrE;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7B;KACJ;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CACxB,SAAS,CAAC,CAAC,MAAc;YACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEtB,OAAO,IAAI,CAAC,IAAI;iBACX,GAAG,CAAiB,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,IAAI,MAAM,OAAO,CAAC;iBAC/F,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC3D,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ;YAChB,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;SAClC,CAAC,CACL,CAAC;KACL;CACJ,CAAA;;YA7CqB,UAAU;YACD,aAAa;;AAR/B,aAAa;IADzB,UAAU,EAAE;GACA,aAAa,CAoDzB;;ICtDY,sBAAsB,GAAnC,MAAa,sBAAsB;IAC/B,YACY,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KACpC;IAEG,SAAS,CAAC,KAAW,EAAE,OAAoB;QAC9C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KAC7F;IAEO,SAAS,CAAC,KAAW,EAAE,OAAoB;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAChC,GAAG,CAAC,YAAY;;YACZ,MAAM,OAAO,GAAe;gBACxB,MAAM,cAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,yCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAE,cAAc,mCAAI,IAAI;gBACvE,kBAAkB,cAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,yCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAE,kBAAkB,mCAAI,GAAG;gBAClG,gBAAgB,cAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,yCAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAE,gBAAgB,mCAAI,GAAG;gBAC5F,KAAK,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,CAAC;gBAC1B,aAAa,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,IAAI;aAChD,CAAC;YACF,MAAM,QAAQ,GAAG,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC9C,CAAC,CACL,CAAC;KACL;CACJ,CAAA;;YAtB8B,aAAa;;AAF/B,sBAAsB;IAHlC,IAAI,CAAC;QACF,IAAI,EAAE,oBAAoB;KAC7B,CAAC;GACW,sBAAsB,CAwBlC;;IC1BY,4BAA4B,GAAzC,MAAa,4BAA6B,SAAQ,sBAAsB;IAC7D,SAAS,CAAC,KAAW,EAAE,OAAoB;QAC9C,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC1C;CACJ,CAAA;AAJY,4BAA4B;IAJxC,IAAI,CAAC;QACF,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,KAAK;KACd,CAAC;GACW,4BAA4B,CAIxC;;MCFY,4BAA6B,SAAQ,mBAAmB;IAGjE,YAAY,SAAwC,EAAE;QAClD,KAAK,CAAC,MAAM,CAAC,CAAC;QAHX,UAAK,GAAG,CAAC,CAAC;KAIhB;CACJ;AAED;;;AAMA,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAC9B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KAAI;IAE7C,SAAS,CAAC,KAAW,EAAE,OAAsC;QAChE,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;SAChD;QACD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KAC7F;IAEO,SAAS,CAAC,KAAU,EAAE,OAAqC;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAChC,GAAG,CAAC,YAAY;YACZ,MAAM,MAAM,mCAAQ,YAAY,CAAC,MAAM,GAAK,OAAO,CAAE,CAAC;YACtD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;YAE/E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,WAAW,GACb,WAAW;iBACN,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;iBACpC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;iBACnB,OAAO,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,IAAI,GAAG,CAAC;YACrE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,KAAK,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC;YACpF,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;YAC9D,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,EAAE,CAAC;SACpD,CAAC,CACL,CAAC;KACL;CACJ,CAAA;;YA9BsC,aAAa;;AADvC,qBAAqB;IAHjC,IAAI,CAAC;QACF,IAAI,EAAE,mBAAmB;KAC5B,CAAC;GACW,qBAAqB,CA+BjC;;ACpDD;;;AAOA,IAAa,2BAA2B,GAAxC,MAAa,2BAA4B,SAAQ,qBAAqB;IAC3D,SAAS,CAAC,KAAW,EAAE,UAAwC,IAAI,4BAA4B,EAAE;QACpG,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC1C;CACJ,CAAA;AAJY,2BAA2B;IAJvC,IAAI,CAAC;QACF,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,KAAK;KACd,CAAC;GACW,2BAA2B,CAIvC;;ACRD,MAAMG,QAAM,GAAG,OAAO,CAAC;AAKvB,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KAAI;IAE7C,SAAS,CAAC,KAAU,EAAE,SAAiB,OAAO;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACnG;CACJ,CAAA;;YALsC,aAAa;;AADvC,iBAAiB;IAH7B,IAAI,CAAC;QACF,IAAI,EAAE,eAAe;KACxB,CAAC;GACW,iBAAiB,CAM7B;;ICVY,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,iBAAiB;CAA4B,CAAA;AAA7E,uBAAuB;IAJnC,IAAI,CAAC;QACF,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,KAAK;KACd,CAAC;GACW,uBAAuB,CAAsD;;ACF1F;;;AAIA,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC5B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KAAI;IAEpD,SAAS,CAAC,KAAsB,EAAE,qBAA8B;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,MAAc;YACf,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC;gBAAE,OAAO;YAE1C,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjC,qBAAqB,EAAE,qBAAqB,IAAI,CAAC;aACpD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5B,CAAC,CACL,CAAC;KACL;CACJ,CAAA;;YAfsC,aAAa;;AADvC,mBAAmB;IAD/B,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;GACrB,mBAAmB,CAgB/B;;ACnBD,MAAMA,QAAM,GAAG,OAAO,CAAC;AAKvB,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KAAI;IAE7C,SAAS,CAAC,KAAU,EAAE,SAAiB,KAAK;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,GAAGA,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC/G;CACJ,CAAA;;YALsC,aAAa;;AADvC,iBAAiB;IAH7B,IAAI,CAAC;QACF,IAAI,EAAE,eAAe;KACxB,CAAC;GACW,iBAAiB,CAM7B;;ICVY,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,iBAAiB;CAA4B,CAAA;AAA7E,uBAAuB;IAJnC,IAAI,CAAC;QACF,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,KAAK;KACd,CAAC;GACW,uBAAuB,CAAsD;;;ICgC7E,YAAY,oBAAzB,MAAa,YAAY;IACd,OAAO,OAAO;QACjB,OAAO;YACH,QAAQ,EAAE,cAAY;YACtB,SAAS,EAAE;gBACP,aAAa;gBACb,qBAAqB;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,mBAAmB;gBACnB,2BAA2B;gBAC3B,uBAAuB;gBACvB,uBAAuB;gBACvB,sBAAsB;gBACtB,4BAA4B;aAC/B;SACJ,CAAC;KACL;IAEM,OAAO,QAAQ;QAClB,OAAO;YACH,QAAQ,EAAE,cAAY;SACzB,CAAC;KACL;CACJ,CAAA;AAxBY,YAAY;IAzBxB,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,OAAO,EAAE;YACL,qBAAqB;YACrB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,2BAA2B;YAC3B,uBAAuB;YACvB,uBAAuB;YACvB,sBAAsB;YACtB,4BAA4B;SAC/B;QACD,YAAY,EAAE;YACV,qBAAqB;YACrB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,2BAA2B;YAC3B,uBAAuB;YACvB,uBAAuB;YACvB,sBAAsB;YACtB,4BAA4B;SAC/B;KACJ,CAAC;GACW,YAAY,CAwBxB;;MC1CY,cAAe,SAAQ,KAAK;IAgBrC,YAAY,MAA4B;;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,aAAa,SAAG,MAAM,CAAC,aAAa,mCAAI,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACnF,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,SAAG,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,SAAG,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC;KAC7C;CACJ;;MClCY,SAAU,SAAQ,KAAK;IAchC,YAAY,MAAuB;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;KACvD;CACJ;;MCxCY,mBAAmB;IAM5B,YAAY,MAAiC;QACzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;CACJ;AAUD,MAAa,YAAa,SAAQ,KAAK;IAOnC,YAAY,MAA0B;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;CACJ;;MCvCY,kBAAmB,SAAQ,KAAK;IAGzC,YAAY,MAAgC;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,MAAM,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;KACjC;CACJ;;MCOY,aAAc,SAAQ,KAAK;IAqBpC,YAAY,MAA2B;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QACvF,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;QAGtC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAC7D,QAAQ,IAAI,CAAC,IAAI;gBACb,KAAK,SAAS,CAAC,QAAQ,CAAC;gBACxB,KAAK,SAAS,CAAC,aAAa,CAAC;gBAC7B,KAAK,SAAS,CAAC,IAAI;oBACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,MAAM;aACb;SACJ;KACJ;CACJ;;MCrEY,UAAW,SAAQ,KAAK;IAQjC,YAAY,MAAwB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KAC/B;CACJ;;;ACxBD;;;AAGA,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,wCAAe,CAAA;IACf,sCAAa,CAAA;AACjB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAED;;;AAaA,IAAa,oBAAoB,4BAAjC,MAAa,oBAAqB,SAAQ,qBAAqB;IAA/D;;QAEW,cAAS,GAAG,EAAE,CAAC;QAGf,UAAK,GAAG,CAAC,CAAC;QAGV,qBAAgB,GAAG,GAAG,CAAC;QAGvB,uBAAkB,GAAG,GAAG,CAAC;QAGzB,YAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC;QAGrC,kBAAa,GAAG,IAAI,CAAC;QASpB,UAAK,GAAW,IAAI,CAAC;KAsEhC;IApEU,QAAQ;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpB;IAEM,WAAW,CAAC,OAAsB;QACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;QAClF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAElH,IACI,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,kBAAkB;YAC1B,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,aAAa,EACvB;YACE,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;KACJ;;;;IAKO,eAAe;QACnB,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,SAAS,EAAE,IAAI,CAAC,kBAAkB;YAClC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;YAC1B,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;;;;IAKO,kBAAkB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAEpD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QACjE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QAEhG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;;;;;IAMM,cAAc,CAAC,KAAoB;QACtC,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAEtB,IACI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACpB,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;YAE3C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;KAC/B;CACJ,CAAA;AA9FG;IADC,KAAK,EAAE;uDACc;AAGtB;IADC,KAAK,EAAE;mDACS;AAGjB;IADC,KAAK,EAAE;8DACsB;AAG9B;IADC,KAAK,EAAE;gEACwB;AAGhC;IADC,KAAK,EAAE;qDACoC;AAG5C;IADC,KAAK,EAAE;2DACoB;AAI5B;IAFC,KAAK,EAAE;IACP,WAAW,CAAC,kBAAkB,CAAC;yDACL;AAG3B;IADC,WAAW,CAAC,gBAAgB,CAAC;uDACL;AAxBhB,oBAAoB;IAVhC,SAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAoB,CAAC;gBACnD,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GACW,oBAAoB,CAgGhC;;ACpHD;;;AAQA,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAL7B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KAClC,CAAC;GACW,iBAAiB,CAAG;;ACUjC;;;AAGA,MAAa,WAAY,SAAQ,KAAK;IAalC,YAAY,MAAyB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACnF,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;CACJ;;AC1CD;;;AAGA,MAAa,YAAa,SAAQ,WAAW;IAGzC,YAAY,MAA0B;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;KACtE;CACJ;;ACnBD;;;AAGA,MAAa,aAAc,SAAQ,YAAY;IAC3C,YAAY,MAA0B;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;KACtF;CACJ;;MCwBY,WAAY,SAAQ,KAAK;IA+ClC,YAAY,MAAyB;QACjC,KAAK,CAAC,gCAAK,MAAM,KAAE,IAAI,EAAE,SAAS,CAAC,MAAM,GAAuB,CAAC,CAAC;QA/C/D,aAAQ,GAAG,KAAK,CAAC;QAQjB,gBAAW,GAAG,mBAAmB,CAAC;QAClC,qBAAgB,GAAG,4BAA4B,CAAC;QAChD,gBAAW,GAAG,SAAS,CAAC;QACxB,gBAAW,GAAG,SAAS,CAAC;QACxB,eAAU,GAAG,QAAQ,CAAC;QACtB,gBAAW,GAAG,UAAU,CAAC;QACzB,gBAAW,GAAG,YAAY,CAAC;QAC3B,gBAAW,GAAG,WAAW,CAAC;QAC1B,iBAAY,GAAG,YAAY,CAAC;QAC5B,oBAAe,GAAG,eAAe,CAAC;QAGlC,+BAA0B,GAAG,IAAI,CAAC;QAWlC,aAAQ,GAAG,CAAC,KAAU,QAAO,CAAC;QAC9B,eAAU,GAAG,CAAC,KAAU,QAAO,CAAC;QAgBnC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE5B,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE;YAC/F,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,wBAAwB,GAAG,uBAAuB,CAAC;SAC3D,CAAC,CAAC;KACN;IAtBD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;IAED,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;CAaJ;;MC5FY,kBAAkB;IAI3B,YAAY,MAA0B;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;CACJ;AAWD,MAAa,gBAAiB,SAAQ,KAAK;IAQvC,YAAY,MAA8B;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;CACJ;;MCvBY,WAAY,SAAQ,KAAK;IAYlC,YAAY,MAAyB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,4BAA4B,CAAC;QAC1F,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;KAC3C;CACJ;AAED,MAAa,YAAY;IAIrB,YAAY,MAAoB;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;CACJ;;MCzCY,aAAc,SAAQ,KAAK;IAMpC,YAAY,MAA2B;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;CACJ;;MCJY,SAAU,SAAQ,KAAK;IAchC,YAAY,MAAuB;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;CACJ;;MC5BY,aAAc,SAAQ,KAAK;IAcpC,YAAY,MAA2B;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;CACJ;;MC/BY,WAAY,SAAQ,KAAK;IAgBlC,YAAY,MAAyB;;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHD,eAAU,GAAG,GAAG,CAAC;QAI9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,SAAG,MAAM,CAAC,KAAK,mCAAI,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,SAAG,MAAM,CAAC,GAAG,mCAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,SAAG,MAAM,CAAC,GAAG,mCAAI,IAAI,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,WAAW,SAAG,MAAM,CAAC,WAAW,mCAAI,YAAY,CAAC;QACtD,IAAI,CAAC,IAAI,SAAG,MAAM,CAAC,IAAI,mCAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,SAAG,MAAM,CAAC,OAAO,mCAAI,KAAK,CAAC;QACvC,IAAI,CAAC,QAAQ,SAAG,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,cAAc,SAAG,MAAM,CAAC,cAAc,mCAAI,KAAK,CAAC;KACxD;CACJ;;MCrBY,SAAS;IAuJlB,YAAY,MAAW;QACnB,QAAQ,MAAM,CAAC,IAAI;YACf,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,YAAY;gBACvB,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,OAAO;gBAClB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,QAAQ;gBACnB,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,OAAO;gBAClB,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE;oBACnC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBACzC;gBACD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,aAAa,CAAC;YAC7B,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,MAAM;gBACjB,MAAM,EAAE,gBAAgB,KAAsB,MAAM,EAA1B,mDAA0B,CAAC;gBACrD,OAAO,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACjD;KACJ;CACJ;AAED,MAAa,MAAM;IAIf,YAAY,KAAa,EAAE,KAAU;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;CACJ;;;IC5JY,eAAe,uBAA5B,MAAa,eAAe;IAwJxB,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAjJpD,OAAE,GAAG,YAAY,iBAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAG5C,+BAA0B,GAAG,IAAI,CAAC;QAYlC,aAAQ,GAAG,KAAK,CAAC;QAGjB,eAAU,GAAG,IAAI,CAAC;QAelB,mBAAc,GAAG,MAAM,CAAC;QAGxB,gBAAW,GAAG,mBAAmB,CAAC;QAGlC,qBAAgB,GAAG,4BAA4B,CAAC;QAYhD,iBAAY,GAAgB,EAAE,CAAC;QAS/B,gBAAW,GAAG,SAAS,CAAC;QAGxB,gBAAW,GAAG,SAAS,CAAC;QAGxB,eAAU,GAAG,QAAQ,CAAC;QAGtB,gBAAW,GAAG,UAAU,CAAC;QAGzB,gBAAW,GAAG,YAAY,CAAC;QAG3B,oBAAe,GAAG,eAAe,CAAC;QAGlC,gBAAW,GAAG,WAAW,CAAC;QAG1B,iBAAY,GAAG,YAAY,CAAC;QAkB5B,oBAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGxD,oBAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGxD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGhD,WAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;QAG/C,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGhD,aAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGjD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGnD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAchD,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAU,EAAE,CAAC;QAErB,sBAAiB,GAAG,sCAAsC,CAAC;QAI1D,uBAAkB,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAEiB;IAEzD,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,mBAAM,IAAI,EAAG,CAAC,CAAC;SACrF;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CACrC,CAAC,KAAgB,KAAK,IAAI,SAAS,iCAC5B,KAAK,KACR,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAC1C,CACL,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAoB;YACnE,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEvD,MAAM,eAAe,GAAG,IAAI,qBAAqB,mBAAM,SAAS,CAAC,qBAAqB,EAAG,CAAC;YAE1F,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,EAAE;gBAC7B,QAAQ,SAAS,CAAC,IAAI;oBAClB,KAAK,SAAS,CAAC,IAAI;wBACf,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;wBACzF,MAAM;oBACV,KAAK,SAAS,CAAC,IAAI;wBACf,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,CACxD,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,UAAU,CAC7B,CAAC;wBACF,MAAM;iBACb;gBACD,SAAS,CAAC,qBAAqB,GAAG,eAAe,CAAC;aACrD;YAED,OAAO,SAAS,CAAC;SACpB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,KAAK;YAC1D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;YACzD,OAAO,MAAM,CAAC;SACjB,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC7B,OAAO;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAE/B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,YAAY,IAAI,KAAK;gBAAE,OAAO;YAEpE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B,CAAC,CAAC;KACN;IAEM,oBAAoB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,KAAK,CAAC;cACrC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;cACxB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,GAAG,GAAG,IAAI,CAAC,kBAAkB,IAAI,KAAK,EAAE,CAAC;KAC9G;IAEO,0BAA0B,CAAC,UAAkB,EAAE,MAAc;QACjE,IAAI,MAAM,KAAK,UAAU,EAAE;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,UAAU,KAAK,IAAI,EAAE;YACrB,OAAO,MAAM;iBACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;iBACrB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChC;QAED,IAAI,UAAU,KAAK,IAAI,EAAE;YACrB,OAAO,MAAM;iBACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;iBACrB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChC;QAED,OAAO,MAAM,CAAC;KACjB;IAEO,0BAA0B,CAAC,MAAc;;QAE7C,OAAO,MAAM;aACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;aACvB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;aACzB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;aACzB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;aACvB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aACtB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAClC;IAEM,eAAe;QAClB,IAAI,CAAC,YAAY,CAAC,sBAAsB,GAAG,CAAC,KAAK,QAAQ,CAAC;KAC7D;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE;YAC9C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAEM,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;IAES,uBAAuB,CAAC,KAAU;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,MAAM,mCAAQ,KAAK,KAAE,UAAU,EAAE,OAAO,GAAE,CAAC;QACjD,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QAEzD,OAAO,MAAM,CAAC;KACjB;IAEM,YAAY,CAAC,KAAU;;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;IAEM,cAAc,CAAC,KAAU;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1C;IAEM,iBAAiB;QACpB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,IAAI,CAAC,aAAa;aACb,MAAM,CACH,CAAC,EAAE,KAAK,EAAE,KACN,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAC/C;aACA,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;YACtB,IAAI,CAAC,eAAe;iBACf,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;iBACZ,UAAU,CAAC,KAAK,YAAY,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;SAChE,CAAC,CAAC;KACV;IAEM,UAAU;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YACnB,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7B;IAEM,UAAU;QACb,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,QAAQ;YAAE,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;;YACjD,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;IAEM,MAAM;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;KAC3B;IAEM,KAAK;QACR,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAES,UAAU;QAChB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;KACtB;IAEM,MAAM;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEM,iBAAiB,CAAC,QAAa;QAClC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;YACjD,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;KACnC;IAEM,gBAAgB,CAAC,EAAY;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAQ;YACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,EAAE,CAAC,GAAG,CAAC,CAAC;SACX,CAAC;KACL;IAEM,iBAAiB,CAAC,EAAY;QACjC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;IAEM,UAAU,CAAC,KAAU;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAEM,gBAAgB,CAAC,QAAiB;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAEM,aAAa,CAAC,GAAQ,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC1G;IAEM,gBAAgB,CAAC,KAAU,EAAE,OAAwC;QACxE,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACxD,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;KACxC;IAEM,cAAc,CAAC,GAAQ,EAAE,IAAY;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;;YAC9C,OAAO,KAAK,CAAC;KACrB;IAEM,eAAe,CAAC,GAAQ,EAAE,IAAY,EAAE,YAAiC;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;aACxC,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC;;YAC/C,OAAO,IAAI,CAAC,eAAe,CAAC;KACpC;IAEM,QAAQ,CAAC,GAAQ,EAAE,IAAY;QAClC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAClE;IAEM,UAAU;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,CAAC,MAAc,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9E;IAEO,SAAS,CAAC,KAAa,EAAE,EAAY;QACzC,OAAO,IAAI,MAAM,CACb,KAAK,EACL;YACI,EAAE,EAAE,CAAC;YACL,OAAO,KAAK,CAAC;SAChB,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAClC,CAAC;KACL;IAEM,YAAY;QACf,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACpC;IAEM,YAAY;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;;;;;IAMM,WAAW,CAAC,KAAa;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,IAAI,GAAG,MAAM;YAAE,OAAO,UAAU,CAAC;QACrC,OAAO,GAAG,IAAI,IAAI,CAAC;KACtB;IAEM,QAAQ,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;KACnD;IAEO,UAAU,CAAC,KAAU;QACzB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;IAEM,oBAAoB,CAAC,GAAyB;;QACjD,OAAO;YACH,KAAK,EAAE,CAAC;YACR,kBAAkB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,kBAAkB;YAC/D,MAAM,EAAE,EAAE;SACb,CAAC;KACL;IAEM,mBAAmB,CAAC,GAAyB;;QAChD,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,gBAAgB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,gBAAgB;YAC3D,kBAAkB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,kBAAkB;YAC/D,MAAM,EAAE,EAAE;SACb,CAAA;KACJ;IAEM,kBAAkB,CAAC,GAAyB;;QAC/C,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,gBAAgB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,gBAAgB;YAC3D,kBAAkB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,kBAAkB;YAC/D,MAAM,QAAE,GAAG,CAAC,mBAAmB,0CAAE,cAAc;SAClD,CAAA;KACJ;IAEM,mBAAmB,CAAC,GAAyB;;QAChD,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,gBAAgB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,gBAAgB;YAC3D,kBAAkB,QAAE,GAAG,CAAC,mBAAmB,0CAAE,kBAAkB;YAC/D,MAAM,QAAE,GAAG,CAAC,mBAAmB,0CAAE,cAAc;SAClD,CAAC;KACL;IAEM,qBAAqB,CAAC,OAAY;QACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEO,eAAe;;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACvC,MAAM,KAAK,qBAAG,IAAI,CAAC,MAAM,0CAAE,gBAAgB,0CAAE,aAAa,0CAAE,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAE7F,IAAI,KAAK,EAAE;gBACN,KAA0B,CAAC,KAAK,EAAE,CAAC;aACvC;SACJ;KACJ;CACJ,CAAA;AAhhBiB,sBAAM,GAAG,CAAC,CAAC;;YAuJoB,cAAc;;AApJ3D;IADC,KAAK,EAAE;wDACuB;AAG/B;IADC,KAAK,EAAE;2CAC2C;AAGnD;IADC,KAAK,EAAE;mEACiC;AAGzC;IADC,KAAK,EAAE;iDACiB;AAGzB;IADC,KAAK,EAAE;gDACe;AAGvB;IADC,KAAK,EAAE;iDACiB;AAGzB;IADC,KAAK,EAAE;iDACgB;AAGxB;IADC,KAAK,EAAE;mDACiB;AAGzB;IADC,KAAK,EAAE;0DACwB;AAGhC;IADC,KAAK,EAAE;2DAC0B;AAGlC;IADC,KAAK,EAAE;kEACkC;AAG1C;IADC,KAAK,EAAE;2DAC0B;AAGlC;IADC,KAAK,EAAE;uDACuB;AAG/B;IADC,KAAK,EAAE;oDACiC;AAGzC;IADC,KAAK,EAAE;yDAC+C;AAGvD;IADC,KAAK,EAAE;+DAC8B;AAGtC;IADC,KAAK,EAAE;uDACqB;AAG7B;IADC,KAAK,EAAE;2DAC0B;AAGlC;IADC,KAAK,EAAE;qDAC8B;AAGtC;IADC,KAAK,EAAE;yDAC6B;AAGrC;IADC,KAAK,EAAE;sDACyB;AAGjC;IADC,KAAK,EAAE;oDACuB;AAG/B;IADC,KAAK,EAAE;oDACuB;AAG/B;IADC,KAAK,EAAE;mDACqB;AAG7B;IADC,KAAK,EAAE;oDACwB;AAGhC;IADC,KAAK,EAAE;oDAC0B;AAGlC;IADC,KAAK,EAAE;wDACiC;AAGzC;IADC,KAAK,EAAE;oDACyB;AAGjC;IADC,KAAK,EAAE;qDAC2B;AAGnC;IADC,KAAK,EAAE;oDACmB;AAG3B;IADC,KAAK,EAAE;gEAC+B;AAGvC;IADC,KAAK,EAAE;gEACiC;AAGzC;IADC,KAAK,EAAE;uDACwB;AAGhC;IADC,KAAK,EAAE;sDAC8B;AAGtC;IADC,MAAM,EAAE;wDACsD;AAG/D;IADC,MAAM,EAAE;wDACsD;AAG/D;IADC,MAAM,EAAE;gDAC8C;AAGvD;IADC,MAAM,EAAE;+CAC6C;AAGtD;IADC,MAAM,EAAE;gDAC8C;AAGvD;IADC,MAAM,EAAE;iDAC+C;AAGxD;IADC,MAAM,EAAE;mDACiD;AAG1D;IADC,MAAM,EAAE;gDAC8C;AAGvD;IADC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;8CAChB;AAGpB;IADC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;+CACf;AAGtB;IADC,SAAS,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;qDACT;AAxIzB,eAAe;IA9C3B,SAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,8zeAAsC;QAEtC,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAe,CAAC;gBAC9C,KAAK,EAAE,IAAI;aACd;SACJ;QACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;QACrC,UAAU,EAAE;YACR,OAAO,CAAC,iBAAiB,EAAE;gBACvB,KAAK,CACD,QAAQ,EACRH,OAAK,CAAC;oBACF,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,CAAC;iBACb,CAAC,CACL;gBACD,KAAK,CACD,SAAS,EACTA,OAAK,CAAC;oBACF,KAAK,EAAE,GAAG;iBACb,CAAC,CACL;gBACD,UAAU,CAAC,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/H,CAAC;YACF,OAAO,CAAC,sBAAsB,EAAE;gBAC5B,KAAK,CACD,QAAQ,EACRA,OAAK,CAAC;oBACF,OAAO,EAAE,CAAC;iBACb,CAAC,CACL;gBACD,KAAK,CACD,QAAQ,EACRA,OAAK,CAAC;oBACF,OAAO,EAAE,CAAC;iBACb,CAAC,CACL;gBACD,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;aACzD,CAAC;SACL;;KACJ,CAAC;GACW,eAAe,CAihB3B;;MC5jBY,kBAAkB;IACpB,UAAU,CAAC,KAAU;QACxB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;IAEM,OAAO,CAAC,QAAa;QACxB,OAAO,QAAQ,EAAE,CAAC;KACrB;CACJ;;IC3CW,WAuBX;AAvBD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,8CAA+B,CAAA;IAC/B,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACrB,CAAC,EAvBW,WAAW,KAAX,WAAW,QAuBtB;;MCfY,IAAI;IAIb,YAAY,MAAkB;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAO,MAAM,EAAG,CAAC;KACtC;CACJ;;MCXY,GAAI,SAAQ,IAAI;IAIzB,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;KACjB;CACJ;;MCFqB,SAAS;IAK3B,YAAY,MAAuB;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAO,MAAM,EAAG,CAAC;KACtC;CACJ;;MCVY,QAAS,SAAQ,SAAS;IAInC,YAAY,MAAsB;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,oBAAO,MAAM,EAAG,CAAC;KACtC;CACJ;;MCbY,OAAQ,SAAQ,SAAS;IAClC,YAAY,MAAuB;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;KACjB;CACJ;;MCgBY,aAAa;IACtB,YAAY,MAAW;QACnB,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QACvC,QAAQ,IAAI;YACR,KAAK,WAAW,CAAC,YAAY;gBACzB,OAAO,IAAI,iBAAiB,CAAC,MAAiC,CAAC,CAAC;YACpE,KAAK,WAAW,CAAC,MAAM,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;gBACnB,OAAO,IAAI,SAAS,CAAC,MAAyB,CAAC,CAAC;YACpD,KAAK,WAAW,CAAC,QAAQ;gBACrB,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;YAC5D,KAAK,WAAW,CAAC,OAAO;gBACpB,IAAI,aAAa,KAAK,QAAQ,EAAE;oBAC5B,OAAO,IAAI,kBAAkB,CAAC,MAAkC,CAAC,CAAC;iBACrE;gBACD,OAAO,IAAI,YAAY,CAAC,MAA4B,CAAC,CAAC;YAC1D,KAAK,WAAW,CAAC,KAAK;gBAClB,OAAO,IAAI,UAAU,CAAC,MAA0B,CAAC,CAAC;YACtD,KAAK,WAAW,CAAC,IAAI,CAAC;YACtB,KAAK,WAAW,CAAC,QAAQ,CAAC;YAC1B,KAAK,WAAW,CAAC,aAAa,CAAC;YAC/B,KAAK,WAAW,CAAC,IAAI;gBACjB,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;YAC5D,KAAK,WAAW,CAAC,MAAM;gBACnB,OAAO,IAAI,YAAY,CAAC,MAA4B,CAAC,CAAC;YAC1D,KAAK,WAAW,CAAC,IAAI;gBACjB,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,QAAQ;gBACrB,OAAO,IAAI,QAAQ,CAAC,MAAwB,CAAC,CAAC;YAClD,KAAK,WAAW,CAAC,OAAO;gBACpB,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,MAAM;gBACnB,OAAO,IAAI,cAAc,CAAC,MAA8B,CAAC,CAAC;YAC9D,KAAK,WAAW,CAAC,MAAM;gBACnB,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,KAAK;gBAClB,OAAO,IAAI,aAAa,CAAC,MAA4B,CAAC,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;gBAClB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,WAAW,CAAC,GAAG;gBAChB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,KAAK,WAAW,CAAC,OAAO;gBACpB,OAAO,IAAI,OAAO,CAAC,MAAyB,CAAC,CAAC;YAClD,KAAK,WAAW,CAAC,MAAM;gBACnB,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,IAAI;gBACjB,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;SAC/D;KACJ;CACJ;;IC5DY,oBAAoB,GAAjC,MAAa,oBAAoB;IAAjC;QAUW,kBAAa,GAAS,EAAE,CAAC;KAGnC;CAAA,CAAA;AAXG;IADC,KAAK,EAAE;gDACU;AAElB;IADC,KAAK,EAAE;qDACwB;AAEhC;IADC,KAAK,EAAE;oDACmB;AAE3B;IADC,KAAK,EAAE;kDACe;AAEvB;IADC,KAAK,EAAE;2DACwB;AAEhC;IADC,KAAK,EAAE;iEAC2B;AAZ1B,oBAAoB;IANhC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,qeAA4C;QAE5C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,oBAAoB,CAahC;;;IChBY,mBAAmB,2BAAhC,MAAa,mBAAmB;IAAhC;QAGa,OAAE,GAAG,iBAAiB,qBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACrD,cAAS,GAAG,aAAa,CAAC;QAG1B,sBAAiB,GAAG,IAAI,CAAC;QACzB,wBAAmB,GAAG,IAAI,CAAC;QAG3B,iBAAY,GAAgB,EAAE,CAAC;QAE9B,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,oBAAe,GAAG,IAAI,YAAY,EAAE,CAAC;KAClD;CAAA,CAAA;AAdiB,0BAAM,GAAG,CAAC,CAAC;AAEhB;IAAR,KAAK,EAAE;+CAAsD;AACrD;IAAR,KAAK,EAAE;sDAA2B;AAC1B;IAAR,KAAK,EAAE;kDAAe;AACd;IAAR,KAAK,EAAE;wDAAsB;AACrB;IAAR,KAAK,EAAE;8DAA0B;AACzB;IAAR,KAAK,EAAE;gEAA4B;AAC3B;IAAR,KAAK,EAAE;+DAA6B;AAC5B;IAAR,KAAK,EAAE;iEAA+B;AAC9B;IAAR,KAAK,EAAE;yDAAgC;AAE9B;IAAT,MAAM,EAAE;0DAAoC;AACnC;IAAT,MAAM,EAAE;4DAAsC;AAdtC,mBAAmB;IAL/B,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,07BAA2C;;KAE9C,CAAC;GACW,mBAAmB,CAe/B;;ICfY,yBAAyB,GAAtC,MAAa,yBAAyB;IAQlC,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QALvC,cAAS,GAAG,4BAA4B,CAAC;KAKE;IAE7C,MAAM;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAClC;CACJ,CAAA;AAbiB,gCAAM,GAAG,CAAC,CAAC;;YAOU,aAAa;;AALvC;IAAR,KAAK,EAAE;4DAA0C;AACzC;IAAR,KAAK,EAAE;wDAAe;AACd;IAAR,KAAK,EAAE;8DAAsB;AACrB;IAAR,KAAK,EAAE;qEAA4B;AAN3B,yBAAyB;IALrC,SAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6NAAuC;KAE1C,CAAC;GACW,yBAAyB,CAcrC;;ICRY,gBAAgB,GAA7B,MAAa,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAN5B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACrC,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,YAAY,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;QAC9D,OAAO,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,CAAE;KAC7D,CAAC;GACW,gBAAgB,CAAG;;ICdpB,cAIX;AAJD,WAAY,cAAc;IACvB,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;IACjC,iEAA+C,CAAA;AAClD,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;;MCJY,WAAW,GAAG;IACvB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,QAAQ;CACnB;;MCPY,WAAW;IACpB;QACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACvD;IAEM,OAAO,QAAQ,CAAC,OAAmB,EAAE,SAAiB;QACzD,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;KACvF;IAEM,OAAO,WAAW,CAAC,OAAmB,EAAE,SAAiB;QAC5D,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACrD,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC5F;KACJ;IAEM,OAAO,SAAS,CACnB,UAA0B,EAAE,EAC5B,OAAc,EAAE,EAChB,eAAuB,GAAG,EAC1B,eAAuB,UAAU;QAEjC,IAAI,GAAG,GAAG,QAAQ,CAAC;QAEnB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS;YAC9F,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;YAE5C,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,IAAI,YAAY,CAAC;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,CAAC,MAAW;YACrB,GAAG,IAAI,IAAI,CAAC;YAEZ,OAAO,CAAC,MAAM,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS;gBAC9F,IAAI,QAAQ,CAAC;gBACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE1F,QAAQ,GAAG,WAAW;yBACjB,IAAI,EAAE;yBACN,MAAM,CAAC,CAAC,KAAa,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;yBAChE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBAC/B;qBAAM;oBACH,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC1D;gBAED,IAAI,QAAQ,IAAI,IAAI;oBAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;oBACjE,QAAQ,GAAG,EAAE,CAAC;gBAEnB,GAAG,IAAI,IAAI,QAAQ,GAAG,CAAC;gBAEvB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,IAAI,YAAY,CAAC;aACnD,CAAC,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;YACzB,IAAI,EAAE,yBAAyB;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB;YAAE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC;aAC1F;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB;iBAAM;gBACH,GAAG,GAAG,8BAA8B,GAAG,GAAG,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/B;YACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnC;KACJ;IAEO,OAAO,gBAAgB,CAAC,IAAS,EAAE,KAAU;QACjD,IAAI,IAAI,IAAI,KAAK,EAAE;YACf,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjD;gBACD,MAAM,MAAM,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;oBAC/C,IAAI,KAAK,IAAI,IAAI,EAAE;wBACf,OAAO,IAAI,CAAC;qBACf;oBACD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B;gBACD,OAAO,KAAK,CAAC;aAChB;SACJ;;YAAM,OAAO,IAAI,CAAC;KACtB;IAEO,OAAO,UAAU,CAAC,GAAQ;QAC9B,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KAC9D;CACJ;;AClGD;;;;;AAKA,SAAsB,kBAAkB,CAAC,QAAkB;;QACvD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC1B;CAAA;;ACPD;;;;;AAKA,SAAsB,kBAAkB,CAAC,QAAkB;;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KACnC;CAAA;;ACED;;;AAGA,MAAa,gBAAgB;;;;;;;IAalB,OAAa,GAAG,CAAI,GAAW,EAAE,OAAoB,EAAE;;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,kCACzC,IAAI,KACP,MAAM,EAAE,KAAK,IACf,CAAC;YAEH,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;SAC3C;KAAA;;;;;;;;IASM,OAAa,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,OAAoB,EAAE;;YACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,kCACzC,IAAI,KACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAC1B,OAAO,IACT,CAAC;YAEH,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;SAC3C;KAAA;;;;;;;IAQO,OAAa,gBAAgB,CAAC,GAAW,EAAE,cAA2B,EAAE;;YAC5E,IAAI;gBACA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACtB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAE9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;oBAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,CACvB,OAAO,GAAG,GAAG,kCAEN,WAAW,KACd,OAAO,IAEd,CAAC;oBACF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;iBACzB;gBAED,OAAO,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;aAElC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;aAC3D;SACJ;KAAA;;;;;;IAOO,OAAa,cAAc,CAAI,QAAkB;;YACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC1E,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAExE,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,oBAAoC,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACzD;KAAA;;AAtFc,sCAAqB,GAAsD,IAAI,GAAG,CAAC;IAC9F,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACxC,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;CACnD,CAAC,CAAC;;ACfP;;;AAGA,MAAa,yBAAyB;;;;;;IAU3B,OAAO,SAAS,CAAC,GAAW;;QAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,GAAG,yBAAyB,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC;QAChF,MAAM,yBAAyB,SAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAClG,aAAO,yBAAyB,CAAC,cAAc,CAAC,mCAAI,cAAc,CAAC;KACtE;;;;;IAMM,OAAO,eAAe,CAAC,YAA0B;QACpD,yBAAyB,CAAC,aAAa,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC;KAChE;;;;;IAMM,OAAO,qBAAqB,CAAC,kBAAsC;QACtE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QACvC,yBAAyB,CAAC,mBAAmB,GAAG,MAAM,CAAC;KACzD;;AA/Ba,uCAAa,GAAiB,EAAE,CAAC;AACjC,6CAAmB,GAAG,EAAE,CAAC;;;MCH/B,gCAAgC,GAAG,IAAI,cAAc,CAAqB,oBAAoB,CAAC,CAAC;AAQ7G,IAAa,uBAAuB,+BAApC,MAAa,uBAAuB;IAChC,OAAO,OAAO,CAAC,MAA0B;QACrC,OAAO;YACH,QAAQ,EAAE,yBAAuB;YACjC,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,gCAAgC;oBACzC,QAAQ,EAAE,MAAM;iBACnB;aACJ;SACJ,CAAC;KACL;CACJ,CAAA;AAZY,uBAAuB;IADnC,QAAQ,CAAC,EAAE,CAAC;GACA,uBAAuB,CAYnC;;ACjBD;;;;AAKA,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAEjC,YACqB,SAA2B,EACe,kBAAsC;QADhF,cAAS,GAAT,SAAS,CAAkB;QACe,uBAAkB,GAAlB,kBAAkB,CAAoB;QAEjG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACrE;IAEO,mBAAmB,CAAC,SAA2B,EAAE,kBAAsC;QAC3F,yBAAyB,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClE,yBAAyB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;KACvE;CACJ,CAAA;;YAVmC,gBAAgB;4CAC3C,MAAM,SAAC,gCAAgC;;AAJnC,wBAAwB;IADpC,QAAQ,EAAE;IAKF,WAAA,MAAM,CAAC,gCAAgC,CAAC,CAAA;GAJpC,wBAAwB,CAapC;;ICnBY,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QACY,iCAA4B,GAAG,8BAA8B,CAAC;QAC9D,UAAK,GAAG,IAAI,eAAe,EAAE,CAAC;KASzC;IAPgB,sBAAsB,CAAI,OAAgC;;YACnE,OAAO,gBAAgB,CAAC,IAAI,CACxB,GAAG,IAAI,CAAC,4BAA4B,0BAA0B,EAC9D,OAAO,EACP,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAChC,CAAC;SACL;KAAA;CACJ,CAAA;AAXY,iBAAiB;IAD7B,UAAU,EAAE;GACA,iBAAiB,CAW7B;;;ACOD,MAAMG,QAAM,GAAG,OAAO,CAAC;AAOvB,IAAa,mBAAmB,2BAAhC,MAAa,mBAAmB;IAmD5B,YAA6B,SAAuB,EACvB,iBAAoC,EACpC,SAA2B;QAF3B,cAAS,GAAT,SAAS,CAAc;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAkB;QA5CxC,OAAE,GAAG,iBAAiB,qBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACrD,gBAAW,GAAG,iBAAiB,CAAC;QAChC,gBAAW,GAAG,SAAS,CAAC;QACxB,gBAAW,GAAG,UAAU,CAAC;QACzB,mBAAc,GAAG,6BAA6B,CAAC;QAG/C,wBAAmB,GAAa,EAAE,CAAC;QAInC,sBAAiB,GAAG,oBAAoB,CAAC;QAKzC,aAAQ,GAAG,KAAK,CAAC;QACjB,uBAAkB,GAAY,KAAK,CAAC;QAanC,kBAAa,GAAuC,IAAI,YAAY,EAAE,CAAC;QACvE,eAAU,GAAiC,IAAI,YAAY,EAAE,CAAC;QAC9D,iBAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;QACxD,iBAAY,GAAwD,IAAI,YAAY,EAAE,CAAC;QACvF,mBAAc,GAA8B,IAAI,YAAY,EAAE,CAAC;QAExE,WAAM,GAAc,EAAE,CAAC;QACd,iBAAY,GAAkB,IAAI,OAAO,EAAE,CAAC;QAEtD,eAAU,GAAG,EAAE,CAAC;KAKsC;IA1BpD,IAAW,KAAK,CAAC,KAAgB;;QACtC,IAAG,IAAI,CAAC,kBAAkB,WAAI,KAAK,CAAC,CAAC,CAAC,0CAAE,QAAQ,CAAA,EAAE;YAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI;YACxB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;aAC5F;YACD,OAAO,IAAI,CAAC;SACf,CAAC,CAAC;KACN;IAkBM,QAAQ;QACX,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;aAClD,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KAC/D;IAEM,WAAW;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEM,kBAAkB;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAGM,QAAQ;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,YAAY,CAAC,KAAgB;QAChC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrB,KAAK;gBACL,UAAU,EAAE,cAAc,CAAC,cAAc;aAC5C,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO;SACV;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,CAAC,IAAI,CAAC;oBACb,UAAU,EAAE,cAAc,CAAC,qBAAqB;iBACnD,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,CAAC,IAAI,CAAC;oBACb,UAAU,EAAE,cAAc,CAAC,aAAa;iBAC3C,CAAC,CAAC;gBACH,SAAS;aACZ;YAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAC;SACN;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAEM,YAAY,CAAC,IAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAErD,IAAI,YAAY,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SAClC;KACJ;IAEM,cAAc,CAAC,KAAa;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEjD,IAAI,YAAY,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAEM,aAAa,CAAC,KAAa;QAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;KACN;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAEO,MAAM;QACV,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;KAC1D;IAEO,OAAO,CAAC,IAAU;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAEO,mBAAmB,CAAC,KAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;KAC5D;IAEO,kBAAkB,CAAC,IAAU;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;KACvC;IAEO,0BAA0B,CAAC,IAAU;;QACzC,UAAI,IAAI,CAAC,mBAAmB,0CAAE,MAAM,EAAE;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxD;QACD,OAAO,KAAK,CAAC;KAChB;IAEO,cAAc;QAClB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;KAC/C;IAEO,aAAa,CAAC,QAAmB;QACrC,IAAG,CAAC,QAAQ,EAAE;YACV,OAAO;SACV;QAED,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;aAC5E,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;KACzD;IAEO,eAAe,CAAC,QAAkC;QACtD,MAAM,IAAI,GAAGA,QAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAGA,QAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,GAAG,GAAGA,QAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,KAAK,GAAGA,QAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAGA,QAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;KAChJ;CACJ,CAAA;AA1MiB,0BAAM,GAAG,CAAC,CAAC;;YAkDe,YAAY;YACJ,iBAAiB;YACzB,gBAAgB;;AAjDxD;IADC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;wDACH;AAGzC;IADC,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;mDACH;AAE3B;IAAR,KAAK,EAAE;+CAA6D;AAC5D;IAAR,KAAK,EAAE;wDAAwC;AACvC;IAAR,KAAK,EAAE;wDAAgC;AAC/B;IAAR,KAAK,EAAE;wDAAiC;AAChC;IAAR,KAAK,EAAE;2DAAuD;AACtD;IAAR,KAAK,EAAE;qDAA0B;AACzB;IAAR,KAAK,EAAE;mDAAuB;AACtB;IAAR,KAAK,EAAE;gEAA2C;AAC1C;IAAR,KAAK,EAAE;8DAAkC;AACjC;IAAR,KAAK,EAAE;wDAA4B;AAC3B;IAAR,KAAK,EAAE;sDAA0B;AACzB;IAAR,KAAK,EAAE;8DAAiD;AAChD;IAAR,KAAK,EAAE;6DAAiC;AAChC;IAAR,KAAK,EAAE;2DAA+B;AAC9B;IAAR,KAAK,EAAE;4DAAgC;AAC/B;IAAR,KAAK,EAAE;sDAA+B;AAC9B;IAAR,KAAK,EAAE;qDAAyB;AACxB;IAAR,KAAK,EAAE;+DAA4C;AAC3C;IAAR,KAAK,EAAE;gDAUP;AAES;IAAT,MAAM,EAAE;0DAA+E;AAC9E;IAAT,MAAM,EAAE;uDAAsE;AACrE;IAAT,MAAM,EAAE;yDAAgE;AAC/D;IAAT,MAAM,EAAE;yDAA+F;AAC9F;IAAT,MAAM,EAAE;2DAAuE;AA2BhF;IADC,YAAY,CAAC,eAAe,CAAC;mDAG7B;AAxEQ,mBAAmB;IAL/B,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,s2KAA2C;;KAE9C,CAAC;GACW,mBAAmB,CA2M/B;;ICvNY,gBAAgB,GAA7B,MAAa,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAX5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE;YACL,YAAY;YACZ,YAAY;YACZD,eAAa;YACbE,mBAAiB;SACpB;QACD,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ICdnB,iBAAiB,GAA9B,MAAa,iBAAiB;CAI7B,CAAA;AAJY,iBAAiB;IAL7B,SAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,uYAAyC;;KAE5C,CAAC;GACW,iBAAiB,CAI7B;;ICKY,iBAAiB,GAA9B,MAAa,iBAAiB;IAS1B,YACqB,WAA6B,EAC7B,aAA+B,EAC/B,wBAAkD;QAFlD,gBAAW,GAAX,WAAW,CAAkB;QAC7B,kBAAa,GAAb,aAAa,CAAkB;QAC/B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAPvE,gBAAW,GAAW,IAAI,CAAC;KAQvB;IAEG,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YAClG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAEzE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;SAC7D;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;SACvD;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3D;KACJ;IAEM,WAAW;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SAC/B;KACJ;CACJ,CAAA;;YA3BqC,WAAW;YACT,gBAAgB;YACL,wBAAwB;;AAVvE;IADC,KAAK,EAAE;oDACU;AAGlB;IADC,KAAK,CAAC,sBAAsB,CAAC;sDACH;AALlB,iBAAiB;IAH7B,SAAS,CAAC;QACP,QAAQ,EAAE,aAAa;KAC1B,CAAC;GACW,iBAAiB,CAqC7B;;IClCY,cAAc,GAA3B,MAAa,cAAc;CAAG,CAAA;AAAjB,cAAc;IAZ1B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,aAAa;YACb,YAAY;SACf;QACD,YAAY,EAAE;YACV,iBAAiB;YACjB,iBAAiB;SACpB;QACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,eAAe,EAAE,CAAC,iBAAiB,CAAC;KACvC,CAAC;GACW,cAAc,CAAG;;;ICZjB,qBAAqB,6BAAlC,MAAa,qBAAqB;IAAlC;QAIW,OAAE,GAAG,mBAAmB,uBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;QAqBxD,wBAAmB,GAAG,GAAG,CAAC;QAC1B,0BAAqB,GAAG,GAAG,CAAC;KAoCvC;IApDG,IAAW,OAAO,CAAC,OAAgB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAWM,KAAK;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACrC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;aACnC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAChC;KACJ;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACnC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;gBAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;aACrC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAClC;KACJ;IAEM,WAAW;QACd,IAAI,IAAI,CAAC,cAAc;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,gBAAgB;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClE;CACJ,CAAA;AA7DiB,4BAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;iDACwD;AAGhE;IADC,KAAK,EAAE;0DACoB;AAG5B;IADC,KAAK,EAAE;oDAMP;AAfQ,qBAAqB;IALjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,q3BAA6C;;KAEhD,CAAC;GACW,qBAAqB,CA8DjC;;ICrDY,qBAAqB,GAAlC,MAAa,qBAAqB;IAc9B,YACY,MAAwB,EACxB,QAA0B,EAC1B,wBAAkD,EAClD,GAAsB;QAHtB,WAAM,GAAN,MAAM,CAAkB;QACxB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,QAAG,GAAH,GAAG,CAAmB;QAP1B,aAAQ,GAAG,KAAK,CAAC;KAQrB;IAjBJ,IAAW,aAAa,CAAC,MAAe;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;KAC5E;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAYM,eAAe;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,eAAe;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAEM,WAAW;QACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAClC;CACJ,CAAA;;YArBuB,gBAAgB;YACd,WAAW;YACK,wBAAwB;YAC7C,iBAAiB;;AAhBlC;IADC,KAAK,EAAE;0DAIP;AALQ,qBAAqB;IAHjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;GACW,qBAAqB,CAoCjC;;ICxCY,kBAAkB,GAA/B,MAAa,kBAAkB;CAAG,CAAA;AAArB,kBAAkB;IAN9B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;QAC5D,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;QACvD,eAAe,EAAE,CAAC,qBAAqB,CAAC;KAC3C,CAAC;GACW,kBAAkB,CAAG;;;ICCrB,6BAA6B,qCAA1C,MAAa,6BAA6B;IAStC;QAPO,qBAAgB,GAAG,GAAG,CAAC;QAEvB,uBAAkB,GAAG,GAAG,CAAC;QAEzB,cAAS,GAAG,CAAC,CAAC;KAGL;IAEhB,QAAQ;;;;QAIJ,IAAI,CAAC,WAAW,GAAG,kCAAkC,IAAI,CAAC,kBAAkB,mBAAmB,IAAI,CAAC,kBAAkB,kBAAkB,IAAI,CAAC,kBAAkB,oBAAoB,IAAI,CAAC,kBAAkB,kBAAkB,IAAI,CAAC,gBAAgB,mBAAmB,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,SAAS,OAAO,CAAC;KAC7T;IAED,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACrH,OAAO,IAAI,CAAC;KACf;CACJ,CAAA;AApBG;IADC,KAAK,EAAE;uEACsB;AAE9B;IADC,KAAK,EAAE;yEACwB;AAEhC;IADC,KAAK,EAAE;gEACa;AANZ,6BAA6B;IAVzC,SAAS,CAAC;QACP,QAAQ,EAAE,8BAA8B;QACxC,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA6B,CAAC;gBAC5D,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GACW,6BAA6B,CAsBzC;;IC1BY,0BAA0B,GAAvC,MAAa,0BAA0B;CAAG,CAAA;AAA7B,0BAA0B;IALtC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,6BAA6B,CAAC;QAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;KAC3C,CAAC;GACW,0BAA0B,CAAG;;ICJ7B,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QACY,SAAI,GAAG;YACX,GAAG,EAAE,OAAO;YACZ,CAAC,EAAE,UAAU;YACb,GAAG,EAAE,gBAAgB;SACxB,CAAC;KA0DL;IAxDG,SAAS,CAAC,KAAa,EAAE,UAAkB;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,WAAW,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,uBAAuB,GAAG,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,KAAK,IAAI,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC3D,IAAI,WAAW,EAAE;wBACb,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE;4BACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC/B,GAAG,EAAE,CAAC;yBACT;qBACJ;yBAAM;wBACH,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;qBACtD;iBACJ;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,IAAI,WAAW,IAAI,CAAC,GAAG,WAAW,EAAE;wBAChC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACnC;iBACJ;aACJ;iBAAM;gBACH,WAAW,GAAG,CAAC,CAAC;aACnB;SACJ;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,uBAAuB,CAAC,MAAM,EAAE;YAChG,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,YAAY,CAAC;YACjB,IAAI,MAAM,CAAC;YACX,IAAI,gBAAgB,CAAC;YACrB,IAAI,WAAW,CAAC;YAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBAC7C,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvD,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAEnD,cAAc,GAAG,GAAG,YAAY,GAAG,gBAAgB,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;aAChF;YACD,OAAO,GAAG,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;SAC5F;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC1B;CACJ,CAAA;AA/DY,iBAAiB;IAH7B,IAAI,CAAC;QACF,IAAI,EAAE,gBAAgB;KACzB,CAAC;GACW,iBAAiB,CA+D7B;;IC7DY,mBAAmB,GAAhC,MAAa,mBAAmB;CAAG,CAAA;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,YAAY,EAAE,CAAC,iBAAiB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;;ICkBtB,uBAAuB,+BAApC,MAAa,uBAAwB,SAAQC,uBAAqB;IAAlE;;QAEW,cAAS,GAAG,EAAE,CAAC;QAGf,UAAK,GAAG,CAAC,CAAC;QAGV,qBAAgB,GAAG,GAAG,CAAC;QAMvB,YAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAGhC,kBAAa,GAAG,IAAI,CAAC;KA4E/B;IAjEU,QAAQ;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpB;IAEM,WAAW,CAAC,OAAsB;QACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;QAClF,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;SAC/E;QAED,IACI,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,kBAAkB;YAC1B,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,aAAa,EACvB;YACE,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;KACJ;IAGM,UAAU,CAAC,KAAoB;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAExB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,gBAAgB,EAAE;YAC/C,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACxC;SACJ;aAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,EAAE;YACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;SACpC;KACJ;;;;IAKO,eAAe;;QACnB,IAAI,CAAC,OAAO,GAAG;YACX,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,kBAAkB,QAAE,IAAI,CAAC,kBAAkB,mCAAI,GAAG;YAClD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;YACtB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;;;;IAKO,kBAAkB;;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAClD,MAAM,YAAY,eAAG,IAAI,CAAC,kBAAkB,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAE1D,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QACjE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;QAEhG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;CACJ,CAAA;AA3FG;IADC,KAAK,EAAE;0DACc;AAGtB;IADC,KAAK,EAAE;sDACS;AAGjB;IADC,KAAK,EAAE;iEACsB;AAG9B;IADC,KAAK,EAAE;mEAC0B;AAGlC;IADC,KAAK,EAAE;wDAC+B;AAGvC;IADC,KAAK,EAAE;8DACoB;AAI5B;IAFC,KAAK,EAAE;IACP,WAAW,CAAC,kBAAkB,CAAC;4DACL;AAG3B;IADC,WAAW,CAAC,gBAAgB,CAAC;0DACL;AA4BzB;IADC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;yDAWpC;AA9DQ,uBAAuB;IAXnC,SAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAuB,CAAC;gBACtD,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;GAEW,uBAAuB,CA6FnC;;IC5GY,oBAAoB,GAAjC,MAAa,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IALhC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACrC,CAAC;GACW,oBAAoB,CAAG;;;ICSvB,4BAA4B,oCAAzC,MAAa,4BAA4B;IAiBrC,YAAmB,KAAY,EAAS,YAA0B;QAA/C,UAAK,GAAL,KAAK,CAAO;QAAS,iBAAY,GAAZ,YAAY,CAAc;QAb3D,OAAE,GAAG,2BAA2B,8BAA4B,CAAC,MAAM,EAAE,EAAE,CAAC;QAWvE,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAGlC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C,CAAC,CAAC;KACN;IAEM,QAAQ;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC5C;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC7B;IAEM,OAAO;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACxB;IAEM,MAAM;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACzB;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;KACzE;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7F;KACJ;IAEM,kBAAkB;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACrC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;SAChI;aAAM;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7B,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACxH;KACJ;IAEM,gBAAgB,CAAC,OAAgB;QACpC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,QAAQ,GAAG,OAAO,IAAI,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAExF,IAAI,OAAO,EAAE;YACT,MAAM,WAAW,GAAG,QAAQ;iBACvB,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAa,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;iBACvG,GAAG,CAAC,CAAC,MAAW;gBACb,IAAI,IAAI,CAAC,YAAY;oBAAE,OAAO,MAAM,CAAC;gBAErC,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,IAAI,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAY,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;oBACxF,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC;aACpB,CAAC,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;SACtE;aAAM;YACH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS;gBACpB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAW,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5G,CAAC,CAAC;SACN;QAED,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;KACvD;IAEM,0BAA0B;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC3B,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBACjC,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;SACf;KACJ;IAEM,kBAAkB;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBACjC,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;SACf;KACJ;CACJ,CAAA;AApHiB,mCAAM,GAAG,CAAC,CAAC;;YAgBC,KAAK;YAAuB,YAAY;;AAblE;IADC,KAAK,EAAE;wDACuE;AAE/E;IADC,KAAK,EAAE;8DACiB;AAEzB;IADC,KAAK,EAAE;8DACkB;AAE1B;IADC,KAAK,EAAE;kEACqB;AAVpB,4BAA4B;IAdxC,SAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE;;;;;;;;;;KAUT;KACJ,CAAC;GACW,4BAA4B,CAqHxC;;IC/HY,yBAAyB,GAAtC,MAAa,yBAAyB;CAAG,CAAA;AAA5B,yBAAyB;IALrC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,OAAO,EAAE,CAAC,4BAA4B,CAAC;QACvC,YAAY,EAAE,CAAC,4BAA4B,CAAC;KAC/C,CAAC;GACW,yBAAyB,CAAG;;ICN5B,mBAAmB,GAAhC,MAAa,mBAAmB;IAE5B,SAAS,CAAC,KAAoB;QAC1B,QAAQ,KAAK,CAAC,GAAG;YACb,KAAK,OAAO,CAAC;YACb,KAAK,YAAY;gBACb,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBAC9C,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACzE;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBACrD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACpE;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,MAAM,CAAC;YACZ,KAAK,WAAW;gBACZ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBAC9C,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACrE;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBACrD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBACpE;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,IAAI,CAAC;YACV,KAAK,SAAS;gBACV,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBAC9C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC7D;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBACrD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC9D;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;YACV,KAAK,MAAM,CAAC;YACZ,KAAK,WAAW;gBACZ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBAC9C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC7D;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAA0B,CAAC,EAAE;oBACrD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAA6B,CAAC,CAAC;iBAC9D;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;SACb;KACJ;IAEO,uBAAuB,CAAC,KAA0B;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,OAAO,EAAE;YACR,OAAO,CAAC,gBAAwC,CAAC,KAAK,EAAE,CAAC;SAC7D;KACJ;IAEO,2BAA2B,CAAC,GAAwB;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAwC,CAAC;QAE9D,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,KAAK,EAAE,CAAC;SACpB;KACJ;IAEO,sBAAsB,CAAC,GAAwB;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAyC,CAAC;QAE9D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;YACH,MAAM,UAAU,GAAG,GAAG,CAAC,aAAoC,CAAC;YAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SAC3C;KACJ;IAEO,sBAAsB,CAAC,GAAwB;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,sBAA6C,CAAC;QAElE,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;YACH,MAAM,UAAU,GAAG,GAAG,CAAC,aAAoC,CAAC;YAC5D,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC;SAC7B;KACJ;IAEO,gBAAgB,CAAC,UAA+B;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAiC,CAAC,CAAC;QAE9E,IAAI,OAAO;YAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,KAAK,EAAE,CAAC;KAC/E;IAEO,gBAAgB,CAAC,UAA+B;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAiC,CAAC,CAAC;QAC9E,IAAI,OAAO;YAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAA8B,CAAC,KAAK,EAAE,CAAC;KAC/E;IAEO,eAAe,CAAC,GAAwB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;IAEO,eAAe,CAAC,GAAwB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;IAEO,KAAK,CAAC,KAAuB;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;KACrD;IAEO,KAAK,CAAC,KAAuB;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;KACrD;IAEO,qBAAqB,CAAC,GAAwB;QAClD,MAAM,OAAO,GAAwB,GAAG,CAAC,sBAAsB,CAAC;QAChE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;;YACvB,OAAO,IAAI,CAAC;KACpB;IAEO,qBAAqB,CAAC,GAAwB;QAClD,MAAM,OAAO,GAAwB,GAAG,CAAC,kBAAkB,CAAC;QAC5D,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;;YACvB,OAAO,IAAI,CAAC;KACpB;CACJ,CAAA;AA/HG;IADC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;oDAwCnC;AAzCQ,mBAAmB;IAD/B,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;GAC5B,mBAAmB,CAiI/B;;IChIY,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,UAAU;IAI/C,YAAmB,EAAS;QACxB,KAAK,CAAC,EAAE,CAAC,CAAC;QADK,OAAE,GAAF,EAAE,CAAO;KAE3B;IAGM,SAAS,CAAC,KAAoB;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,QAAQ,KAAK,CAAC,GAAG;gBACb,KAAK,OAAO;oBACR,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;gBACV;oBACI,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM;aACb;SACJ;KACJ;CACJ,CAAA;;YAlB0B,KAAK;;AAF5B;IADC,KAAK,CAAC,aAAa,CAAC;iDACX;AAOV;IADC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;oDAanC;AArBQ,mBAAmB;IAD/B,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;GAC5B,mBAAmB,CAsB/B;;ICpBY,4BAA4B,GAAzC,MAAa,4BAA4B;IAoBrC,YAAoB,EAAc,EAAU,IAAW;QAAnC,OAAE,GAAF,EAAE,CAAY;QAAU,SAAI,GAAJ,IAAI,CAAO;QAlBvD,yBAAoB,GAAG,MAAM,CAAC;QAWtB,mBAAc,GAAG,KAAK,CAAC;QAK/B,qBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGrD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,IAAI,0BAA0B,CAAC;QACnF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1D,iBAAiB,CAAC,SAAS,GAAG,+FAA+F,CAAC;QAC9H,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;KAC3C;IA3BD,IAAI,iBAAiB,CAAC,CAAQ;QAC1B,UAAU,CAAC;YACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAC,CAAC;KACN;IAwBD,eAAe;QACX,IAAI,IAAI,CAAC,oBAAoB,KAAK,MAAM;YAAE,OAAO;QACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAED,qBAAqB;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE;YACpE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE;YACzE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;KACJ;IAED,WAAW;QACP,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;SACzC;KACJ;IAEO,gBAAgB;QACpB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;YAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC,CAAC,CAAC;KACN;IAEO,wBAAwB;QAC5B,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;SACzC;;QAGD,IAAI,CAAC,mBAAmB,GAAG,IAAK,MAAc,CAAC,cAAc,CAAC;YAC1D,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,UAAU,CAAC;YACP,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC;YAC3G,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,gDAAgD,CAAC,CAAC;YAC9G,WAAW,CAAC,OAAO,CAAC,CAAC,EAAe,EAAE,KAAa;gBAC/C,MAAM,UAAU,GAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;gBACzD,EAAE,CAAC,SAAS,GAAG,uBAAuB,MAAM,YAAY,CAAC;gBACzD,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBAEzB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAChD,CAAC,CAAC;SACN,CAAC,CAAC;KACN;IAEO,qBAAqB;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,gBAAgB,CAAC;YAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5E,UAAU,CAAC,OAAO,CAAC,CAAC,SAAkB;YAClC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE;gBACxC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;SACN,CAAC,CAAC;KACN;IAEO,0BAA0B;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC;QACjH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,gDAAgD,CAAC,CAAC;QAC7G,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAqB,EAAE,KAAa;YAC3D,MAAM,UAAU,GAAgB,WAAW,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;YACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE;gBAC7C,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,cAAc,IAAI,CAAC;gBAC9C,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;aACtC;SACJ,CAAC,CAAC;KACN;IAEO,mBAAmB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;YAChH,OAAO;SACV;QACD,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACrC,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAE1C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;YACxG,OAAO;SACV;QACD,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;QACvC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC;QACnD,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAExD,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;YAC1G,OAAO;SACV;QACD,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;KAC1C;IAEO,kBAAkB;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,eAAe;QACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,oBAAoB;QACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;QACnG,MAAM,WAAW,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;QAC1H,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,CAAC;QACzG,MAAM,UAAU,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;QACzH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;KACvC;IAEO,kBAAkB,CAAC,MAAa;QACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3B,OAAO;SACV;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjH,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACzE;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,EAAE,CAAC;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC,CAAC;aAClD;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,KAC7C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;YAE/G,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;gBAClB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;aAChC;SACJ;KACJ;IAEO,eAAe,CAAC,MAAa;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gBAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;aAC9B;SACJ;KACJ;CACJ,CAAA;;YA3L2B,UAAU;YAAgB,KAAK;;AAlBvD;IADC,KAAK,EAAE;0EACsB;AAG9B;IADC,KAAK,EAAE;qEAMP;AAVQ,4BAA4B;IAHxC,SAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;KACrC,CAAC;GACW,4BAA4B,CA+MxC;;ICrNW,mBAUX;AAVD,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,wCAAiB,CAAA;IACjB,0CAAmB,CAAA;IACnB,oCAAa,CAAA;IACb,4CAAqB,CAAA;IACrB,oCAAa,CAAA;IACb,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,wCAAiB,CAAA;AACrB,CAAC,EAVW,mBAAmB,KAAnB,mBAAmB,QAU9B;;ICVW,eAOX;AAPD,WAAY,eAAe;IACvB,2CAAwB,CAAA;IACxB,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,+CAA4B,CAAA;IAC5B,6CAA0B,CAAA;IAC1B,6CAA0B,CAAA;AAC9B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;;ACaD,MAAMF,QAAM,GAAG,OAAO,CAAC;AAOvB,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAU9B,YACqB,gBAAkC,EAClC,SAA2B,EACe,kBAAsC;QAFhF,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,cAAS,GAAT,SAAS,CAAkB;QACe,uBAAkB,GAAlB,kBAAkB,CAAoB;QAL9F,qBAAgB,GAAmB,EAAE,CAAC;KAMzC;IAEJ,WAAW,CAAC,OAAsB;QAC9B,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACvC;IAEO,2BAA2B,CAAC,OAAsB;;QACtD,IAAI,QAAC,OAAO,CAAC,OAAO,0CAAE,YAAY,CAAA,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAChE;QACD,IAAI,QAAC,OAAO,CAAC,QAAQ,0CAAE,YAAY,CAAA,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QACD,IAAI,QAAC,OAAO,CAAC,MAAM,0CAAE,YAAY,CAAA,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC/D;KACJ;IAEO,qBAAqB,CAAC,OAAsB;QAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE9B,MAAM,OAAO,GAAa,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACvD,MAAM,QAAQ,GAAW,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvD,MAAM,MAAM,GAA6B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAErE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAClE;IAEO,kBAAkB,CAAC,MAAc;QACrC,OAAO,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;KACtD;IAEO,oBAAoB,CAAC,MAAc;QACvC,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,CAAC;KAClH;IAEO,uBAAuB,CAAC,cAAmB;QAC/C,OAAO,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KAC9H;IAEO,uBAAuB,CAAC,MAAc,EAAE,WAAkB,EAAE,mBAA2B,EAC3F,cAAsB,EAAE,gBAAwB;QAEhD,IAAI,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;YAC/C,OAAO,cAAc,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC;SACvF;QAED,OAAO,mBAAmB,CAAC;KAC9B;IAEO,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;QACzD,IAAI,cAAoB,CAAC;QAEzB,SAAS;aACJ,KAAK,CAAC,GAAG,CAAC;aACV,OAAO,CAAC,CAAC,KAAa;YACnB,IAAI,CAAC,cAAc,EAAE;gBACjB,KAAK;qBACA,KAAK,CAAC,GAAG,CAAC;qBACV,OAAO,CAAC,CAAC,GAAW,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ,EAAE;wBACX,OAAO;qBACV;oBAED,IAAI,CAAC,KAAK,CAAC,EAAE;wBACT,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;qBAClC;yBAAM;wBACH,IAAI,cAAc,EAAE;4BAChB,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;yBACxC;qBACJ;iBACR,CAAC,CAAC;aACN;SACJ,CAAC,CAAC;QAEP,OAAO,cAAc,CAAC;KACzB;IAEO,gBAAgB,CAAC,MAAc,EAAE,MAAgC;QACrE,uCACO,MAAM,CAAC,MAAM,KAChB,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;kBACpD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;kBACjC,MAAM,CAAC,MAAM,CAAC,KAAK,EACzB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,IAC5C;KACL;IAEO,aAAa,CAAC,MAAc,EAAE,MAAgC;QAClE,OAAO,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC7E;IAEO,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAgC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,UAAU,GAAgB;YAC1B,WAAW,EAAE,KAAK;SACrB,CAAC;QAEF,MAAM,WAAW,GAAU,MAAM,CAAC,UAAU;aACvC,GAAG,CAAC,CAAC,SAAiB;;YACnB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE;gBAC9C,OAAO,UAAU,CAAC;aACrB;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE5D,QAAQ,MAAM,CAAC,IAAI;gBACf,KAAK,mBAAmB,CAAC,IAAI;oBACzB,UAAI,MAAM,CAAC,YAAY,0CAAE,MAAM,EAAE;wBAC7B,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;qBACxE;oBACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBAE/F,KAAK,mBAAmB,CAAC,QAAQ;oBAC7B,OAAO,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAEnF,KAAK,mBAAmB,CAAC,IAAI;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtD,OAAOA,QAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAErD,KAAK,mBAAmB,CAAC,OAAO;oBAC5B,MAAM,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;oBAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBAElD,KAAK,mBAAmB,CAAC,MAAM;oBAC3B,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;oBAC1B,OAAO,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAEnF,KAAK,mBAAmB,CAAC,MAAM;oBAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAE1C;oBACI,OAAO,cAAc,CAAC;aAC7B;SACJ,CAAC,CAAC;QAEP,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,mBAAmB;aACvC,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;QAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAElI,OAAO;YACH,KAAK;YACL,WAAW,EAAE,oBAAoB;YACjC,UAAU;YACV,SAAS;YACT,UAAU;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;SACtC,CAAC;KACL;IAEO,aAAa,CAAC,KAAa,EAAE,YAA4B;;QAC7D,MAAM,WAAW,GAAG;YAChB,WAAW,EAAE,IAAI;SACpB,CAAC;QACF,MAAM,KAAK,SAAI,YAAY,CAAC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,0CAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClG,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAE1B,OAAO,WAAW,CAAC;KACtB;IAEO,cAAc,CAAC,KAA2C;QAC9D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;KAChB;IAEO,iBAAiB,CAAC,QAA8C;QACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC7C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClC;YACD,OAAO,QAAQ,CAAC;SACnB;QACD,OAAO,IAAI,CAAC;KACf;IAEO,gBAAgB,CAAC,OAA6C;QAClE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;YAC3C,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjC;YACD,OAAO,OAAO,CAAC;SAClB;QACD,OAAO,EAAE,CAAC;KACb;IAEO,QAAQ,CAAC,KAAU;QACvB,OAAO,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC1C;IAEO,SAAS,CAAC,MAAW;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC,CAAC;SACzH;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO,MAAM,CAAC;SACjB;QAED,OAAO,MAAM;aACR,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;aAC7D,GAAG,CAAC,CAAC,KAAU;YACZ,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC;YACxE,OAAO;gBACH,KAAK;aACR,CAAC;SACL,CAAC,CAAC;KACV;IAEO,iBAAiB,CAAC,MAAa;QACnC,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;KACjF;IAEO,sBAAsB,CAAC,MAAa;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;KACnF;IAEO,kBAAkB,CAAC,MAAa;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,IAAI,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;KAC/G;IAEM,OAAO,CAAC,KAAU;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEM,iBAAiB,CAAC,MAAoB;QACzC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QACtD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACjC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK;gBACpC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC;gBACxD,OAAO;oBACH,KAAK,EAAE,MAAM;oBACb,YAAY,EAAE,MAAM,KAAK,UAAU;oBACnC,SAAS,EAAE,CAAC,WAAW,GAAG,SAAS,GAAG,EAAE;iBAC3C,CAAC;aACL,CAAC,CAAC;SACN;QAED,OAAO,IAAI,CAAC;KACf;CACJ,CAAA;;YA1Q0C,gBAAgB;YACvB,gBAAgB;4CAC3C,MAAM,SAAC,gCAAgC;;AAXI;IAA/C,SAAS,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;8DAAmC;AAEzE;IAAR,KAAK,EAAE;sDAAoB;AACnB;IAAR,KAAK,EAAE;uDAAgB;AACf;IAAR,KAAK,EAAE;qDAAmC;AANlC,qBAAqB;IALjC,SAAS,CAAC;QACP,q0DAA6C;QAE7C,QAAQ,EAAE,iBAAiB;;KAC9B,CAAC;IAcO,WAAA,MAAM,CAAC,gCAAgC,CAAC,CAAA;GAbpC,qBAAqB,CAqRjC;;;ICvSY,kBAAkB,0BAA/B,MAAa,kBAAkB;IAA/B;QAII,OAAE,GAAG,gBAAgB,oBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAMnD,oBAAe,GAAG,KAAK,CAAC;QAGxB,sBAAiB,GAAG,KAAK,CAAC;QAGnB,kBAAa,GAAyB,IAAI,YAAY,EAAE,CAAC;QAGzD,iBAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;KAalE;IAXU,eAAe,CAAC,KAAa;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;KACJ;IAEM,cAAc,CAAC,KAAa;QAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACJ;CACJ,CAAA;AA/BiB,yBAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;8CAC2C;AAGnD;IADC,KAAK,EAAE;kDACS;AAGjB;IADC,KAAK,EAAE;2DACgB;AAGxB;IADC,KAAK,EAAE;6DACkB;AAG1B;IADC,MAAM,EAAE;yDACuD;AAGhE;IADC,MAAM,EAAE;wDACsD;AAnBtD,kBAAkB;IAL9B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,k2BAA0C;;KAE7C,CAAC;GACW,kBAAkB,CAgC9B;;IC/BY,eAAe,GAA5B,MAAa,eAAe;CAAG,CAAA;AAAlB,eAAe;IAL3B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAChC,CAAC;GACW,eAAe,CAAG;;ACE/B,MAAMA,QAAM,GAAG,OAAO,CAAC;AAOvB,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IA+B7B,YACqB,SAA2B,EACe,kBAAsC;QADhF,cAAS,GAAT,SAAS,CAAkB;QACe,uBAAkB,GAAlB,kBAAkB,CAAoB;QAtB9F,eAAU,GAAG,IAAI,CAAC;QAGlB,gCAA2B,GAAG,IAAI,CAAC;KAoBtC;IAEJ,WAAW,CAAC,OAAsB;;QAC9B,UAAI,OAAO,CAAC,YAAY,0CAAE,YAAY,EAAE;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE;gBACxF,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY;aAC3C,CAAC,CAAC;SACN;KACJ;IAEO,kBAAkB;QACtB,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,CAAC;KAClF;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;KAC9E;IAEM,UAAU;;QACb,MAAM,OAAO,GAAe;YACxB;gBACI,EAAE,EAAE,mBAAmB;gBACvB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;gBAChF,OAAO,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aAC1C;SACJ,CAAC;QAEF,IAAI,IAAI,CAAC,2BAA2B,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;gBACpF,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,EAAE;aAC9C,CAAC,CAAC;SACN;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,WAAW;gBACf,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;gBAC/E,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE;aACzC,CAAC,CAAC;SACN;QAED,UAAI,IAAI,CAAC,aAAa,0CAAE,MAAM,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM;gBACtD,EAAE,EAAE,eAAe,GAAG,KAAK;gBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;SAChC;QAED,OAAO,OAAO,CAAC;KAClB;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;KACJ;IAEM,kBAAkB;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM;;YACrC,MAAM,YAAY,GAAG;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,QAAE,MAAM,CAAC,SAAS,mCAAI,KAAK;gBACpC,UAAU,EAAE,MAAM,CAAC,UAAU;aAChC,CAAC;YAEF,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC7B,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;aACnC;YAED,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC7C;qBAAM;oBACH,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;iBAC1C;aACJ;YAED,OAAO,YAAY,CAAC;SACvB,CAAC,CAAC;KACN;IAEO,0BAA0B,CAAC,OAAc;QAC7C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC7C;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC1D;IAEO,uBAAuB,CAAC,OAAc;QAC1C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACrC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC1D;IAEO,gBAAgB,CAAC,GAAQ,EAAE,IAAY;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,IAAS,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC3H;IAEO,gBAAgB,CAAC,GAAQ,EAAE,IAAY,EAAE,KAAU;QACvD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KACvD;IAEO,iBAAiB,CAAC,GAAQ,EAAE,QAAkB,EAAE,KAAU;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;SACd;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,GAAG,MAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,GAAG,CAAC;KACd;IAEM,sBAAsB,CAAC,OAAc,EAAE,IAAW;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACrB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG;YACpB,MAAM,MAAM,qBAAQ,GAAG,CAAE,CAAC;YAC1B,WAAW,CAAC,OAAO,CAAC,MAAM;gBACtB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,SAAiB;oBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBACzD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;wBACjD,OAAO;qBACV;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACtD,CAAC,CAAC;aACN,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;SACjB,CAAC,CAAC;KACN;IAEO,cAAc,CAAC,MAAW,EAAE,UAAe;;QAE/C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QACnD,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;QAG7D,IAAI,cAAc,KAAK,eAAe,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,cAAc,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5D;;QAGD,IAAI,cAAc,KAAK,eAAe,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,cAAc,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,EAAE,CAAC;YAClD,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC5D;QAED,OAAO,eAAe,CAAC;KAC1B;IAEO,kBAAkB,CAAC,GAAW;QAClC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;aAClE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KAC9B;IAEO,iBAAiB;;QACrB,MAAM,QAAQ,SAAG,IAAI,CAAC,cAAc,mCAAI,UAAU,CAAC;QACnD,MAAM,WAAW,GAAGA,QAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpE,OAAO,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC;KACvC;IAEM,iBAAiB;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC9D,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACrF;IAEM,qBAAqB;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC3D,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACrF;IAEY,gBAAgB;;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACtE,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACrF;KAAA;CACJ,CAAA;;YA5MmC,gBAAgB;4CAC3C,MAAM,SAAC,gCAAgC;;AA/B5C;IADC,KAAK,EAAE;0DACqB;AAG7B;IADC,KAAK,EAAE;4DACuB;AAG/B;IADC,KAAK,EAAE;mDACa;AAGrB;IADC,KAAK,EAAE;wDACiB;AAGzB;IADC,KAAK,EAAE;yEACkC;AAG1C;IADC,KAAK,EAAE;2DAC8B;AAGtC;IADC,KAAK,EAAE;4DACqC;AAG7C;IADC,KAAK,EAAE;oEACoC;AAG5C;IADC,KAAK,EAAE;iEACiC;AAGzC;IADC,MAAM,EAAE;8DACuB;AA7BvB,oBAAoB;IALhC,SAAS,CAAC;QACP,8bAA4C;QAE5C,QAAQ,EAAE,gBAAgB;;KAC7B,CAAC;IAkCO,WAAA,MAAM,CAAC,gCAAgC,CAAC,CAAA;GAjCpC,oBAAoB,CA4OhC;;IC1NY,WAAW,GAAxB,MAAa,WAAW;CAAG,CAAA;AAAd,WAAW;IAxBvB,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,aAAa;YACb,eAAe;YACf,eAAe;YACf,YAAY;YACZ,cAAc;SACjB;QACD,OAAO,EAAE;YACL,mBAAmB;YACnB,mBAAmB;YACnB,qBAAqB;YACrB,4BAA4B;YAC5B,oBAAoB;SACvB;QACD,YAAY,EAAE;YACV,mBAAmB;YACnB,mBAAmB;YACnB,qBAAqB;YACrB,4BAA4B;YAC5B,oBAAoB;SACvB;KACJ,CAAC;GACW,WAAW,CAAG;;IC7Bd,0BAA0B,GAAvC,MAAa,0BAA0B;CAKtC,CAAA;AAHG;IADC,KAAK,EAAE;yDACwB;AAEhC;IADC,KAAK,EAAE;+DACwB;AAJvB,0BAA0B;IAHtC,SAAS,CAAC;QACP,w5BAAgD;KACnD,CAAC;GACW,0BAA0B,CAKtC;;ICLY,qBAAqB,GAAlC,MAAa,qBAAqB;IAMvB,OAAO;QACV,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC5B;CACJ,CAAA;AAPG;IADC,KAAK,EAAE;oDACmB;AAE3B;IADC,KAAK,EAAE;0DACwB;AAJvB,qBAAqB;IAHjC,SAAS,CAAC;QACP,6lIAA2C;KAC9C,CAAC;GACW,qBAAqB,CASjC;;ICTY,sBAAsB,GAAnC,MAAa,sBAAsB;CASlC,CAAA;AAPG;IADC,KAAK,EAAE;qDACoB;AAE5B;IADC,KAAK,EAAE;2DACwB;AAEhC;IADC,KAAK,EAAE;wDACiB;AAEzB;IADC,KAAK,EAAE;wDACiB;AARhB,sBAAsB;IAHlC,SAAS,CAAC;QACP,gkEAA4C;KAC/C,CAAC;GACW,sBAAsB,CASlC;;ICRY,mBAAmB,GAAhC,MAAa,mBAAmB;CAM/B,CAAA;AAJG;IADC,KAAK,EAAE;kDACiB;AAGzB;IADC,KAAK,EAAE;wDACwB;AALvB,mBAAmB;IAJ/B,SAAS,CAAC;QACP,qkDAA2C;;KAE9C,CAAC;GACW,mBAAmB,CAM/B;;ACVD;;;AAMA,IAAa,sBAAsB,GAAnC,MAAa,sBAAuB,SAAQ,kBAAkB;CAK7D,CAAA;AAHG;IADC,KAAK,EAAE;qDACoB;AAE5B;IADC,KAAK,EAAE;2DACwB;AAJvB,sBAAsB;IAHlC,SAAS,CAAC;QACP,q4DAA4C;KAC/C,CAAC;GACW,sBAAsB,CAKlC;;ICRYG,qBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAkB;CAK1D,CAAA;AAHG;IADC,KAAK,EAAE;oDACgB;AAExB;IADC,KAAK,EAAE;0DACwB;AAJvBA,qBAAmB;IAH/B,SAAS,CAAC;QACP,snBAAyC;KAC5C,CAAC;GACWA,qBAAmB,CAK/B;;ICLY,oBAAoB,GAAjC,MAAa,oBAAoB;CAKhC,CAAA;AAHG;IADC,KAAK,EAAE;mDACkB;AAE1B;IADC,KAAK,EAAE;yDACwB;AAJvB,oBAAoB;IAHhC,SAAS,CAAC;QACP,0vDAA0C;KAC7C,CAAC;GACW,oBAAoB,CAKhC;;ICCY,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,kBAAkB;IAA5D;;QAOW,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAElD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KA0BzC;IAxBU,QAAQ;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB;YACzE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU;YACrE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3D,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAED,IAAW,qBAAqB;QAC5B,OAAO,qBAAqB,CAAC;KAChC;IAED,IAAW,SAAS;QAChB,OAAO,SAAS,CAAC;KACpB;CACJ,CAAA;AArCG;IADC,KAAK,EAAE;mDACmB;AAE3B;IADC,KAAK,EAAE;yDACwB;AAGhC;IADC,MAAM,EAAE;qDAC8C;AAEvD;IADC,MAAM,EAAE;qDAC8C;AAEvD;IADC,MAAM,EAAE;wDACiD;AAXjD,oBAAoB;IALhC,SAAS,CAAC;QACP,05GAA0C;QAE1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,oBAAoB,CAuChC;;ICnCY,oBAAoB,GAAjC,MAAa,oBAAoB;IAa7B;QANO,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE/C,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAEtB;IAET,QAAQ;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB;YACzE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEM,OAAO;QACV,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC5B;CACJ,CAAA;AA9BG;IADC,KAAK,EAAE;mDACuB;AAE/B;IADC,KAAK,EAAE;yDACwB;AAGhC;IADC,MAAM,EAAE;qDAC8C;AAEvD;IADC,MAAM,EAAE;qDAC8C;AAT9C,oBAAoB;IAThC,SAAS,CAAC;QACP,myDAAiD;QAMjD,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBAL5B;;;;KAIR;KAEJ,CAAC;GACW,oBAAoB,CAgChC;;IC1CY,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,kBAAkB;CAK3D,CAAA;AAHG;IADC,KAAK,EAAE;mDACkB;AAE1B;IADC,KAAK,EAAE;yDACwB;AAJvB,oBAAoB;IAHhC,SAAS,CAAC;QACP,w5CAA0C;KAC7C,CAAC;GACW,oBAAoB,CAKhC;;ICLY,sBAAsB,GAAnC,MAAa,sBAAsB;CAKlC,CAAA;AAHG;IADC,KAAK,EAAE;qDACoB;AAE5B;IADC,KAAK,EAAE;2DACwB;AAJvB,sBAAsB;IAHlC,SAAS,CAAC;QACP,2kBAA6C;KAChD,CAAC;GACW,sBAAsB,CAKlC;;ICDY,kBAAkB,GAA/B,MAAa,kBAAmB,SAAQ,kBAAkB;IAA1D;;QAOW,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAElD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAkBzC;IAhBU,QAAQ;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB;YACzE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU;YAClE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU;YACrE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3D,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;CACJ,CAAA;AA7BG;IADC,KAAK,EAAE;iDACgB;AAExB;IADC,KAAK,EAAE;uDACwB;AAGhC;IADC,MAAM,EAAE;mDAC8C;AAEvD;IADC,MAAM,EAAE;mDAC8C;AAEvD;IADC,MAAM,EAAE;sDACiD;AAXjD,kBAAkB;IAL9B,SAAS,CAAC;QACP,8hGAAwC;QAExC,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,kBAAkB,CA+B9B;;ICjBY,YAAY,GAAzB,MAAa,YAAY;IAUrB,iBAAgB;IAET,QAAQ,MAAK;IAEb,gBAAgB,CAAC,aAAkB;QACtC,IAAI,aAAa;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC;QAC3F,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAEM,UAAU,CAAC,KAAU;QACxB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;CACJ,CAAA;AApBG;IADC,KAAK,EAAE;wCACU;AAElB;IADC,KAAK,EAAE;4CACW;AAEnB;IADC,KAAK,EAAE;2CACgB;AAExB;IADC,KAAK,EAAE;mDACkB;AARjB,YAAY;IAtBxB,SAAS,CAAC;QACP,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;KAmBT;KACJ,CAAC;GACW,YAAY,CAsBxB;;IC/BY,iBAAiB,GAA9B,MAAa,iBAAiB;CAS7B,CAAA;AAPG;IADC,KAAK,EAAE;6CACU;AAElB;IADC,KAAK,EAAE;iDACgB;AAExB;IADC,KAAK,EAAE;gDACgB;AAExB;IADC,KAAK,EAAE;wDACkB;AARjB,iBAAiB;IAZ7B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE;;;;;;;;KAQT;KACJ,CAAC;GACW,iBAAiB,CAS7B;;ICbY,gBAAgB,GAA7B,MAAa,gBAAgB;CAS5B,CAAA;AAPG;IADC,KAAK,EAAE;4CACU;AAElB;IADC,KAAK,EAAE;gDACe;AAEvB;IADC,KAAK,EAAE;+CACgB;AAExB;IADC,KAAK,EAAE;uDACkB;AARjB,gBAAgB;IAR5B,SAAS,CAAC;QACP,QAAQ,EAAE;;;;;KAKT;KACJ,CAAC;GACW,gBAAgB,CAS5B;;ICdY,qBAAqB,GAAlC,MAAa,qBAAqB;IAgBvB,gBAAgB,CAAC,aAAkB;QACtC,IAAI,aAAa;YACb,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;kDAC1B,IAAI,CAAC,aAAa,GAAK,aAAa,EAAE,oCACtC,IAAI,CAAC,aAAa,GAAK,aAAa,CAAE,CAAC;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAEM,UAAU,CAAC,KAAU;QACxB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;CACJ,CAAA;AAzBG;IADC,KAAK,EAAE;iDACU;AAGlB;IADC,KAAK,EAAE;qDACmB;AAG3B;IADC,KAAK,EAAE;mDACe;AAGvB;IADC,KAAK,EAAE;4DACmB;AAG3B;IADC,KAAK,EAAE;kEAC2B;AAd1B,qBAAqB;IAJjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,+zCAA6C;KAChD,CAAC;GACW,qBAAqB,CA2BjC;;ACnCD,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,uBAAW,CAAA;AACf,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;;ACFD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;;ICYY,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,kBAAkB;IAA/D;;QAOW,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEhD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAElD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAkCzC;IAhCU,QAAQ;QACX,IAAI,CAAC,OAAO;aACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAiB;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;SACJ,CAAC,CAAC;QACP,IAAI,CAAC,OAAO;aACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAU;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;SACJ,CAAC,CAAC;QACP,IAAI,CAAC,UAAU;aACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAU;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;SACJ,CAAC,CAAC;KACV;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAED,IAAW,SAAS;QAChB,OAAO,SAAS,CAAC;KACpB;CACJ,CAAA;AA7CG;IADC,KAAK,EAAE;sDACqB;AAE7B;IADC,KAAK,EAAE;4DACwB;AAGhC;IADC,MAAM,EAAE;wDAC8C;AAEvD;IADC,MAAM,EAAE;wDAC8C;AAEvD;IADC,MAAM,EAAE;2DACiD;AAXjD,uBAAuB;IALnC,SAAS,CAAC;QACP,inFAA0C;QAE1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,uBAAuB,CA+CnC;;ICrDY,2BAA2B,GAAxC,MAAa,2BAA2B;CAKvC,CAAA;AAHG;IADC,KAAK,EAAE;0DACyB;AAEjC;IADC,KAAK,EAAE;gEACwB;AAJvB,2BAA2B;IAHvC,SAAS,CAAC;QACP,k5BAAkD;KACrD,CAAC;GACW,2BAA2B,CAKvC;;ICDY,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QAQU,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGhD,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGhD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAElD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KA8BxC;IA5BS,QAAQ;QACZ,IAAI,CAAC,OAAO;aACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAiB;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC5B;SACH,CAAC,CAAC;QACN,IAAI,CAAC,OAAO;aACR,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAiB;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC5B;SACH,CAAC,CAAC;QACN,IAAI,CAAC,UAAU;aACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,KAAU;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAC/B;SACH,CAAC,CAAC;KACR;IAEM,WAAW;QACf,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAChC;CACH,CAAA;AA5CE;IADC,KAAK,EAAE;qDACoB;AAG5B;IADC,KAAK,EAAE;2DACwB;AAGhC;IADC,MAAM,EAAE;uDAC8C;AAGvD;IADC,MAAM,EAAE;uDAC8C;AAGvD;IADC,MAAM,EAAE;0DACiD;AAdhD,sBAAsB;IALlC,SAAS,CAAC;QACR,y3BAA8C;QAE9C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACvC,CAAC;GACW,sBAAsB,CA8ClC;;IC/CY,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,kBAAkB;IAA5D;;QAOW,aAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;QAEjD,eAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;QAElD,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAqEzC;IAnEU,QAAQ;;QAEX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5C,SAAS,CAAC,CAAC,KAAiB;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9B;SACJ,CAAC,CAAC;QAEP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC9C,SAAS,CAAC,CAAC,KAAU;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;SACJ,CAAC,CAAC;QAEP,MAAM,MAAM,GAAG,OAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAErF,IAAI,CAAC,WAAW,CAAC,QAAQ,OAAC,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAI,MAAM,CAAC,CAAC;KAChE;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAED,IAAW,SAAS;QAChB,OAAO,SAAS,CAAC;KACpB;IAEO,aAAa;;QACjB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,SAAG,IAAI,CAAC,WAAW,CAAC,KAAK,mCAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,SAAG,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,MAAM,MAAM,SAAG,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,MAAM,SAAS,SAAG,IAAI,CAAC,KAAK,CAAC,cAAc,mCAAI,KAAK,CAAC;QAErD,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACpC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC3B;QAED,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;KAC/E;IAEO,gBAAgB;;QACpB,IAAI,KAAK,SAAG,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC;QACpC,MAAM,MAAM,SAAG,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,MAAM,MAAM,SAAG,IAAI,CAAC,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAClC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACxB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B;QAED,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC;KACvC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC5E;CAEJ,CAAA;AA9EG;IADC,KAAK,EAAE;mDACkB;AAE1B;IADC,KAAK,EAAE;yDACwB;AAGhC;IADC,MAAM,EAAE;sDAC+C;AAExD;IADC,MAAM,EAAE;wDACiD;AATjD,oBAAoB;IAJhC,SAAS,CAAC;QACP,yrBAA0C;;KAE7C,CAAC;GACW,oBAAoB,CAgFhC;;MChEqB,WAAW;IAO7B,YAAY,EAAE,KAAK,EAAE,aAAa,EAA4C;QAC1E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACtC;CACJ;AAED,MAAa,YAAa,SAAQ,WAAW;IAIzC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAA8D;QACnG,KAAK,CAAC;YACF,KAAK;YACL,aAAa;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;IAEM,wBAAwB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE;YAC/E,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,GAAG,EAAE,CAAC;SACtD;KACJ;IAEM,eAAe,CAAC,QAAkC,EAAE,SAA2B;QAClF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAsB,CAAC;QACnF,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;QAEtC,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,SAAS,CAAC;KACpB;IAEM,kBAAkB,CAAC,SAA4B;QAClD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE;YACnC,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtC;QACD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACzF,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtC;KACJ;IAEM,eAAe,CAAC,SAA4B;QAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;KACtC;IAEM,YAAY;QACf,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI;YACnB,KAAK,SAAS,CAAC,YAAY;gBACvB,OAAO,0BAA0B,CAAC;YACtC,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,kBAAkB,CAAC;YAC9B,KAAK,SAAS,CAAC,OAAO;gBAClB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;oBACvC,OAAO,2BAA2B,CAAC;iBACtC;gBACD,OAAO,qBAAqB,CAAC;YACjC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,mBAAmB,CAAC;YAC/B,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,aAAa,CAAC;YAC7B,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,sBAAsB,CAAC;YAClC,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,OAAO,CAAC;YACvB,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,uBAAuB,CAAC;YACnC,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,oBAAoB,CAAC;YAChC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,oBAAoB,CAAC;YAChC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,sBAAsB,CAAC;YAClC,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,oBAAoB,CAAC;YAChC,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,sBAAsB,CAAC;YAClC,KAAK,SAAS,CAAC,QAAQ;gBACnB,OAAO,sBAAsB,CAAC;YAClC,KAAK,SAAS,CAAC,IAAI;gBACf,OAAOA,qBAAmB,CAAC;YAC/B,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,oBAAoB,CAAC;YAChC,KAAK,SAAS,CAAC,MAAM;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;YAChD;gBACI,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;SAClF;KACJ;CACJ;AAED,MAAa,gBAAiB,SAAQ,WAAW;IAK7C,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAA+D;QACrG,KAAK,CAAC;YACF,KAAK;YACL,aAAa;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;IAEM,eAAe,CAAC,QAAkC,EAAE,SAA2B;QAClF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAsB,CAAC;QACnF,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,OAAO,SAAS,CAAC;KACpB;IAEM,eAAe,CAAC,SAA4B;QAC/C,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3C,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KACzC;IAEM,YAAY;QACf,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;YACpB,KAAK,aAAa,CAAC,QAAQ;gBACvB,OAAO,iBAAiB,CAAC;YAC7B,KAAK,aAAa,CAAC,OAAO;gBACtB,OAAO,gBAAgB,CAAC;YAC5B;gBACI,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;SACnF;KACJ;CACJ;AAED,MAAa,WAAY,SAAQ,WAAW;IAIxC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAA0D;QAChG,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;IAEM,eAAe,CAAC,QAAkC,EAAE,SAA2B;QAClF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAsB,CAAC;QACnF,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACtD,OAAO,SAAS,CAAC;KACpB;IAEM,eAAe,CAAC,SAA4B;QAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KACzC;IAEM,YAAY;QACf,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI;YACpB,KAAK,QAAQ,CAAC,GAAG;gBACb,OAAO,YAAY,CAAC;YACxB;gBACI,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;SACnF;KACJ;CACJ;;IChMY,oBAAoB,GAAjC,MAAa,oBAAoB;IAqB7B,YAAoB,QAAkC,EAAU,SAA2B;QAAvE,aAAQ,GAAR,QAAQ,CAA0B;QAAU,cAAS,GAAT,SAAS,CAAkB;KAAI;IAb/F,IAAI,YAAY,CAAC,OAAsG;QACnH,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QACrD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACtC;IASM,QAAQ;QACX,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,EAAG,IAAI,CAAC,MAAoB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;gBAC5C,IAAI,CAAC,MAAoB,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAI,IAAI,CAAC,MAAoB,CAAC,IAAI,CAAC;aACnF;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,MAAmB;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;aACpC,CAAC,CAAC;SACN;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,gBAAgB,CAAC;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAmB;gBAChC,aAAa,EAAE,IAAI,CAAC,aAAa;aACpC,CAAC,CAAC;SACN;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACtB,IAAI,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAc;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;aACpC,CAAC,CAAC;SACN;;YAAM,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAEnF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;KAC9D;IAEM,WAAW;QACd,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9D;KACJ;IAEM,OAAO;QACV,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtC;IAEM,WAAW;QACd,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC1C;IAEM,MAAM;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACrC;CACJ,CAAA;;YAlDiC,wBAAwB;YAAqB,gBAAgB;;AAb3F;IADC,KAAK,EAAE;wDAOP;AAGD;IADC,KAAK,CAAC,iCAAiC,CAAC;iEACN;AAjB1B,oBAAoB;IADhC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;GAC7B,oBAAoB,CAuEhC;;IC3EY,kBAAkB,GAA/B,MAAa,kBAAkB;IAA/B;QAEW,oBAAe,GAAG,GAAG,CAAC;QAGtB,eAAU,GAAG,IAAI,YAAY,EAAc,CAAC;QAE5C,YAAO,GAAG,IAAI,OAAO,EAAc,CAAC;QACpC,cAAS,GAAG,IAAI,OAAO,EAAc,CAAC;QACtC,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KA6BxC;IAzBU,SAAS,CAAC,KAAiB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAIM,WAAW,CAAC,KAAiB;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAEM,QAAQ;QACX,IAAI,CAAC,SAAS;aACT,IAAI,CACD,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,EAClC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,EACR,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAChC;aACA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACxD;IAEM,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;CACJ,CAAA;AApCG;IADC,KAAK,EAAE;2DACqB;AAG7B;IADC,MAAM,EAAE;sDAC0C;AAQnD;IAFC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IACnC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;mDAGpC;AAID;IAFC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrC,YAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;qDAGtC;AArBQ,kBAAkB;IAH9B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;KAC3B,CAAC;GACW,kBAAkB,CAsC9B;;ICnCY,oBAAoB,GAAjC,MAAa,oBAAoB;IAAjC;QAEqB,kBAAa,GAA+B,IAAI,YAAY,EAAE,CAAC;QAExE,aAAQ,GAAmB,IAAI,CAAC;QAChC,wBAAmB,GAAG,GAAG,CAAC;KAqBrC;IAlBU,OAAO,CAAC,KAAmB;QAC9B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;IAEO,kBAAkB,CAAC,KAAmB;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;SAClF;KAEJ;IAEO,YAAY;QAChB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACxB;CACJ,CAAA;AAxBa;IAAT,MAAM,EAAE;2DAAuE;AAMhF;IADC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;mDAGjC;AAVQ,oBAAoB;IAHhC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;GACW,oBAAoB,CA0BhC;;ICpBY,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAX7B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE;YACV,kBAAkB;YAClB,oBAAoB;SACvB;QACD,OAAO,EAAE;YACL,kBAAkB;YAClB,oBAAoB;SACvB;KACJ,CAAC;GACW,iBAAiB,CAAG;;IChBrB,iBAKX;AALD,WAAY,iBAAiB;IAC1B,2CAAsB,CAAA;IACtB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;AACpB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;;ICLW,yBAIX;AAJD,WAAY,yBAAyB;IAClC,wCAAW,CAAA;IACX,4CAAe,CAAA;IACf,0CAAa,CAAA;AAChB,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,QAIpC;;ICIY,yBAAyB,GAAtC,MAAa,yBAAyB;IAAtC;QAEU,cAAS,GAAG,OAAO,CAAC;QAGpB,gBAAW,GAAG,OAAO,CAAC;QAGtB,gBAAW,GAAG,OAAO,CAAC;QAMtB,aAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAC3C,SAAI,GAAG,CAAC,CAAC;QACT,QAAG,GAAG,CAAC,CAAC;QACR,YAAO,GAAG,KAAK,CAAC;KAwEzB;IAtES,QAAQ;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9B;IAEM,2BAA2B;QAC/B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAEtE,QAAQ,IAAI,CAAC,QAAQ;YAClB,KAAK,yBAAyB,CAAC,GAAG;gBAC/B,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACzD,MAAM;YACT,KAAK,yBAAyB,CAAC,KAAK;gBACjC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBAC3D,MAAM;YACT,KAAK,yBAAyB,CAAC,IAAI;gBAChC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAC1D,MAAM;SACX;KACH;IAEM,gBAAgB,CAAC,gBAAmC;QACxD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAE3E,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG;YAChB,kBAAkB;YAClB,kBAAkB;YAClB,kBAAkB;SACpB,CAAC;QAEF,IAAI,aAAqB,CAAC;QAE1B,QAAQ,gBAAgB;YACrB,KAAK,iBAAiB,CAAC,QAAQ;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC5B,MAAM;YACT,KAAK,iBAAiB,CAAC,IAAI;gBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC5B,aAAa,GAAG,0BAA0B,CAAC;gBAC3C,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,MAAM;YACT,KAAK,iBAAiB,CAAC,MAAM;gBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9B,aAAa,GAAG,4BAA4B,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,MAAM;YACT,KAAK,iBAAiB,CAAC,MAAM;gBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9B,aAAa,GAAG,4BAA4B,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACtC,MAAM;SACX;QAED,UAAU,CAAC,OAAO,CAAC,SAAS;YACzB,SAAS,CAAC,SAAS,CAAC,MAAM,CACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,CAC9B,CAAC;SACJ,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,SAAS;YAC3B,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACzC,CAAC,CAAC;KACL;CACH,CAAA;AAvFE;IADC,KAAK,EAAE;4DACmB;AAG3B;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,KAAK,EAAE;8DACqB;AAG7B;IADC,KAAK,EAAE;8DACmB;AAXjB,yBAAyB;IAJrC,SAAS,CAAC;QACR,4jBAAiD;;KAEnD,CAAC;GACW,yBAAyB,CAyFrC;;IC9EY,yBAAyB,GAAtC,MAAa,yBAAyB;IAwBnC,YACW,UAAsB,EACtB,MAAsB,EACtB,wBAAkD,EAClD,QAAkB;QAHlB,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAgB;QACtB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,aAAQ,GAAR,QAAQ,CAAU;QA1BtB,YAAO,GAAG,IAAI,CAAC;QAMf,aAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC;QAc1C,iBAAY,GAAsB,IAAI,CAAC;KAO1C;IAEE,QAAQ;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC5B;IAIM,OAAO;;QACX,MAAM,OAAO,SAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,mCAAI,EAAE,CAAC;QAE1D,IAAI,OAAO,EAAE;YACV,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;SACzE;aAAM;YACJ,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE;SAC3E;KACH;IAGM,MAAM;QACV,IAAI,CAAC,uBAAuB,EAAE,CAAC;KACjC;IAEO,sBAAsB;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;YAC1G,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,GAAI,IAAI,CAAC,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;YACjG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAE9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC9B;KACH;IAEO,oBAAoB;QACzB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SAC5C;KACH;IAEO,sCAAsC;QAC3C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAE1D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAE3F,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,MAAM,gBAAgB,GAAG,MAAM,GAAG,GAAG,CAAC;YACtC,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,CAAC;YAEtB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,cAAc,GAAgC,EAAE,CAAC;YAEvD,OAAO,CAAC,UAAU,EAAE;gBACjB,IAAI,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,GAAG,CAAC;uBACpD,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,KAAK,CAAC;uBACxD,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;oBAC5D,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;iBACxD;gBAED,QAAQ,IAAI,CAAC,QAAQ;oBAClB,KAAK,yBAAyB,CAAC,GAAG,EAAE;wBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC;wBACrB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACrD,MAAM,SAAS,GAAG,IAAI,CAAC;wBAEvB,IAAI,QAAQ,IAAI,gBAAgB,GAAG,SAAS,IAAI,UAAU,GAAG,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE;4BAChF,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC;4BAChD,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;4BACnD,MAAM;yBACR;wBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;wBAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;wBACzE,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM;qBACR;oBACD,KAAK,yBAAyB,CAAC,KAAK,EAAE;wBACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBAErD,IAAI,UAAU,IAAI,eAAe,GAAG,SAAS,EAAE;4BAC5C,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC;4BAC/C,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;4BACrD,MAAM;yBACR;wBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC;wBACxE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;wBAC7D,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM;qBACR;oBACD,KAAK,yBAAyB,CAAC,IAAI,EAAE;wBAClC,MAAM,SAAS,GAAG,IAAI,CAAC;wBAEvB,IAAI,SAAS,IAAI,eAAe,GAAG,SAAS,EAAE;4BAC3C,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC;4BAC9C,cAAc,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;4BACpD,MAAM;yBACR;wBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC;wBACxE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;wBAC5D,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM;qBACR;oBACD,SAAS;wBACN,MAAM;qBACR;iBACH;gBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aACtD;SACH;KACH;IAEO,kBAAkB;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC7C;KACH;IAEO,uBAAuB;QAC5B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC3B;KACH;IAEO,gBAAgB,CAAC,OAAe;QACrC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,MAAM,iBAAiB,GAAG;YACvB,IAAI,MAAM,CAAC,WAAW,CAAC;YACvB,IAAI,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,MAAM,CAAC,yBAAyB,CAAC;SACvC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,MAAM,EAAE,CAAC;SACX;QAED,iBAAiB,CAAC,OAAO,CAAC,UAAU;YACjC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,EAAE,CAAC;aACX;SACH,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,CAAC,EAAE;YACb,OAAO,iBAAiB,CAAC,QAAQ,CAAC;SACpC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,iBAAiB,CAAC,IAAI,CAAC;SAChC;aAAM,IAAI,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,iBAAiB,CAAC,MAAM,CAAC;SAClC;aAAM;YACJ,OAAO,iBAAiB,CAAC,MAAM,CAAC;SAClC;KACH;CACH,CAAA;;YA9KyB,UAAU;YACd,cAAc;YACI,wBAAwB;YACxC,QAAQ;;AA1B7B;IADC,KAAK,CAAC,mBAAmB,CAAC;0DACL;AAGtB;IADC,KAAK,CAAC,cAAc,CAAC;6DACoC;AAG1D;IADC,KAAK,CAAC,YAAY,CAAC;2DAC8B;AAGlD;IADC,KAAK,CAAC,aAAa,CAAC;4DACI;AAGzB;IADC,KAAK,CAAC,eAAe,CAAC;8DACI;AAG3B;IADC,KAAK,CAAC,eAAe,CAAC;8DACI;AAG3B;IADC,KAAK,CAAC,eAAe,CAAC;8DACI;AAiB3B;IAFC,YAAY,CAAC,OAAO,CAAC;IACrB,YAAY,CAAC,OAAO,CAAC;wDAUrB;AAGD;IADC,YAAY,CAAC,MAAM,CAAC;uDAGpB;AAnDS,yBAAyB;IAHrC,SAAS,CAAC;QACR,QAAQ,EAAE,qBAAqB;KACjC,CAAC;GACW,yBAAyB,CAuMrC;;IC5MY,sBAAsB,GAAnC,MAAa,sBAAsB;CAAI,CAAA;AAA1B,sBAAsB;IARlC,QAAQ,CAAC;QACP,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE;YACX,yBAAyB;YACzB,yBAAyB;SAC3B;QACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACtC,CAAC;GACW,sBAAsB,CAAI;;ICgJ1B,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IA7F7B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,aAAa;YACb,eAAe;YACf,cAAc;YACd,cAAc;YACd,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,oBAAoB;YACpB,0BAA0B;YAC1B,mBAAmB;YACnB,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjBC,cAAiB;YACjB,YAAY;YACZC,aAAW;YACX,YAAY;YACZ,iBAAiB;YACjBC,aAAkB;YAClB,gBAAgB;YAChB,kBAAkB;YAClB,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,yBAAyB;YACzB,gBAAgB;YAChB,WAAW;YACX,cAAc;YACd,mBAAmB;YACnB,YAAY,CAAC,OAAO,EAAE;YACtB,iBAAiB;YACjB,YAAY;YACZ,sBAAsB;YACtB,YAAY;SACf;QACD,YAAY,EAAE;YACV,0BAA0B;YAC1B,qBAAqB;YACrB,sBAAsB;YACtB,mBAAmB;YACnB,sBAAsB;YACtB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,iBAAiB;YACjBH,qBAAmB;YACnB,eAAe;YACf,oBAAoB;YACpB,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,2BAA2B;YAC3B,sBAAsB;YACtB,oBAAoB;SACvB;QACD,OAAO,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC;QAChD,eAAe,EAAE;YACb,0BAA0B;YAC1B,qBAAqB;YACrB,sBAAsB;YACtB,mBAAmB;YACnB,sBAAsB;YACtB,iBAAiB;YACjBA,qBAAmB;YACnB,oBAAoB;YACpB,oBAAoB;YACpB,uBAAuB;YACvB,oBAAoB;YACpB,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,sBAAsB;YACtB,kBAAkB;YAClB,sBAAsB;YACtB,2BAA2B;YAC3B,oBAAoB;SACvB;QACD,SAAS,EAAE,CAAC,cAAc,CAAC;KAC9B,CAAC;GACW,iBAAiB,CAAG;;ICzJpB,mBAAmB,GAAhC,MAAa,mBAAmB;IAC5B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;KACnC;IAEM,eAAe,CAAC,MAAc,EAAE,OAAe,EAAE,MAAc,EAAE,QAAgB;QACpF,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KAC9C;IAEM,kBAAkB,CAAC,GAMzB,EAAE,QAAgB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KACxC;IAEM,cAAc,CAAC,QAAgB,EAAE,IAAU;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;YACjC,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE;SACzC,CAAC,CAAC;KACN;IAEM,aAAa,CAAC,QAAgB,EAAE,QAAgB;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjD;IAEM,OAAO,CAAC,YAAoB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;KAChE;CACJ,CAAA;;YAjC6B,UAAU;;AAD3B,mBAAmB;IAD/B,UAAU,EAAE;GACA,mBAAmB,CAkC/B;;;ACdD,IAAK,eAcJ;AAdD,WAAK,eAAe;IAChB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,wCAAqB,CAAA;IACrB,kDAA+B,CAAA;IAC/B,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,gCAAa,CAAA;AACjB,CAAC,EAdI,eAAe,KAAf,eAAe,QAcnB;AAED,MAAMH,QAAM,GAAG,OAAO,CAAC;AAkBvB,IAAa,qBAAqB,6BAAlC,MAAa,qBAAqB;IAsC9B,YACY,mBAAwC,EACxC,aAA4B,EAC5B,SAAuB,EACvB,gBAAkC,EACtB,gBAAkC;QAJ9C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAc;QACvB,qBAAgB,GAAhB,gBAAgB,CAAkB;QACtB,qBAAgB,GAAhB,gBAAgB,CAAkB;QA/BnD,yBAAoB,GAAG,gDAAgD,CAAC;QAExE,yBAAoB,GAAG,oDAAoD,CAAC;QAE5E,0BAAqB,GAAG,oDAAoD,CAAC;QAM7E,uBAAkB,GAAY,KAAK,CAAC;QAKpC,WAAM,GAAgB,EAAE,CAAC;QAExB,UAAK,GAAG,KAAK,CAAC;QAId,iBAAY,GAAkB,IAAI,OAAO,EAAE,CAAC;KAYnD;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAoB,CAAC;KACrD;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAgB,CAAC;KACvD;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAEnF,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;QACvE,QAAQ,CAAC,WAAW,CAAC;aAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YAEpC,IAAI,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B,CAAC,CAAC;aACF,SAAS,CAAC,CAAC,QAAe;YACvB,MAAM,CAAC,oBAAoB,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC;YACvD,MAAM,QAAQ,GAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACtC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YAC5D,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACvC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;YACvD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACrC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACxC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAC7C,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACtC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAEnC,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBAAE,OAAO;YACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM;iBACD,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;iBAC/F,OAAO,CAAC,CAAC,KAAU;;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE7B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC/E,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAE3C,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;gBAEhD,MAAM,SAAS,GAAG;oBACd,eAAe,CAAC,OAAO;oBACvB,eAAe,CAAC,KAAK;oBACrB,eAAe,CAAC,IAAI;oBACpB,eAAe,CAAC,QAAQ;oBACxB,eAAe,CAAC,aAAa;oBAC7B,eAAe,CAAC,IAAI;iBACvB,CAAC;gBAEF,MAAM,UAAU,GAAG,EAAE,CAAC;gBACtB,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACjD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzD,IAAI,SAAS,KAAK,eAAe,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBAE9G,UAAI,SAAS,CAAC,QAAQ,+CAAlB,SAAS,GAAe;oBACxB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;iBACxC;gBAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAC3B,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAC9E,UAAU,CACb,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/B,CAAC,CAAC;YAEP,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB,CAAC,CAAC;KACV;IAEM,eAAe;QAClB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAClD;IAED,WAAW,CAAC,OAAsB;QAC9B,IAAI,OAAO,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SAClE;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEM,gBAAgB,CAAC,EAAY;QAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;KACxF;IAEM,iBAAiB,CAAC,EAAY;QACjC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;IAEM,UAAU,CAAC,KAAU;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,mCAAmC,EAAE,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;KACJ;IAEM,gBAAgB,CAAC,UAAmB;QACvC,IAAI,UAAU;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KACpD;IAEM,eAAe;QAClB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAChD,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;KACtH;IAEM,QAAQ;QACX,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK;YAC9C,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,aAAa;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;SACpD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;KACjB;IAEO,qBAAqB,CAAC,QAAiB;QAC3C,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO;SACV;QAED,KAAI,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACzD,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;SAClG;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAGO,oBAAoB,CAAC,MAAW;QACpC,MAAM,YAAY,qBAAQ,MAAM,CAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;;;;;;YAOrC,IAAI,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE;gBAC5B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;gBAC3C,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;gBACzD,IAAI,QAAQ,EAAE;oBACV,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBAC7B;qBAAM;;oBAEH,IAAI,QAAQ,EAAE;wBACV,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;qBACxD;yBAAM;wBACH,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;qBAC9B;iBACJ;aACJ;YAED,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,QAAQ,IAAI;gBACR,KAAK,SAAS,CAAC,IAAI;oBACf,YAAY,CAAC,IAAI,CAAC,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC5C,MAAM;gBACV,KAAK,SAAS,CAAC,QAAQ;oBACnB,YAAY,CAAC,IAAI,CAAC,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAC5C,MAAM;gBACV,KAAK,SAAS,CAAC,aAAa;oBACxB,YAAY,CAAC,IAAI,CAAC,GAAGA,QAAM,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzE,MAAM;gBACV,KAAK,SAAS,CAAC,IAAI;oBACf,YAAY,CAAC,IAAI,CAAC,GAAGA,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;oBACxD,MAAM;aACb;SACJ,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;KACvB;;;;;;IAOO,mCAAmC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAgB,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK;gBACjF,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK;oBAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;aAChF,CAAC,CAAC;SACN;KACJ;IAEO,iBAAiB;QACrB,MAAM,YAAY,GAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;YAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAE3C,IAAI,KAAK,EAAE;gBACP,QAAQ,IAAI;oBACR,KAAK,SAAS,CAAC,MAAM;wBACjB,IAAI,IAAI;4BAAE,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAC3E,MAAM;oBACV,KAAK,SAAS,CAAC,IAAI;wBACf,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3C,MAAM;oBACV,KAAK,SAAS,CAAC,QAAQ;wBACnB,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM;oBACV,KAAK,SAAS,CAAC,aAAa;wBACxB,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;wBAC1D,MAAM;oBACV,KAAK,SAAS,CAAC,IAAI;wBACf,KAAK,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBACzC,MAAM;iBACb;aACJ;YAED,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACxC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBACtC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;aACnD;SACJ,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC;QACtG,OAAO,YAAY,CAAC;KACvB;IAEO,kBAAkB,CAAC,IAAe;QACtC,MAAM,YAAY,GAAG;YACjB,SAAS,CAAC,MAAM;YAChB,SAAS,CAAC,IAAI;SACjB,CAAC;QACF,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACtC;IAEO,YAAY,CAAC,KAAU,EAAE,aAA4B;;QACzD,IAAI,UAAU,CAAC;QAEf,QAAQ,KAAK,CAAC,IAAI;YACd,KAAK,eAAe,CAAC,IAAI;gBACrB,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACtC,MAAM;YACV,KAAK,eAAe,CAAC,OAAO;gBACxB,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACzC,MAAM;YACV,KAAK,aAAa,CAAC;YACnB,KAAK,eAAe,CAAC,IAAI;gBACrB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC5B,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACV,KAAK,eAAe,CAAC,KAAK;gBACtB,UAAU,GAAG;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM;oBACtB,SAAS,EAAE;wBACP,KAAK,cAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,0CAAE,cAAc,mCAAI,IAAI;qBACvD;iBACJ,CAAC;gBACF,MAAM;YACV,KAAK,eAAe,CAAC,MAAM;gBACvB,UAAU,GAAG;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM;iBACzB,CAAC;gBACF,MAAM;YACV,KAAK,eAAe,CAAC,OAAO;gBACxB,UAAU,GAAG;oBACT,IAAI,EAAE,SAAS,CAAC,MAAM;oBACtB,KAAK,EAAE,CAAC;iBACX,CAAC;gBACF,MAAM;YACV;gBACI,UAAU,GAAG,EAAE,CAAC;gBAChB,MAAM;SACb;QAED,OAAO,IAAI,SAAS,iBAChB,IAAI,EAAE,KAAK,CAAC,EAAE,EACd,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAChC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,EACpC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EACtC,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAC9B,QAAQ,EAAE,MAAM,KAAK,CAAC,aAAa,CAAC,SAAS,EAC7C,eAAe,EAAE,aAAa,CAAC,QAAQ,EACvC,eAAe,EAAE,aAAa,CAAC,MAAM,IAClC,UAAU,EACf,CAAC;KACN;IAEO,iBAAiB,CAAC,KAAU;QAChC,OAAO;YACH,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,QAAQ;YACxD,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;SAC5G,CAAC;KACL;IAEO,oBAAoB;QACxB,OAAO;YACH,YAAY,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBAC1C,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;aAC/C;SACJ,CAAC;KACL;IAEO,iBAAiB;QACrB,OAAO;YACH,IAAI,EAAE;gBACF,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,EAAE;aACT;YACD,MAAM,EAAE,gCAAgC;YACxC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACnD,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACnD,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;YACzD,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,CAAC,KAA2B,EAAE,SAAoB;gBAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aACrC;YACD,YAAY,EAAE,CAAC,KAAwB,EAAE,SAAoB;gBACzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aACrC;YACD,cAAc,EAAE,CAAC,KAAa,EAAE,SAAoB;gBAChD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aACvC;YACD,cAAc,EAAE,CAAC,KAA4C,EAAE,SAAoB;gBAC/E,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aACvC;YACD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC;KACL;;;;;IAMO,wBAAwB,CAAC,MAAa;QAC1C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC3F,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,UAAU,CACrB,oBAAoB,EACpB,IAAI,SAAS,CAAC;gBACV,IAAI,SAAS,CAAC;oBACV,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpC,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;oBACtC,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;oBACzD,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;iBAC5D,CAAC;aACL,CAAC,CACL,CAAC;SACL;KACJ;IAEO,sBAAsB,CAAC,KAAgB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QACxG,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,GAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7E,KAAK,CAAC,KAAK,GAAG,CAAC,IAAe,CAAC,CAAC;KACnC;IAEO,YAAY,CAAC,KAA4C,EAAE,KAAgB;QAC/E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAChC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,WAAW,CAAC,SAAS,EAAE;YACvB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,mBAAmB;iBACnB,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC;iBAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAClC,SAAS,CAAC,CAAC,IAAuC;gBAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,mBAAmB;qBACnB,OAAO,CAAC,GAAG,CAAC;qBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBAClC,SAAS,CAAC,CAAC,IAAS;oBACjB,MAAM,OAAO,GAAY,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACpD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC/D,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC/C,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;oBACzB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;oBAC7B,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBAChC,CAAC,CAAC;aACV,CAAC,CAAC;SACV;KACJ;IAEO,UAAU,CAAC,KAA2B,EAAE,SAAc;QAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAiB,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;;QAGtF,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SACpD;QACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBACxD,IAAI,CAAC,mBAAmB;qBACnB,kBAAkB,CACf;oBACI,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;iBACtB,EACD,IAAI,CAAC,oBAAoB,CAC5B;qBACA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B,UAAU,CAAC,CAAC,GAAsB,KAAK,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CACnF;qBACA,SAAS,CAAC,CAAC,IAAS;oBACjB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;oBAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACzB,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,mBAAmB;yBAC7C,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;yBAC9B,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B,UAAU,CAAC,CAAC,GAAsB,KAAK,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAChF,QAAQ,CAAC;wBACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC5B,CAAC,CACL;yBACA,SAAS,CAAC,CAAC,QAAa;wBACrB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;4BACtB,IAAI,IAAI,KAAK,aAAa,CAAC,cAAc;gCACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;iCAClE,IAAI,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE;gCACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gCAElF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gCACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gCAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,mCACnD,QAAQ,KACX,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GACtB,CAAC;gCACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;gCACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;gCACxD,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;6BACxB;yBACJ;6BAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,KAAK,aAAa,CAAC,QAAQ;4BAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;qBAClG,CAAC,CAAC;oBACP,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;iBACxB,CAAC,CAAC;aACV;SACJ;KACJ;IAEO,UAAU,CAAC,KAAwB,EAAE,SAAc;QACvD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAiB,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACtF,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAEf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5E,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,mCACnD,QAAQ,KACX,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GACzD,CAAC;SACL;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAC3D;IAEO,YAAY,CAAC,KAAa,EAAE,SAAc;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAiB,KAAK,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACtF,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;KAC3D;IAEO,gBAAgB,CAAC,KAAgB,EAAE,GAAsB,EAAE,KAAa;QAC5E,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;QACzB,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,IAAI,KAAK,CAAC,iCAAiC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;KACjF;IAEO,iBAAiB,CAAC,KAAa;QACnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;KACnF;CACJ,CAAA;;YAriBoC,mBAAmB;YACzB,aAAa;YACjB,YAAY;YACL,gBAAgB;YACJ,gBAAgB,uBAArD,QAAQ;;AAzCb;IADC,KAAK,EAAE;qDACc;AAEtB;IADC,KAAK,EAAE;sDACe;AAEvB;IADC,KAAK,EAAE;qDACc;AAEtB;IADC,KAAK,EAAE;gEACyB;AAEjC;IADC,KAAK,EAAE;2DACiB;AAEzB;IADC,KAAK,EAAE;mEACuE;AAE/E;IADC,KAAK,EAAE;mEAC2E;AAEnF;IADC,KAAK,EAAE;oEAC4E;AAEpF;IADC,KAAK,EAAE;mEAC4B;AAEpC;IADC,KAAK,EAAE;kEAC2B;AAEnC;IADC,KAAK,EAAE;iEACmC;AAE3C;IADC,KAAK,EAAE;qDACgC;AAExC;IADC,KAAK,EAAE;4DACsB;AA1BrB,qBAAqB;IAhBjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,oOAA6C;QAC7C,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,uBAAqB;gBAClC,KAAK,EAAE,IAAI;aACd;YACD;gBACI,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,uBAAqB;gBAClC,KAAK,EAAE,IAAI;aACd;SACJ;KACJ,CAAC;IA4CO,WAAA,QAAQ,EAAE,CAAA;GA3CN,qBAAqB,CA4kBjC;AAED,SAAS,WAAW,CAAC,IAAa;IAC9B,OAAO,OAAO,IAAI,CAAC,WAAW,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAChC,OAAO,OAAO,IAAI,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7D,CAAC;;ICvnBY,kBAAkB,GAA/B,MAAa,kBAAkB;CAC9B,CAAA;AADY,kBAAkB;IAd9B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,gBAAgB;YAChB,YAAY;YACZ,iBAAiB;YACjB,eAAe;SAClB;QACD,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,SAAS,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;KACrD,CAAC;GACW,kBAAkB,CAC9B;;ICnBY,wBAAwB,GAArC,MAAa,wBAAwB;IAIjC,iBAAgB;IAEhB,eAAe;QACX,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtE;IAEM,oBAAoB,CAAC,KAAU;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;KACnH;IAEM,WAAW,CAAC,KAAU;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;KAChG;IAEO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,KAAU;gBACzC,IACI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;oBACjC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,WAAW;oBACtB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB;oBAC5B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EACjC;oBACE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;oBAClE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC;iBAC3C;gBAED,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACvC,CAAC;YAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvE;KACJ;CACJ,CAAA;AArCG;IADC,KAAK,EAAE;uDACU;AAFT,wBAAwB;IAHpC,SAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;KACxC,CAAC;GACW,wBAAwB,CAuCpC;;ICpCY,qBAAqB,GAAlC,MAAa,qBAAqB;CAAG,CAAA;AAAxB,qBAAqB;IALjC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,wBAAwB,CAAC;QACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;KACtC,CAAC;GACW,qBAAqB,CAAG;;ACPrC,MAAMA,QAAM,GAAG,OAAO,CAAC;AAEvB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,GAAG,GAAG,KAAK,CAAC;AAClB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,MAAsB,SAAS;IACpB,OAAO,KAAK,CAAC,IAAmB;QACnC,OAAOA,QAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;KAChC;IAEM,OAAO,QAAQ,CAAC,IAAU,EAAE,SAAS,GAAG,KAAK;QAChD,IAAI,MAAM,GAAG,SAAS,GAAGA,QAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,GAAGA,QAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE9F,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEM,OAAO,MAAM,CAAC,IAAS,EAAE,eAAuB,yBAAyB,EAAE,OAAe,IAAI;QACjG,MAAM,SAAS,GAAGA,QAAM,CAAC,IAAI,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC;aACZ,OAAO,CAAC,OAAO,CAAC;aAChB,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG;YACf,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YACjC,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/B,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;YAC3B,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,oBAAoB;SAC5B,CAAC;QAEF,IAAI,GAAG,GAAG,YAAY,CAAC;QACvB,MAAM,eAAe,GAAU,EAAE,CAAC;QAElC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;aACnC,OAAO,CAAC,GAAG;YACR,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrD,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;aACzC;SACJ,CAAC,CAAC;QAEP,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SACrC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;KACd;IAEM,OAAO,IAAI,CAAC,QAAc,EAAE,UAAgB,EAAE,KAAa;QAC9D,MAAM,YAAY,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACpE,MAAM,OAAO,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,MAAM,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,GAAGA,QAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,KAAK,IAAI,GAAG,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,KAAK,CACb;YACI,YAAY;YACZ,OAAO;YACP,OAAO;YACP,KAAK;YACL,IAAI;YACJ,MAAM;YACN,KAAK;SACR,CAAC,KAAK,CAAC,CACX,CAAC;KACL;IAEM,OAAO,KAAK;QACf,MAAM,OAAO,GAAGA,QAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;IAEM,OAAO,GAAG;QACb,OAAOA,QAAM,EAAE,CAAC,MAAM,EAAE,CAAC;KAC5B;IAEM,OAAO,GAAG,CAAC,IAAU,EAAE,QAAa,EAAE,KAAU;QACnD,OAAOA,QAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;KACrD;IAEM,OAAO,OAAO,CAAC,IAAU,EAAE,KAAa;QAC3C,MAAM,MAAM,GAAG;YACX,CAAC,IAAI,GAAG,CAAC;YACT,CAAC,KAAK,GAAG,CAAC;YACV,CAAC,GAAG,GAAG,CAAC;YACR,CAAC,IAAI,GAAG,CAAC;YACT,CAAC,MAAM,GAAG,CAAC;YACX,CAAC,MAAM,GAAG,CAAC;YACX,CAAC,WAAW,GAAG,CAAC;SACnB,CAAC;QAEF,SAAS,WAAW,CAAC,MAAW;YAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;SACtC;QAED,MAAM,IAAI,GAAQ;YACd,IAAI,CAAC,WAAW,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;YACvC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;YACvC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;YACzC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;YAC3C,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;SACnD,CAAC;QAEF,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAClF;IAEM,OAAO,KAAK,CAAC,IAAU;QAC1B,OAAOA,QAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;KAChC;IAEM,OAAO,aAAa,CAAC,IAAU;QAClC,OAAO;YACH,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,eAAe,EAAE;SACzB,CAAC;KACL;IAEM,OAAO,cAAc,CAAC,IAAU;QACnC,OAAOA,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;KAChD;CACJ;;ACpJM,MAAM,CAAC,GAAG,CAAC,IAAS,EAAE,GAAQ;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ;UACzB,CAAC,GAAG,IAAI,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC;UACrC,IAAI,IAAI,IAAI,CAAC;AACvB,CAAC,CAAA;AAED,AAAO,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,KAAU;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;IACzE,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACpB,IAAI,IAAI,KAAK,WAAW,EAAE;YACtB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;YAC/B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;SACpC;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AAED,AAAO,MAAM,UAAU,GAAG,CAAC,UAAe,EAAE,IAAS,EAAE,IAAS,EAAE,EAAO;IACrE,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,kBAAkB,KAAK,UAAU,EAAE;;;QAGnC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;QAErC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC3C;AACL,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,UAAe,EAAE,IAAS,EAAE,IAAS,EAAE,EAAO,EAAE,GAAG,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM;IACrG,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,EAAE;QACR,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;YACX,aAAa,EAAE,IAAI;YACnB,IAAI;YACJ,EAAE;YACF,GAAG;YACH,KAAK,EAAE,UAAU,GAAG,KAAK;SAC5B,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,UAAU,CAAC;KACrB;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,EAAE;QACxC,aAAa,EAAE,IAAI;QACnB,IAAI;QACJ,EAAE;QACF,GAAG;QACH,KAAK;QACL,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,EAAE;QACvB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC;KACvC,CAAC,CAAC;IACH,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAEvC,OAAO,UAAU,CAAC;AACtB,CAAC,CAAA;;AAED,MAAM,YAAY,GAAG,CAAC,IAAS;IAC3B,OAAO;QACH,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,aAAa;KAC/B,CAAC,IAAI,CAAC,CAAC;AACZ,CAAC,CAAA;;AAED,CAAC,CAAC,EAAE,GAAG,CAAC,OAAY,EAAE,KAAU,EAAE,QAAa,EAAE,QAAa;IAC1D,IAAI,CAAC,QAAQ,EAAE;QACX,QAAQ,GAAG,QAAQ,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KACpC;SAAM;QACH,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAClD;AACL,CAAC,CAAC;AAEF,CAAC,CAAC,GAAG,GAAG,CAAC,OAAY,EAAE,KAAU,EAAE,OAAY;IAC3C,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,CAAC,CAAC,IAAI,GAAG,CAAC,OAAY,EAAE,KAAU,EAAE,QAAa;IAC7C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,KAAU;QAC3C,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC7C,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAY,EAAE,KAAU,EAAE,QAAa,EAAE,QAAa;IAChE,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAM;QAC5C,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,eAAe,EAAE;YACjB,CAAC,CAAC,eAAe,GAAG,eAAe,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;SAC3C;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,CAAC,CAAC,OAAO,GAAG,CAAC,QAAa,EAAE,OAAY;IACpC,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,IAAI,CAAC;KACf;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,OAAO,OAAO,CAAC;KAClB;;;AAIL,CAAC,CAAC;AAEF,CAAC,CAAC,IAAI,GAAG,CAAC,OAAY,EAAE,IAAS,EAAE,KAAU;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACpC,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;YAClB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACnC;QACD,OAAO;KACV;IAED,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;;IClIU,QAQX;AARD,WAAY,QAAQ;IAChB,qCAAyB,CAAA;IACzB,+BAAmB,CAAA;IACnB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;AACjB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;;MCAY,GAAG;IAqCZ,YAAY,KAAU,EAAE,IAAS;QAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAzBD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,IAAW,MAAM,CAAC,MAAe;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;KACzB;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IASM,iBAAiB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAO;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE;;YAEH,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAQ;gBAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAClD,CAAC,CAAC;;YAEH,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,IAAS;gBAC3C,OAAO,CAAC,IAAI,IAAI,CAAC;aACpB,EAAE,CAAC,CAAC,CAAC;YACN,IAAI,CAAC,OAAO,EAAE;gBACV,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO;aACV;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC;QACD,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,WAAW;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEjE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE;YAClC,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;SAC9B;QAED,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE;gBACtC,IAAI,CAAC,IAAI;gBACT,YAAY;gBACZ,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;aAC1C,CAAC,CAAC;SACN;QAAA,CAAC;KACL;IAEM,kBAAkB;QACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC;YACP,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SACjC,EAAE,IAAI,CAAC,CAAC;KACZ;IAEO,YAAY,CAAC,KAAU,EAAE,IAAS;QACtC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEO,QAAQ;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,cAAc;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5G,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YACtD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE;YAC5B,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,IAAI,CAAC,KAAK;SACxB,CAAC,CAAC;KACN;IAEO,eAAe;QAClB,UAAU,CAAC,SAAiB,CAAC,IAAI,GAAG;YACjC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAClC,CAAC;QACD,UAAU,CAAC,SAAiB,CAAC,IAAI,GAAG;YACjC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAClC,CAAC;QACD,UAAU,CAAC,SAAiB,CAAC,QAAQ,GAAG;YACrC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SACtC,CAAC;QACD,UAAU,CAAC,SAAiB,CAAC,SAAS,GAAG;YACtC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACvC,CAAC;QACD,UAAU,CAAC,SAAiB,CAAC,OAAO,GAAG;YACpC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACxC,CAAC;KACL;IAEO,KAAK;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,QAAQ;QACZ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE;YAC9B,CAAC,EAAE,IAAI,CAAC,EAAE;YACV,CAAC,EAAE,IAAI,CAAC,EAAE;YACV,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,EAAE,EAAE,IAAI,CAAC,aAAa;YACtB,EAAE,EAAE,IAAI,CAAC,aAAa;YACtB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SAC7C;KACJ;IAEO,UAAU;QACd,SAAS,CAAC,MAAM,EAAE;YACd,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;YACvD,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;;QAEH,qBAAqB,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KAC5D;IAEO,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;IAEO,gBAAgB;QACpB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAM;;YAEjE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACtC;SACJ,EAAE,IAAI,CAAC,CAAC;QAET,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAM;;YAGhC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACrD;SACJ,EAAE,IAAI,CAAC,CAAC;KACZ;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YAC/B,OAAO;SACV;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;cACjD,OAAO;cACP,OAAO,CAAC;QAEd,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAC/B,CAAC;QACF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAC7B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAC1C,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAC/B,CAAC;QACF,MAAM,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnB,cAAc,EAAE,IAAI,CAAC,OAAO;YAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACrB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EACnC,MAAM,CACT,CAAC;QACF,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACxE,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAC5B,YAAY,EACZ,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EACzC,MAAM,CACT,CAAC;QAEF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;KACvC;IAEO,SAAS;QACb,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAClD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC;QAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,IAAI,EAAE,CAAC;SACjC;QACD,OAAO,CAAC,CAAC;KACZ;IAEO,SAAS;QACb,QACI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACjE;KACL;IAEO,WAAW,CAAC,OAAY,EAAE,IAAS,EAAE,KAAU;QACnD,KAAK,GAAG,CAAC,KAAK,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,OAAO,CAAC;KAClB;IAEO,oBAAoB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EACpB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE;YACxC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SAC5D;aAAM;YACH,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SAC5D;KACJ;IAEO,oBAAoB;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5B,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB;KACJ;CACJ;;MCrTY,KAAK;IAOd,YAAY,MAAW,EAAE,UAAe;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAEM,IAAI,CAAC,OAAY;QACpB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACnB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;SAC7B;QACD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAE9C,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,6BAA6B,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACxD;aAAM;;YAEH,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;SAC5D;;QAGD,IAAI,YAAY,CAAC;QACjB,IAAI,cAAc,YAAY,WAAW,EAAE;YACvC,YAAY,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC;SACzD;aAAM,IAAI,cAAc,YAAY,UAAU,EAAE;YAC7C,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACnD;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;YAE9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;SAClC;;QAGD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KACjC;IAEO,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;;;;;;;;;;;SAWvB,CAAC;QAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KACxD;IAEO,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;KAC9B;CACJ;;MC5EY,KAAK;IAOd,YAAY,KAAY,EAAE,QAAa,EAAE,MAAW;QAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAEM,MAAM;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/C;IAEO,aAAa;QACjB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEjF,MAAM,SAAS,GAAG,MACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YACjE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAExE,OAAO,SAAS,EAAE,EAAE;YAChB,MAAM,IAAI,EAAE,CAAC;SAChB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;YAC7B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;gBAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;YACjC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;gBAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7C,MAAM,SAAS,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,aAAa,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa;cACtB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;cACrC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QAE5C,IAAI,CAAC,KAAK,GAAG;gBACL,MAAM,IAAI,MAAM;gBAChB,MAAM;gBACN,KAAK,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,IAAI,MAAM;gBAClD,IAAI,IAAI,IAAI;;;mBAGT,CAAC;QAEZ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YACzF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;YACxF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YAEtE,IAAI,CAAC,KAAK,GAAG;oBACL,MAAM,IAAI,MAAM;oBAChB,KAAK;oBACL,KAAK,IAAI,KAAK,WAAW,KAAK,IAAI,KAAK;oBACvC,IAAI;oBACJ,KAAK,IAAI,KAAK,QAAQ,SAAS,KAAK,KAAK,IAAI,MAAM;oBACnD,KAAK;oBACL,KAAK,IAAI,KAAK,QAAQ,SAAS,IAAI,KAAK,IAAI,MAAM;oBAClD,IAAI,IAAI,IAAI;;;uBAGT,CAAC;SACf;KACJ;IAEO,IAAI;QACR,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE;YAC9B,CAAC,EAAE,IAAI,CAAC,KAAK;YACb,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;SACjC,CAAC,CAAC;KACN;CACJ;;ACpGM,MAAM,cAAc,GAAY;IACnC,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,QAAQ,CAAC,GAAG;IACtB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;CACjB,CAAC;;MCNW,KAAK;IA4Bd,YAAY,OAAY,EAAE,KAAa,EAAE,OAAiB;QACtD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;QAExB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAfD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAWO,aAAa,CAAC,OAAY;QAC9B,IAAI,WAAW,EAAE,eAAe,CAAC;;QAGjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC7C;;QAGD,IAAI,OAAO,YAAY,WAAW,EAAE;YAChC,eAAe,GAAG,OAAO,CAAC;YAC1B,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC9C;aAAM,IAAI,OAAO,YAAY,UAAU,EAAE;YACtC,WAAW,GAAG,OAAO,CAAC;SACzB;aAAM;YACH,MAAM,IAAI,SAAS,CACf,8HAA8H,CACjI,CAAC;SACL;;QAGD,IAAI,CAAC,WAAW,EAAE;;YAEd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE;gBACzB,SAAS,EAAE,eAAe;gBAC1B,KAAK,EAAE,OAAO;aACjB,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACpC;;QAGD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;QAGvC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;IAEO,aAAa,CAAC,OAAY;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;KAC7D;IAEM,WAAW,CAAC,KAAU;;QAEzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAM;;YAErC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;;YAGrC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAGtC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE;gBACrD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;aACnB;;YAGD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAEhB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;gBAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;aAC9B;;YAGD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;aAC9C;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aACrD;YAED,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;aACpD;;;YAID,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;aACpD;;YAGD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;;YAGD,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC7D,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,GAAG,IAAI,CAAC,YAAY;yBACnB,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;yBACzB,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC;iBAC9B;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC5B;;YAGD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBACV,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,kBAAkB;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACtB,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE;gBAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrC;SACJ;KACJ;IAEM,OAAO,CAAC,KAAa;QACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEM,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;QAChD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;;QAEd,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;KAC9C;IAEO,iBAAiB,CAAC,SAAc;QACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;;QAElC,IAAI,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;;SAEjC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;SACjC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,OAAO,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;SACjC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,UAAU,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;SACjC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;SAClC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,KAAK,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;SAClC;aAAM,IAAI,SAAS,KAAK,QAAQ,CAAC,IAAI,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;SAClC;KACJ;IAEO,WAAW;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEO,iBAAiB;;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;;YAEzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;aAC9B;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;aAC5B;SACJ;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QAEjC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ;YACzB,KAAK,QAAQ,CAAC,IAAI;gBACd,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtF,MAAM;YACV,KAAK,QAAQ,CAAC,UAAU;gBACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBACvF,MAAM;YACV,KAAK,QAAQ,CAAC,OAAO;gBACjB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrF,MAAM;YACV,KAAK,QAAQ,CAAC,GAAG;gBACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrF,MAAM;YACV,KAAK,QAAQ,CAAC,IAAI;gBACd,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBACvF,MAAM;YACV,KAAK,QAAQ,CAAC,KAAK;gBACf,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtF,MAAM;YACV,KAAK,QAAQ,CAAC,IAAI;gBACd,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,mCAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC5F,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,QAAE,IAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtF,MAAM;SACb;KACJ;IAEO,iBAAiB;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;YACjD,IAAI,CAAC,QAAQ,EAAE;gBACX,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC7B,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;iBACjD;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACrC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;iBAClD;qBAAM;oBACH,QAAQ,GAAG,SAAS,CAAC,GAAG,CACpB,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,MAAM,CACT,CAAC;iBACL;aACJ;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;IAEO,WAAW;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,MAAM;QACV,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAEO,YAAY;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;;QAEvE,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE;gBAChC,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,IAAI,CAAC,IAAI;aACvB,CAAC,CAAC;SACN;KACJ;IAEO,SAAS;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,oBAAoB;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAChE,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;YACzC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC;YACxB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC9C,aAAa,CAAC,MAAM,CAAC;QAEzB,SAAS,CAAC,MAAM,EAAE;YACd,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC9B,CAAC,CAAC;QAEH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,MAAM;SAChB,EAAE,IAAI,CAAC,CAAC;KACZ;IAEO,cAAc;QAClB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;QAEjE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChB,SAAS,CAAC,MAAM,EAAE;gBACd,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,KAAK;gBACR,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,UAAU;aACxB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,EAAE;gBACd,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,KAAK,GAAG,UAAU;gBACtB,EAAE,EAAE,SAAS;gBACb,EAAE,EAAE,KAAK,GAAG,UAAU;gBACtB,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,WAAW;aACzB,CAAC,CAAC;YAEH,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SAC1D,CAAC,CAAC;KACN;IAEO,gBAAgB;;QAEpB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;QACrD,SAAS,CAAC,MAAM,EAAE;YACd,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC9B,CAAC,CAAC;KACN;IAEO,eAAe;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QAClE,IAAI,WAAW,GACX,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEtB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YACzB,IAAI,UAAU,GAAG,MAAM,CAAC;;YAExB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACpD,UAAU,IAAI,QAAQ,CAAC;aAC1B;;YAED,IACI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;gBACnB,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EACpB;gBACE,UAAU,IAAI,QAAQ,CAAC;aAC1B;;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC3D,UAAU,IAAI,QAAQ,CAAC;aAC1B;YAED,SAAS,CAAC,MAAM,EAAE;gBACd,CAAC,EAAE,KAAK,MAAM,IAAI,MAAM,MAAM,WAAW,EAAE;gBAC3C,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC9B,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC9B,MAAM;oBACF,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC3B,IAAI,CAAC,OAAO,CAAC,WAAW;wBAC5B,EAAE,CAAC;aACV;iBAAM;gBACH,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;aACtC;SACJ;KACJ;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;gBACzD,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,IAAI,CAAC,OAAO,CAAC,YAAY;gBACzB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;YAE7B,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAEzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;gBAE/D,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3D,IAAI,SAAS,CAAC;gBAEd,IAAI,OAAO,EAAE;oBACT,SAAS,GAAG,iBAAiB,CAAC;oBAC9B,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;iBAC9D;qBAAM,IAAI,SAAS,EAAE;oBAClB,SAAS,GAAG,mBAAmB,CAAC;iBACnC;gBAED,MAAM,EAAE,GAAG,CAAC,CAAC;gBACb,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEb,IAAI,OAAO,IAAI,SAAS,EAAE;oBACtB,SAAS,CAAC,MAAM,EAAE;wBACd,CAAC;wBACD,CAAC;wBACD,EAAE;wBACF,EAAE;wBACF,KAAK;wBACL,MAAM;wBACN,KAAK,EAAE,SAAS;wBAChB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;qBAC9B,CAAC,CAAC;iBACN;gBAED,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;aACjC;SACJ;KACJ;IAEO,UAAU;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;gBAChF,SAAS,CAAC,MAAM,EAAE;oBACd,CAAC,EAAE,IAAI,CAAC,OAAO;oBACf,CAAC,EAAE,IAAI,CAAC,OAAO;oBACf,SAAS,EAAE,IAAI,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBAC9C,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBAC9B,CAAC,CAAC;aACN;YAED,SAAS,CAAC,MAAM,EAAE;gBACd,CAAC,EAAE,IAAI,CAAC,OAAO;gBACf,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE;gBACpB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC9B,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE;oBAClC,CAAC,EAAE,IAAI,CAAC,OAAO;oBACf,CAAC,EAAE,IAAI,CAAC,OAAO;oBACf,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBAC9B,CAAC,CAAC;;gBAGH,IACI,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAC7D;oBACE,WAAW,CAAC,MAAM,EAAE,CAAC;iBACxB;aACJ;SACJ;KACJ;IAEO,iBAAiB;QACrB,IAAI,SAAS,GAAQ,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAM;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACjD,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,CAAC;SACZ,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;KAChB;IAEO,aAAa,CAAC,IAAU,EAAE,SAAe,EAAE,CAAM;QACrD,IAAI,CAAC,SAAS,EAAE;YACZ,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;SAC9C;QACD,MAAM,SAAS,GAAG;YACd,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEjE,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEvE,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEpE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE;kBAC1C,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBAClD,EAAE;YAER,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;kBAC7C,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACtD,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAExD,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEjE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEhE,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE;kBACjD,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACtD,EAAE;YAER,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE;kBAC9C,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;sBACpC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;sBACtD,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACtD,EAAE;YAER,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;kBAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACrD,EAAE;YAER,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;kBAC7C,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACrD,EAAE;YAER,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;kBACpD,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACrD,EAAE;YAER,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;kBACnD,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACrD,EAAE;YAER,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;kBACxC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACtD,EAAE;SACX,CAAC;;QAGF,MAAM,QAAQ,GAAG;YACb,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,GAAG,EAAE;SAC/C,CAAC;QAEF,MAAM,KAAK,GAAG;YACV,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YACvC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC;YAC5C,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YAC7C,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YAC1C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YACtC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,CAAC;YAC7C,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;YAC7C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;YACvC,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,CAAC;SACjD,CAAC;QAEF,OAAO;YACH,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC;YACtD,UAAU,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC;YACtD,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC;YAC5D,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC;YAC5D,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI;SACP,CAAC;KACL;IAEO,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS;YACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,CAAC;SACd,CAAC,CAAC;KACN;IAEO,WAAW;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YACzB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC,YAAY;iBACrB,GAAG,CAAC,CAAC,OAAY;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,UAAU;oBAAE,OAAO;gBACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CACnB,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;iBACzB,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;aAChB,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC5C;KACJ;IAEO,kBAAkB;QACtB,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YACvB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAY;gBACzC,QACI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;oBACtC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EACtC;aACL,CAAC,CAAC;SACN;KACJ;IAEO,SAAS;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI;aACzB,aAAa,CAAC,iBAAiB,CAAC;aAChC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,SAAS,GAAG,YAAY,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SACjD;KACJ;IAEO,mBAAmB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,uBAAuB,GAAG,SAAS,CAAC,IAAI,CAC1C,IAAI,CAAC,wBAAwB,EAAE,EAC/B,IAAI,CAAC,OAAO,EACZ,MAAM,CACT,CAAC;QAEF,MAAM,UAAU,GACZ,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YAC5C,IAAI,CAAC,OAAO,CAAC,WAAW;YACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7B,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;KAC1C;IAEO,eAAe;QACnB,CAAC,CAAC,EAAE,CACA,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,yBAAyB,EACzB;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB,CACJ,CAAC;KACL;IAEO,eAAe;QACnB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,aAAa,GAAQ,IAAI,CAAC;QAC9B,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,SAAS,kBAAkB;YACvB,OAAO,WAAW,IAAI,gBAAgB,IAAI,iBAAiB,CAAC;SAC/D;QAED,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAM,EAAE,OAAY;YACvE,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEvD,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACpC,gBAAgB,GAAG,IAAI,CAAC;aAC3B;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC5C,iBAAiB,GAAG,IAAI,CAAC;aAC5B;iBAAM,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBAClD,WAAW,GAAG,IAAI,CAAC;aACtB;YAED,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEpC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;YAEvB,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG;gBACR,aAAa;gBACb,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC;aACjD,CAAC;YACF,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YAEvC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;gBACb,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;gBACzB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;aACpB,CAAC,CAAC;SACN,CAAC,CAAC;QAEH,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAM;YAChC,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBACvB,OAAO;aACV;YAED,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;gBACb,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,gBAAgB,EAAE;oBAClB,IAAI,aAAa,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC/B,GAAG,CAAC,iBAAiB,CAAC;4BAClB,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;4BACzB,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;yBACpC,CAAC,CAAC;qBACN;yBAAM;wBACH,GAAG,CAAC,iBAAiB,CAAC;4BAClB,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;yBAC5B,CAAC,CAAC;qBACN;iBACJ;qBAAM,IAAI,iBAAiB,EAAE;oBAC1B,IAAI,aAAa,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC/B,GAAG,CAAC,iBAAiB,CAAC;4BAClB,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;yBACpC,CAAC,CAAC;qBACN;iBACJ;qBAAM,IAAI,WAAW,EAAE;oBACpB,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;iBACxD;aACJ,CAAC,CAAC;SACN,EAAE,IAAI,CAAC,CAAC;QAET,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAM;YACxC,IAAI,WAAW,IAAI,gBAAgB,IAAI,iBAAiB,EAAE;gBACtD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC/D;YAED,WAAW,GAAG,KAAK,CAAC;YACpB,gBAAgB,GAAG,KAAK,CAAC;YACzB,iBAAiB,GAAG,KAAK,CAAC;SAC7B,CAAC,CAAC;QAEH,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAM;YAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;gBACb,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAC1B,GAAG,CAAC,WAAW,EAAE,CAAC;gBAClB,GAAG,CAAC,kBAAkB,EAAE,CAAC;aAC5B,CAAC,CAAC;SACN,EAAE,IAAI,CAAC,CAAC;KACZ;IAEO,uBAAuB,CAAC,OAAY;QACxC,IAAI,GAAG,GAAU,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI;gBACrC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,OAAO,GAAG,CAAC;aACd,EAAE,EAAE,CAAC,CAAC;YAEP,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SACjE;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC9B;IAEO,iBAAiB,CAAC,EAAO;QAC7B,IAAI,GAAG,GAAG,EAAE,EACR,GAAG,EACH,QAAQ,CAAC;QAEb,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC7B,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;SACnG;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpC,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YAC1C,QAAQ,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;SACnG;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACrC,GAAG,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;YAC3C,QAAQ,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;SACpG;aAAM;YACH,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACpC,QAAQ,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC9F;QACD,OAAO,QAAQ,CAAC;KACnB;IAEM,YAAY;QACf,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;YACvD,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjC,CAAC,CAAC;KACN;IAEM,OAAO,CAAC,KAA4B;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;KAC1C;IAEO,QAAQ,CAAC,EAAO;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAS;YAC7B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;SACzB,CAAC,CAAC;KACN;IAEM,OAAO,CAAC,EAAO;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAQ;YAC3B,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;SAC7B,CAAC,CAAC;KACN;IAEM,UAAU,CAAC,OAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CAAC,eAAe,CAC/B,CAAC;SACL;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;IAEO,UAAU;QACd,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnC;IAEM,aAAa,CAAC,KAAa,EAAE,IAAS;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzC;KACJ;IAEO,wBAAwB;QAC5B,OAAO,IAAI,CAAC,KAAK;aACZ,GAAG,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,CAAC,SAAc,EAAE,QAAa,KAClC,QAAQ,IAAI,SAAS,GAAG,QAAQ,GAAG,SAAS,CAC/C,CAAC;KACT;IAEO,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KAC5B;CACJ;AAED,SAAS,WAAW,CAAC,IAAS;IAC1B,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;;ICx4BY,cAAc,GAA3B,MAAa,cAAc;IAA3B;QAKW,wBAAmB,GAAG,KAAK,CAAC;QAG5B,kBAAa,GAAG,IAAI,CAAC;QAGrB,aAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAYxB,gBAAW,GAAuB,IAAI,YAAY,EAAE,CAAC;QAGrD,oBAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;QAGxD,gBAAW,GAA2B,IAAI,YAAY,EAAE,CAAC;KAqEnE;IAjEU,QAAQ;QACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEM,eAAe;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,CAAC,IAAU,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YACpD,YAAY,EAAE,CAAC,IAAU,EAAE,KAAU,EAAE,GAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACnG,YAAY,EAAE,CAAC,QAAkB,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;SACxE,CAAC,CAAC;KACN;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO;SACV;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;SAClC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SACrE;KACJ;IAEO,WAAW,CAAC,WAAwB;QACxC,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,KAAa;gBAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAkB;oBAC7C,uCAAY,IAAI,KAAE,OAAO,EAAE,KAAK,IAAG;iBACtC,CAAC,CAAC,CAAC;aACP,EAAE,EAAE,CAAC,CAAC;SACV;aAAM;YACH,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAkB;oBAC7C,uCAAY,IAAI,KAAE,OAAO,EAAE,CAAC,EAAE,IAAG;iBACpC,CAAC,CAAC,CAAC;aACP,EAAE,EAAE,CAAC,CAAC;SACV;QAED,OAAO,KAAK,CAAC;KAChB;IAEO,iBAAiB;QACrB,IAAI,CAAC;YACD,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,UAAU;YACnB,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,KAAK;YACd,QAAQ,CAAC,IAAI;SAChB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC9C;KACJ;CACJ,CAAA;AAhGG;IADC,KAAK,EAAE;mDACmB;AAG3B;IADC,KAAK,EAAE;2DAC2B;AAGnC;IADC,KAAK,EAAE;qDACoB;AAG5B;IADC,KAAK,EAAE;gDACuB;AAG/B;IADC,KAAK,EAAE;6CACkB;AAG1B;IADC,KAAK,EAAE;yDAC0B;AAGlC;IADC,KAAK,EAAE;sDACuB;AAG/B;IADC,MAAM,EAAE;mDACmD;AAG5D;IADC,MAAM,EAAE;uDACsD;AAG/D;IADC,MAAM,EAAE;mDACuD;AA7BvD,cAAc;IAT1B,SAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,kRAAqC;QAKrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,cAAc,CAkG1B;;ICzGY,kBAAkB,GAA/B,MAAa,kBAAkB;IAA/B;QACS,eAAU,GAAG,EAAE,CAAC;QAShB,wBAAmB,GAAG,KAAK,CAAC;KACpC;CAAA,CAAA;AAPC;IADC,KAAK,EAAE;uDACmB;AAG3B;IADC,KAAK,EAAE;iDACmB;AAG3B;IADC,KAAK,EAAE;+DAC2B;AAVxB,kBAAkB;IAL9B,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,8jBAA0C;;KAE3C,CAAC;GACW,kBAAkB,CAW9B;;ICLY,WAAW,GAAxB,MAAa,WAAW;CAAI,CAAA;AAAf,WAAW;IARvB,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE;YACV,cAAc;YACd,kBAAkB;SACrB;QACD,OAAO,EAAE,CAAC,cAAc,CAAC;KAC5B,CAAC;GACW,WAAW,CAAI;;ICRf,eAAe,GAA5B,MAAa,eAAe;CAAG,CAAA;AAAlB,eAAe;IAJ3B,SAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,2BAA2B;KACxC,CAAC;GACW,eAAe,CAAG;;ICAlB,eAAe,GAA5B,MAAa,eAAe;CAAG,CAAA;AAAlB,eAAe;IAJ3B,SAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,2BAA2B;KACxC,CAAC;GACW,eAAe,CAAG;;ICKlB,eAAe,GAA5B,MAAa,eAAe;CAAG,CAAA;AAAlB,eAAe;IAL3B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;QAChD,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;KAC9C,CAAC;GACW,eAAe,CAAG;;;ICYlB,qBAAqB,6BAAlC,MAAa,qBAAqB;IAAlC;QAIW,OAAE,GAAG,mBAAmB,uBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;QAGzD,YAAO,GAAG,KAAK,CAAC;QAGhB,WAAM,GAAG,iBAAiB,CAAC;QAG3B,cAAS,GAAG,UAAU,CAAC;QAGvB,uBAAkB,GAAG,QAAQ,CAAC;QAG9B,gBAAW,GAAG,SAAS,CAAC;QAGxB,gBAAW,GAAG,UAAU,CAAC;QAGzB,oBAAe,GAAG,sDAAsD,CAAC;QAGzE,0BAAqB,GAAG,iBAAiB,CAAC;QAG1C,wBAAmB,GAAG,iBAAiB,CAAC;QAGxC,gBAAW,GAAG,GAAG,CAAC;QAGlB,YAAO,GAAG,KAAK,CAAC;QAGhB,uBAAkB,GAAG,IAAI,CAAC;QAG1B,gBAAW,GAAG,IAAI,CAAC;QAGnB,gBAAW,GAAG,IAAI,CAAC;QAMnB,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAG5C,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAGjC,iBAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAG1C,kBAAa,GAAG,IAAI,YAAY,EAAqB,CAAC;QAGtD,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAGlC,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;KAsFtC;IAzEU,QAAQ;QACX,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;KAC5C;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;YACzD,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACjD,WAAW,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW;YAChD,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAA0B;YACpC,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,CAAC;YAClB,wBAAwB,EAAE,KAAK;SAClC,CAAC,CAAC;KACN;IAEM,gBAAgB,CAAC,YAA+B;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACrC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,CAAC,wBAAwB,GAAG,gBAAgB,CAAC;QACpD,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;KACjB;IAEM,WAAW;QACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC7B;aAAM;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO;kBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;kBACtD,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAEtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAEM,aAAa;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;IAEM,aAAa;QAChB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC5B;IAEM,QAAQ;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;IAEM,oBAAoB,CAAC,OAAgB;QACxC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;CACJ,CAAA;AAxJiB,4BAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;iDACwD;AAGhE;IADC,KAAK,EAAE;sDACe;AAGvB;IADC,KAAK,EAAE;qDAC0B;AAGlC;IADC,KAAK,EAAE;wDACsB;AAG9B;IADC,KAAK,EAAE;iEAC6B;AAGrC;IADC,KAAK,EAAE;0DACuB;AAG/B;IADC,KAAK,EAAE;0DACwB;AAGhC;IADC,KAAK,EAAE;8DACwE;AAGhF;IADC,KAAK,EAAE;oEACyC;AAGjD;IADC,KAAK,EAAE;kEACuC;AAG/C;IADC,KAAK,EAAE;0DACiB;AAGzB;IADC,KAAK,EAAE;sDACe;AAGvB;IADC,KAAK,EAAE;iEACyB;AAGjC;IADC,KAAK,EAAE;0DACkB;AAG1B;IADC,KAAK,EAAE;0DACkB;AAG1B;IADC,KAAK,EAAE;0DACoB;AAG5B;IADC,MAAM,EAAE;4DAC0C;AAGnD;IADC,MAAM,EAAE;0DAC+B;AAGxC;IADC,MAAM,EAAE;2DACwC;AAGjD;IADC,MAAM,EAAE;4DACoD;AAG7D;IADC,MAAM,EAAE;2DACgC;AAGzC;IADC,MAAM,EAAE;qDAC0B;AAGnC;IADC,SAAS,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oDACZ;AAGzB;IADC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;4DACV;AAGtC;IADC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;4DACV;AA5E7B,qBAAqB;IANjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,oxGAA6C;QAE7C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,qBAAqB,CAyJjC;;ICjKY,kBAAkB,GAA/B,MAAa,kBAAkB;CAAG,CAAA;AAArB,kBAAkB;IAN9B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC;QACtF,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC;QACjD,eAAe,EAAE,CAAC,qBAAqB,CAAC;KAC3C,CAAC;GACW,kBAAkB,CAAG;;ICTrB,mBAAmB,GAAhC,MAAa,mBAAmB;IAG5B,YAAoB,wBAAkD,EAAU,MAAsB,EAAU,QAAkB;QAA9G,6BAAwB,GAAxB,wBAAwB,CAA0B;QAAU,WAAM,GAAN,MAAM,CAAgB;QAAU,aAAQ,GAAR,QAAQ,CAAU;KAAI;IAE/H,IAAI,CAAC,MAA2B;QACnC,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG;YAClB,YAAY,EAAE,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAChH,aAAa,EAAE,IAAI,OAAO,EAAE;SAC/B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAI,aAAa,CAAC,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;QAC1G,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC9C,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAEnD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa;aAC5C,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAC3C,KAAK,CAAC,IAAI,CAAC,CACd;aACA,SAAS,CAAC,OAAO;YACd,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC7C,CAAC,CAAC;KACV;IAEO,iBAAiB,CAAC,aAA4B,EAAE,MAA2B;QAC/E,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC;QAErD,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,OAAO,KAAK,KAAK,UAAU;oBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qBAClD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;oBAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAY,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;iBACpH;aACJ,CAAC,CAAC;SACN;QAED,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;KAC1H;IAEO,OAAO,CAAC,aAA4B;QACxC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACnC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5D,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;KACxC;CACJ,CAAA;;YApDiD,wBAAwB;YAAkB,cAAc;YAAoB,QAAQ;;AAHzH,mBAAmB;IAD/B,UAAU,EAAE;GACA,mBAAmB,CAuD/B;;IC7DW,aAIX;AAJD,WAAY,aAAa;IACrB,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;;ICDY,gBAAgB,GAA7B,MAAa,gBAAgB;IAClB,aAAa,CAAC,GAAqB;QACtC,OAAO,IAAI,OAAO,CAAC,OAAO;YACtB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtD,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;oBACpE,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClD,IAAI,GAAG,IAAI,CAAC;oBACZ,OAAO,CAAC,WAAW,CAAC,CAAC;iBACxB;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB,CAAC,CAAC;KACN;;;;IAKO,cAAc,CAAC,IAAiB;QACpC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,MAAM,GAAG,MAAM,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,CAAC;YAEZ,IAAI,MAAM,IAAI,MAAM,EAAE;gBAClB,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,UAAU,EAAE;oBACpD,OAAO,CAAC,CAAC,CAAC;iBACb;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC;gBAC9D,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,CAAC;gBAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;oBACzB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM;wBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;;aAEjH;iBAAM,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,MAAM;gBAAE,MAAM;;gBACzC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAChD;QACD,OAAO,CAAC,CAAC,CAAC;KACb;CACJ,CAAA;AAzDY,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAyD5B;;;ICtCY,kBAAkB,0BAA/B,MAAa,kBAAkB;IAwC3B,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAtC/C,aAAQ,GAAG,KAAK,CAAC;QAOjB,OAAE,GAAG,eAAe,oBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAGlD,SAAI,GAAkB,aAAa,CAAC,MAAM,CAAC;QAY3C,cAAS,GAAG,cAAc,CAAC;QAG3B,cAAS,GAAG,KAAK,CAAC;QAGlB,oBAAe,GAAG,eAAe,CAAC;QAGlC,WAAM,GAAG,KAAK,CAAC;QAGf,YAAO,GAAG,KAAK,CAAC;QAEf,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;KAEqB;IAEpD,WAAW;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEM,eAAe;QAClB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC9C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;qBAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACnC,SAAS,CAAC,CAAC,WAAmB,MAAM,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;aAC7E,CAAC,CAAC;SACN;KACJ;CACJ,CAAA;AAvDiB,yBAAM,GAAG,CAAC,CAAC;;YAuCa,gBAAgB;;AAlCtD;IADC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;iDACX;AAGzB;IADC,KAAK,EAAE;8CACiD;AAGzD;IADC,KAAK,EAAE;gDAC0C;AAGlD;IADC,KAAK,EAAE;uDACmB;AAG3B;IADC,KAAK,EAAE;yDACsB;AAG9B;IADC,KAAK,EAAE;oDACgB;AAGxB;IADC,KAAK,EAAE;qDAC0B;AAGlC;IADC,KAAK,EAAE;qDACiB;AAGzB;IADC,KAAK,EAAE;2DACiC;AAGzC;IADC,KAAK,EAAE;kDACc;AAGtB;IADC,KAAK,EAAE;mDACe;AApCd,kBAAkB;IAL9B,SAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,wuFAAyC;;KAE5C,CAAC;GACW,kBAAkB,CAwD9B;;IClEY,eAAe,GAA5B,MAAa,eAAe;CAAG,CAAA;AAAlB,eAAe;IAN3B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,kBAAkB,CAAC;QAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,SAAS,EAAE,CAAC,gBAAgB,CAAC;KAChC,CAAC;GACW,eAAe,CAAG;;;ICFlB,wBAAwB,gCAArC,MAAa,wBAAwB;IAArC;QAIW,OAAE,GAAG,uBAAuB,0BAAwB,CAAC,MAAM,EAAE,EAAE,CAAC;QAwBhE,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;KAO3C;CAAA,CAAA;AAlCiB,+BAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;oDAC+D;AAGvE;IADC,KAAK,EAAE;6DACoB;AAG5B;IADC,KAAK,EAAE;0DACiB;AAGzB;IADC,KAAK,EAAE;2DACkB;AAG1B;IADC,KAAK,EAAE;uDACc;AAGtB;IADC,KAAK,EAAE;6DACoB;AAG5B;IADC,KAAK,EAAE;6DACoB;AAG5B;IADC,KAAK,EAAE;6DACwB;AAGhC;IADC,MAAM,EAAE;6DAC+B;AAGxC;IADC,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oEACL;AAG9C;IADC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;yDACR;AAlCxB,wBAAwB;IALpC,SAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,muDAAiD;;KAEpD,CAAC;GACW,wBAAwB,CAmCpC;;;ICjCY,uBAAuB,+BAApC,MAAa,uBAAuB;IAApC;QAIW,OAAE,GAAG,sBAAsB,yBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC;QAY9D,cAAS,GAAG,iBAAiB,CAAC;QAG9B,iBAAY,GAAG,IAAI,CAAC;QAGpB,mBAAc,GAAG,IAAI,CAAC;QAGtB,YAAO,GAAG,KAAK,CAAC;QAehB,gBAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;QAKnD,mBAAc,GAAG,aAAa,CAAC,MAAM,CAAC;KA0BjD;IAxBG,IAAW,aAAa,CAAC,KAAoB;QACzC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,IAAI,CAAC,kBAAkB;YAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC;KACrE;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAGM,QAAQ;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,kBAAkB;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,MAAM;QACT,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEtC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM;YAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC;;YAC3E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;KAClD;CACJ,CAAA;AAtEiB,8BAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;mDAC6D;AAGrE;IADC,KAAK,EAAE;4DACoB;AAG5B;IADC,KAAK,EAAE;8DACsB;AAG9B;IADC,KAAK,EAAE;yDACiB;AAGzB;IADC,KAAK,EAAE;0DAC6B;AAGrC;IADC,KAAK,EAAE;6DACmB;AAG3B;IADC,KAAK,EAAE;+DACqB;AAG7B;IADC,KAAK,EAAE;wDACe;AAGvB;IADC,KAAK,EAAE;sDACc;AAGtB;IADC,KAAK,EAAE;4DACoB;AAG5B;IADC,KAAK,EAAE;4DACoB;AAG5B;IADC,KAAK,EAAE;4DACwB;AAGhC;IADC,MAAM,EAAE;4DACkD;AAG3D;IADC,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;mEACL;AAc9C;IADC,YAAY,CAAC,eAAe,CAAC;uDAG7B;AA3DQ,uBAAuB;IALnC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,uxDAAgD;;KAEnD,CAAC;GACW,uBAAuB,CAuEnC;;ICnFW,YAMX;AAND,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACvB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;;;ACeD,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAyC/D,IAAa,mBAAmB,2BAAhC,MAAa,mBAAmB;IAsC5B,YAAoB,GAAsB,EAAU,UAAsB;QAAtD,QAAG,GAAH,GAAG,CAAmB;QAAU,eAAU,GAAV,UAAU,CAAY;QAlCnE,OAAE,GAAG,iBAAiB,qBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QAGrD,aAAQ,GAAG,KAAK,CAAC;QAGjB,kBAAa,GAAG,cAAc,CAAC;QAG/B,oBAAe,GAAG,eAAe,CAAC;QAGlC,mBAAc,GAAG,GAAG,CAAC;QAGrB,mBAAc,GAAG,IAAI,YAAY,EAAW,CAAC;QAQ7C,qBAAgB,GAAG,CAAC,CAAC;QAG5B,aAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;QAKvB,iBAAY,GAAG,YAAY,CAAC;KAGyC;IAEvE,eAAe;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,0BAA0B,CAAC;YACnC,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACpE;IAEO,MAAM;QACV,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QACjE,MAAM,cAAc,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;QAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;QACrG,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC;SACvD;QAED,IAAI,WAAW,CAAC;QAEhB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM;YAAE,WAAW,GAAG,CAAC,CAAC;;YAClD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,IAAI,cAAc,CAAC,CAAC;QAElF,IAAI,WAAW,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACjD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,cAAc,GAAG,eAAe,IAAI,cAAc,CAAC,CAAC;SAClG;QAED,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QAEpC,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC3E;IAEM,MAAM;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KACnD;IAEM,MAAM;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3C;IAEM,QAAQ;QACX,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3C;IAEM,qBAAqB;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;QAEjE,IAAI,YAAY,CAAC;QACjB,IAAI,cAAc,IAAI,WAAW,CAAC,MAAM;YAAE,YAAY,GAAG,CAAC,CAAC;aACtD,IAAI,cAAc,IAAI,WAAW,CAAC,MAAM;YAAE,YAAY,GAAG,CAAC,CAAC;aAC3D,IAAI,cAAc,IAAI,WAAW,CAAC,MAAM;YAAE,YAAY,GAAG,CAAC,CAAC;;YAC3D,YAAY,GAAG,CAAC,CAAC;QAEtB,OAAO,EAAE,GAAG,YAAY,CAAC;KAC5B;CACJ,CAAA;AAvGiB,0BAAM,GAAG,CAAC,CAAC;;YAqCA,iBAAiB;YAAsB,UAAU;;AAlC1E;IADC,KAAK,EAAE;+CACoD;AAG5D;IADC,KAAK,EAAE;qDACgB;AAGxB;IADC,KAAK,EAAE;0DAC8B;AAGtC;IADC,KAAK,EAAE;4DACiC;AAGzC;IADC,KAAK,EAAE;2DACoB;AAG5B;IADC,MAAM,EAAE;2DAC2C;AAGpD;IADC,YAAY,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iDACnB;AAGrC;IADC,eAAe,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;mDACb;AAKpD;IADC,KAAK,EAAE;qDACwB;AAGhC;IADC,KAAK,EAAE;gEACiC;AAjChC,mBAAmB;IAvC/B,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,kvGAA2C;QAE3C,UAAU,EAAE;YACR,OAAO,CAAC,mBAAmB,EAAE;gBACzB,KAAK,CACD,GAAG,EACHH,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,KAAK,CACD,OAAO,EACPA,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,KAAK,CACD,MAAM,EACNA,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAClD,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC1D,CAAC;YACF,OAAO,CAAC,uBAAuB,EAAE;gBAC7B,UAAU,CAAC,QAAQ,EAAE;oBACjBA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,YAAY,EAAEA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjBA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,YAAY,EAAEA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;aACL,CAAC;SACL;;KACJ,CAAC;GACW,mBAAmB,CAwG/B;;IC5JY,qBAAqB,GAAlC,MAAa,qBAAqB;IAAlC;QAEI,aAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;QAKvB,iBAAY,GAAG,YAAY,CAAC;QAE5B,oBAAe,GAAG,eAAe,CAAC;KAC9C;CAAA,CAAA;AARG;IADC,KAAK,EAAE;uDACwB;AAGhC;IADC,KAAK,EAAE;sDACqB;AALpB,qBAAqB;IALjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,8mCAA6C;;KAEhD,CAAC;GACW,qBAAqB,CAUjC;;ICTY,kBAAkB,GAA/B,MAAa,kBAAkB;CAAG,CAAA;AAArB,kBAAkB;IAL9B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;QACtC,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ICKrB,gBAAgB,GAA7B,MAAa,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAL5B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAEE,eAAa,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,CAAC;QACzF,YAAY,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAC;QACtF,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAC;KACrG,CAAC;GACW,gBAAgB,CAAG;;;ICRnB,sBAAsB,8BAAnC,MAAa,sBAAsB;IAAnC;QAIW,OAAE,GAAG,oBAAoB,wBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC;QAM3D,eAAU,GAAG,CAAC,CAAC;QAGf,kBAAa,GAAG,IAAI,CAAC;KAa/B;IARU,eAAe;QAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,GAAG,oCAAoC,CAAC;SAC1F;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC;SACvF;KACJ;CACJ,CAAA;AAzBiB,6BAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;kDAC0D;AAGlE;IADC,KAAK,EAAE;sDACc;AAGtB;IADC,KAAK,EAAE;0DACc;AAGtB;IADC,KAAK,EAAE;6DACoB;AAG5B;IADC,SAAS,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;yDACnB;AAhBpB,sBAAsB;IALlC,SAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,mXAA8C;;KAEjD,CAAC;GACW,sBAAsB,CA0BlC;;ICtBY,mBAAmB,GAAhC,MAAa,mBAAmB;CAAG,CAAA;AAAtB,mBAAmB;IAL/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAEA,eAAa,EAAE,eAAe,CAAC;QACvD,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,EAAE,eAAe,CAAC;KACrD,CAAC;GACW,mBAAmB,CAAG;;;ICCtB,gBAAgB,wBAA7B,MAAa,gBAAgB;IA8BzB,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QA1B/C,OAAE,GAAG,aAAa,kBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;QAG9C,YAAO,GAAG,KAAK,CAAC;QAMhB,eAAU,GAAG,CAAC,CAAC;QAGf,eAAU,GAAG,KAAK,CAAC;QAGnB,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;KAWO;IAEnD,MAAM;QACT,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC1G,SAAS,CAAC,4BAA4B,EAAE,CAAC;KAC5C;IAEM,MAAM;QACT,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;KACvE;IAEM,KAAK,CAAC,KAAY;QACrB,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;KAC1B;CACJ,CAAA;AA9CiB,uBAAM,GAAG,CAAC,CAAC;;YA6Ba,gBAAgB;;AA1BtD;IADC,KAAK,EAAE;4CAC6C;AAGrD;IADC,KAAK,EAAE;iDACe;AAGvB;IADC,KAAK,EAAE;gDACc;AAGtB;IADC,KAAK,EAAE;oDACc;AAGtB;IADC,KAAK,EAAE;oDACkB;AAG1B;IADC,MAAM,EAAE;uDAC0C;AAGnD;IADC,SAAS,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;sDACR;AAG7B;IADC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;uDACV;AAGtC;IADC,YAAY,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;uDACV;AA5B7B,gBAAgB;IAN5B,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,6rDAAuC;QAEvC,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,gBAAgB,CA+C5B;;IC/CY,aAAa,GAA1B,MAAa,aAAa;CAAG,CAAA;AAAhB,aAAa;IALzB,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAEQ,eAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC;QACrF,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;KAC/C,CAAC;GACW,aAAa,CAAG;;ACA7B,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAwBpC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAAhC;QAEW,aAAQ,GAAG,sBAAsB,CAAC;QAGlC,cAAS,GAAG,qBAAqB,CAAC;QAGlC,UAAK,GAAG,KAAK,CAAC;QAGd,gBAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;QAGvC,gBAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;QAQvC,gBAAW,GAAG,CAAC,CAAC;QAEhB,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAG,KAAK,CAAC;QACpB,+BAA0B,GAAG,IAAI,CAAC;KAgD5C;IA7CU,QAAQ;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,QAAQ;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,kBAAkB;;QAErB,cAAc,CAAC;YACX,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;SAC3C,CAAC,CAAC;KACN;IAEM,aAAa;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SAC3B;KACJ;IAEM,uBAAuB;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAEM,sBAAsB;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC5B;IAEO,kBAAkB;QACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,uBAAuB,CAAC;KACnE;IAEO,qBAAqB;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;KAClE;CACJ,CAAA;AAzEG;IADC,KAAK,EAAE;qDACiC;AAGzC;IADC,KAAK,EAAE;sDACiC;AAGzC;IADC,KAAK,EAAE;kDACa;AAGrB;IADC,MAAM,EAAE;wDACqC;AAG9C;IADC,MAAM,EAAE;wDACqC;AAG9C;IADC,SAAS,CAAC,eAAe,CAAC;0DACM;AAGjC;IADC,SAAS,CAAC,aAAa,CAAC;wDACM;AAU/B;IADC,YAAY,CAAC,eAAe,CAAC;mDAG7B;AAhCQ,mBAAmB;IAtB/B,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,sqDAA2C;QAE3C,UAAU,EAAE;YACR,OAAO,CAAC,oBAAoB,EAAE;gBAC1B,UAAU,CAAC,QAAQ,EAAE;oBACjBV,OAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBACrB,OAAO,CAAC,cAAc,EAAEA,OAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;iBACjD,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjBA,OAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBACrB,OAAO,CAAC,cAAc,EAAEA,OAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;iBACjD,CAAC;aACL,CAAC;YACF,OAAO,CAAC,gBAAgB,EAAE;gBACtB,KAAK,CAAC,MAAM,EAAEA,OAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,KAAK,CAAC,OAAO,EAAEA,OAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrD,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;aACzC,CAAC;SACL;;KACJ,CAAC;GACW,mBAAmB,CA2E/B;;IClGY,gBAAgB,GAA7B,MAAa,gBAAgB;CAAI,CAAA;AAApB,gBAAgB;IAR5B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,uBAAuB;SAC1B;QACD,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAI;;;ICLpB,kBAAkB,0BAA/B,MAAa,kBAAkB;IAA/B;QAIW,OAAE,GAAG,gBAAgB,oBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAMnD,qBAAgB,GAAG,KAAK,CAAC;QAGzB,iBAAY,GAAG,KAAK,CAAC;QAGrB,cAAS,GAAG,IAAI,CAAC;QAGjB,cAAS,GAAG,iBAAiB,CAAC;QAG9B,UAAK,GAAG,SAAS,CAAC;QAGlB,mBAAc,GAAG,IAAI,CAAC;QAGtB,cAAS,GAAG,KAAK,CAAC;QAWlB,YAAO,GAAG,EAAE,CAAC;QAOb,YAAO,GAA6B,IAAI,YAAY,EAAE,CAAC;QAItD,0BAAqB,GAAG,GAAG,CAAC;QAC5B,qBAAgB,GAAG,EAAE,CAAC;QACtB,kBAAa,GAAG,GAAG,CAAC;QAEpB,WAAM,GAAG,GAAG,CAAC;KAoDxB;IA3EG,IAAW,KAAK,CAAC,KAAa;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;KACvC;IAKD,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAaO,kBAAkB;QACtB,MAAM,iBAAiB,GAAG,IAAIW,WAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,IAAIA,WAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAEjE,MAAM,gBAAgB,GAAG,IAAIA,WAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAIA,WAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,OAAO,GAAG,gBAAgB,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC1B,IAAI,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC7E,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC1C;iBAAM,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC7E,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAC3C;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE/B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAClC;SACJ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC7B;IAEM,uBAAuB,CAAC,KAAa,EAAE,QAAoB;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC3D,MAAM,iBAAiB,GAAG,cAAc;aACnC,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,OAAO,KAAK;aACP,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,IAAI;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,MAAM,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;SACf,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB;CACJ,CAAA;AAzGiB,yBAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;8CACkD;AAG1D;IADC,KAAK,EAAE;iDACa;AAGrB;IADC,KAAK,EAAE;4DACwB;AAGhC;IADC,KAAK,EAAE;wDACoB;AAG5B;IADC,KAAK,EAAE;qDACgB;AAGxB;IADC,KAAK,EAAE;qDAC6B;AAGrC;IADC,KAAK,EAAE;iDACiB;AAGzB;IADC,KAAK,EAAE;0DACqB;AAG7B;IADC,KAAK,EAAE;qDACiB;AAGzB;IADC,KAAK,EAAE;+CAMP;AAGD;IADC,KAAK,EAAE;mDACY;AAOpB;IADC,MAAM,EAAE;mDACqD;AA9CrD,kBAAkB;IAN9B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,msFAA0C;QAE1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;;KACxC,CAAC;GACW,kBAAkB,CA0G9B;;IChGY,eAAe,GAA5B,MAAa,eAAe;CAAI,CAAA;AAAnB,eAAe;IAZ3B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZT,eAAa;SAChB;QACD,YAAY,EAAE;YACV,kBAAkB;SACrB;QACD,OAAO,EAAE;YACL,kBAAkB;SACrB;KACJ,CAAC;GACW,eAAe,CAAI;;;IChBpB,SAIX;AAJD,WAAY,SAAS;IACjB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAoFD,IAAa,cAAc,sBAA3B,MAAa,cAAc;IAA3B;QAIW,OAAE,GAAG,WAAW,gBAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QAI1C,gBAAW,GAAG,CAAC,CAAC;QAGhB,iBAAY,GAAqC,IAAI,YAAY,EAAE,CAAC;KA0B9E;IAxBU,SAAS,CAAC,IAAU,EAAE,KAAa,EAAE,KAAU;QAClD,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QACvD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KAClD;IAED,IAAW,SAAS;QAChB,OAAO,SAAS,CAAC;KACpB;IAEM,YAAY,CAAC,KAAa,EAAE,WAAmB;QAClD,MAAM,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,KAAK,WAAW,CAAC;QACxC,OAAO,OAAO,IAAI,SAAS,CAAC;KAC/B;IAEM,iBAAiB,CAAC,KAAa,EAAE,WAAmB;QACvD,MAAM,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,KAAK,WAAW,GAAG,CAAC,CAAC;QAC5C,OAAO,OAAO,IAAI,SAAS,CAAC;KAC/B;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1D;CACJ,CAAA;AApCiB,qBAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;0CACyC;AAEjD;IADC,KAAK,EAAE;6CACa;AAErB;IADC,KAAK,EAAE;mDACe;AAGvB;IADC,MAAM,EAAE;oDACkE;AAXlE,cAAc;IA5D1B,SAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,u0HAAqC;QAErC,IAAI,EAAE;YACF,kBAAkB,EAAE,YAAY;YAChC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,GAAG;SACnB;QACD,UAAU,EAAE;YACR,OAAO,CAAC,sBAAsB,EAAE;gBAC5B,KAAK,CACD,QAAQ,EACRF,OAAK,CAAC;oBACF,qBAAqB,EAAE,aAAa;iBACvC,CAAC,CACL;gBACD,KAAK,CACD,WAAW,EACXA,OAAK,CAAC;oBACF,qBAAqB,EAAE,cAAc;iBACxC,CAAC,CACL;gBACD,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACjE,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;aACpE,CAAC;YACF,OAAO,CAAC,gBAAgB,EAAE;gBACtB,KAAK,CACD,QAAQ,EACRA,OAAK,CAAC;oBACF,qBAAqB,EAAE,aAAa;iBACvC,CAAC,CACL;gBACD,KAAK,CACD,WAAW,EACXA,OAAK,CAAC;oBACF,qBAAqB,EAAE,cAAc;iBACxC,CAAC,CACL;gBACD,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAClE,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;aACrE,CAAC;YACF,OAAO,CAAC,qBAAqB,EAAE;gBAC3B,KAAK,CACD,QAAQ,EACRA,OAAK,CAAC;oBACF,qBAAqB,EAAE,aAAa;iBACvC,CAAC,CACL;gBACD,KAAK,CACD,WAAW,EACXA,OAAK,CAAC;oBACF,qBAAqB,EAAE,cAAc;iBACxC,CAAC,CACL;gBACD,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACjE,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;aACpE,CAAC;SACL;;KACJ,CAAC;GACW,cAAc,CAqC1B;;ICrHY,WAAW,GAAxB,MAAa,WAAW;CAAG,CAAA;AAAd,WAAW;IALvB,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAEE,eAAa,CAAC;QACtC,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,OAAO,EAAE,CAAC,cAAc,CAAC;KAC5B,CAAC;GACW,WAAW,CAAG;;ACP3B,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,aAAa,GAAG,GAAG,CAAC;AAM1B,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QAkBU,cAAS,GAAwC,UAAU,CAAC;QAG5D,gBAAW,GAAG,IAAI,CAAC;QAGnB,iBAAY,GAAG,OAAO,CAAC;KAwBhC;IA5CE,IAAW,KAAK;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;KACrB;IAGD,IAAW,KAAK,CAAC,KAAqB;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC3B;IAcM,QAAQ;QACZ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;KACvC;IAGM,QAAQ,CAAC,CAAM;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;KACvC;IAEM,gBAAgB;QACpB,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;KAC7F;IAEM,iBAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;YAC5B,OAAO,IAAI,CAAC,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAChE;KACH;CACH,CAAA;AAvCE;IADC,KAAK,EAAE;8CAIP;AAGD;IADC,KAAK,EAAE;sDACmB;AAG3B;IADC,KAAK,EAAE;oDAC2D;AAGnE;IADC,KAAK,EAAE;sDACkB;AAG1B;IADC,KAAK,EAAE;uDACsB;AAO9B;IADC,YAAY,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC;iDAGzC;AAjCS,iBAAiB;IAJ7B,SAAS,CAAC;QACR,QAAQ,EAAE,YAAY;QACtB,ihBAAwC;KAC1C,CAAC;GACW,iBAAiB,CAgD7B;;ICnDY,yBAAyB,GAAtC,MAAa,yBAAyB;CASrC,CAAA;AAPE;IADC,KAAK,EAAE;uDACkB;AAG1B;IADC,KAAK,EAAE;2DACiB;AAGzB;IADC,KAAK,EAAE;6DACmB;AARjB,yBAAyB;IALrC,SAAS,CAAC;QACR,QAAQ,EAAE,sBAAsB;QAChC,umCAAkD;;KAEpD,CAAC;GACW,yBAAyB,CASrC;;ICHY,kBAAkB,GAA/B,MAAa,kBAAkB;CAAI,CAAA;AAAtB,kBAAkB;IAR9B,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZA,eAAa;SACf;QACD,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACtC,CAAC;GACW,kBAAkB,CAAI;;ICNtB,2BAA2B,GAAxC,MAAa,2BAA2B;IAAxC;QAKU,gBAAW,GAAG,CAAC,CAAC;KACzB;CAAA,CAAA;AAJE;IADC,KAAK,EAAE;0DACqB;AAG7B;IADC,KAAK,EAAE;gEACe;AALb,2BAA2B;IALvC,SAAS,CAAC;QACR,QAAQ,EAAE,uBAAuB;QACjC,mmEAAmD;;KAErD,CAAC;GACW,2BAA2B,CAMvC;;ICEY,wBAAwB,GAArC,MAAa,wBAAwB;CAAI,CAAA;AAA5B,wBAAwB;IATpC,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZA,eAAa;YACb,kBAAkB;SACpB;QACD,YAAY,EAAE,CAAC,2BAA2B,CAAC;QAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;KACxC,CAAC;GACW,wBAAwB,CAAI;;ICR5B,yBAAyB,GAAtC,MAAa,yBAAyB;IAAtC;QAGU,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAG,IAAI,CAAC;KA0C9B;IAjCE,IAAW,WAAW,CAAC,KAAa;QACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;KACpB;IAED,IAAW,WAAW;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC3B;IAWM,UAAU,CAAC,KAAc;QAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC7B;IAEM,UAAU,CAAC,KAAc;QAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC7B;IAEM,UAAU;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACxG;CACH,CAAA;AA7CgB,gCAAM,GAAG,CAAC,CAAC;AAYzB;IADC,KAAK,EAAE;4DAIP;AAOD;IADC,KAAK,EAAE;wDACqB;AAG7B;IADC,KAAK,EAAE;+DACoB;AAG5B;IADC,KAAK,EAAE;8DACoB;AA7BlB,yBAAyB;IALrC,SAAS,CAAC;QACR,QAAQ,EAAE,qBAAqB;QAC/B,i6GAAiD;;KAEnD,CAAC;GACW,yBAAyB,CA8CrC;;IChDY,kBAAkB,GAA/B,MAAa,kBAAkB;CAAI,CAAA;AAAtB,kBAAkB;IAL9B,SAAS,CAAC;QACR,QAAQ,EAAE,cAAc;QACxB,iMAA0C;;KAE5C,CAAC;GACW,kBAAkB,CAAI;;ICAtB,uBAAuB,GAApC,MAAa,uBAAuB;IAApC;QAEU,gBAAW,GAAG,KAAK,CAAC;QAGpB,WAAM,GAAG,IAAI,YAAY,EAAW,CAAC;KAK9C;IAHS,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACtC;CACH,CAAA;AARE;IADC,KAAK,EAAE;4DACmB;AAG3B;IADC,MAAM,EAAE;uDACmC;AALlC,uBAAuB;IALnC,SAAS,CAAC;QACR,QAAQ,EAAE,mBAAmB;QAC7B,4SAA+C;;KAEjD,CAAC;GACW,uBAAuB,CAUnC;;ICRY,uBAAuB,GAApC,MAAa,uBAAuB;IAApC;QAcU,sBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;KAMzD;IAJS,QAAQ,CAAC,KAAc;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAChD;CACH,CAAA;AAlBE;IADC,KAAK,EAAE;sDACqB;AAG7B;IADC,KAAK,EAAE;4DACoB;AAG5B;IADC,KAAK,EAAE;4DACoB;AAG5B;IADC,KAAK,EAAE;6DACoB;AAG5B;IADC,MAAM,EAAE;kEAC8C;AAd7C,uBAAuB;IALnC,SAAS,CAAC;QACR,QAAQ,EAAE,mBAAmB;QAC7B,2uBAA+C;;KAEjD,CAAC;GACW,uBAAuB,CAoBnC;;ICpBY,sBAAsB,GAAnC,MAAa,sBAAsB;CAYlC,CAAA;AAVE;IADC,KAAK,EAAE;qDACqB;AAG7B;IADC,KAAK,EAAE;sDACe;AAGvB;IADC,KAAK,EAAE;wDACiB;AAGzB;IADC,KAAK,EAAE;2DACoB;AAXlB,sBAAsB;IALlC,SAAS,CAAC;QACR,QAAQ,EAAE,kBAAkB;QAC5B,kvCAA8C;;KAEhD,CAAC;GACW,sBAAsB,CAYlC;;ICGY,sBAAsB,GAAnC,MAAa,sBAAsB;CAAI,CAAA;AAA1B,sBAAsB;IAdlC,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZ,kBAAkB;SACpB;QACD,YAAY,EAAE;YACX,yBAAyB;YACzB,kBAAkB;YAClB,uBAAuB;YACvB,uBAAuB;YACvB,sBAAsB;SACxB;QACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACtC,CAAC;GACW,sBAAsB,CAAI;;ICF1B,cAAc,GAA3B,MAAa,cAAc;CAAI,CAAA;AAAlB,cAAc;IAd1B,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZ,kBAAkB;YAClB,wBAAwB;YACxB,sBAAsB;SACxB;QACD,YAAY,EAAE;YACX,iBAAiB;SACnB;QACD,OAAO,EAAE;YACN,iBAAiB;SACnB;KACH,CAAC;GACW,cAAc,CAAI;;ICtBnB,oBAIX;AAJD,WAAY,oBAAoB;IAC7B,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,uCAAe,CAAA;AAClB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;;ICJW,gBAGX;AAHD,WAAY,gBAAgB;IACzB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AAClB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;;ACAD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,MAAa,YAAY;IAWtB,YAAY,MAUX;QACE,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC9B;IAEM,oBAAoB;;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;SAClG;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;SACnG;QAED,IAAI,OAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,IAAG,gBAAgB,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;SACnF;KACH;IAEM,QAAQ,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC;KACvC;IAEM,YAAY,CAAC,KAAa;;QAC9B,OAAO,OAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,QAAO,KAAK,CAAC;KAC5C;CACH;;;ICtDY,aAAa,qBAA1B,MAAa,aAAa;IAA1B;QAIW,OAAE,GAAG,UAAU,eAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAkBxC,aAAQ,GAAG,KAAK,CAAC;QAGjB,aAAQ,GAAG,CAAC,CAAC;QAGb,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;KAoBvC;IAlBG,IAAW,aAAa;QACpB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACrD;SACJ;QACD,OAAO,aAAa,CAAC;KACxB;IAGM,SAAS,CAAC,KAAU;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACvB;KACJ;CACJ,CAAA;AA/CiB,oBAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;yCACuC;AAG/C;IADC,KAAK,EAAE;4CACa;AAGrB;IADC,KAAK,EAAE;kDACmB;AAG3B;IADC,KAAK,EAAE;gDACiB;AAGzB;IADC,KAAK,EAAE;kDACmB;AAG3B;IADC,KAAK,EAAE;+CACgB;AAGxB;IADC,KAAK,EAAE;+CACgB;AAGxB;IADC,KAAK,EAAE;+CACY;AAGpB;IADC,MAAM,EAAE;8CAC2B;AAepC;IADC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;8CAKnC;AA/CQ,aAAa;IALzB,SAAS,CAAC;QACP,QAAQ,EAAE,QAAQ;QAClB,wkDAAoC;;KAEvC,CAAC;GACW,aAAa,CAgDzB;;ICpCY,UAAU,GAAvB,MAAa,UAAU;CAAI,CAAA;AAAd,UAAU;IAZtB,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,aAAa;YACb,eAAe;SAClB;QACD,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,OAAO,EAAE;YACL,aAAa;YACb,eAAe;SAClB;KACJ,CAAC;GACW,UAAU,CAAI;;ICdf,cAKX;AALD,WAAY,cAAc;IACvB,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,6CAA2B,CAAA;IAC3B,+DAA6C,CAAA;AAChD,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;;ICWY,6BAA6B,GAA1C,MAAa,6BAA6B;IA+DvC,YACW,mBAAwC,EACxC,mBAAwC;QADxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAtD5C,gBAAW,GAAG,CAAC,CAAC;QAMhB,sBAAiB,GAAG,SAAS,CAAC;QAG9B,sBAAiB,GAAG,cAAc,CAAC;QAGnC,sBAAiB,GAAsB;YAC3C,aAAa,EAAE,wBAAwB;YACvC,cAAc,EAAE,4DAA4D;YAC5E,kBAAkB,EAAE,SAAS;YAC7B,kBAAkB,EAAE,UAAU;SAChC,CAAC;QASK,wBAAmB,GAAa,EAAE,CAAC;QAkBnC,iBAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;QAGxD,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAGlC,gBAAW,GAAuC,IAAI,YAAY,EAAE,CAAC;KAKvE;IAEE,QAAQ;QACZ,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACtC;IAGM,UAAU,CAAC,KAAgB;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KAC1B;IAGM,WAAW,CAAC,KAAgB;QAChC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;KAC1B;IAGM,MAAM,CAAC,KAAgB;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;QAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAChC;;IAIM,QAAQ;QACZ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7D,IAAI,cAAc,GAAG,SAAS,GAAG,kBAAkB,EAAE;gBAClD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;aAC1E;iBAAM;gBACJ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;aAC7E;SACH;KACH;IAEM,WAAW;QACf,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACtD,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC3B;IAEM,WAAW;QACf,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc;YAC9C,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;YACtD,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;YACtD,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa;YAC5C,MAAM,EAAE;gBACL,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBACtD,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC3B;SACH,CAAC,CAAC;KACL;IAEM,aAAa,CAAC,KAAU;QAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACjD;IAEO,iBAAiB,CAAC,KAAa;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;SACT;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,UAAU,CAAC,SAAS,GAAG,CAAC,SAAc;YACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,iBAC1B,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EACpC,YAAY,EAAE,KAAK;oBAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChC,EACD,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACrC,kBAAkB,EAAE,KAAK,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,IAC1B,IAAI,CAAC,mBAAmB,EAC5B,CAAC;SACL,CAAC;KACJ;IAEO,4BAA4B;QACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;aAC/C,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACvE;IAEO,aAAa,CAAC,KAAa;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAChB,OAAO,KAAK,CAAC;SACf;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;SACf;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;SACf;QAED,OAAO,IAAI,CAAC;KACd;IAEO,sBAAsB,CAAC,IAAU;;QACtC,UAAI,IAAI,CAAC,mBAAmB,0CAAE,MAAM,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACtD;QACD,OAAO,IAAI,CAAC;KACd;IAEO,iBAAiB,CAAC,IAAU;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;SACtC;QACD,OAAO,IAAI,CAAC;KACd;IAEO,gBAAgB,CAAC,OAAmB;QACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACtE,OAAO,KAAK,GAAG,IAAI,CAAC;KACtB;CACH,CAAA;;YA1JkC,mBAAmB;YACnB,mBAAmB;;AA/DnD;IADC,KAAK,EAAE;kEACmB;AAG3B;IADC,KAAK,EAAE;kEACmB;AAG3B;IADC,KAAK,EAAE;+DACgB;AAGxB;IADC,KAAK,EAAE;kEACe;AAGvB;IADC,KAAK,EAAE;0EACwC;AAGhD;IADC,KAAK,EAAE;wEAC6B;AAGrC;IADC,KAAK,EAAE;wEACkC;AAG1C;IADC,KAAK,EAAE;wEAMN;AAGF;IADC,KAAK,EAAE;kEACmB;AAG3B;IADC,KAAK,EAAE;6DACc;AAGtB;IADC,KAAK,EAAE;0EACkC;AAG1C;IADC,KAAK,EAAE;4DACa;AAGrB;IADC,SAAS,CAAC,eAAe,CAAC;oEACM;AAGjC;IADC,SAAS,CAAC,MAAM,CAAC;2DACM;AAGxB;IADC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gEAChB;AAG7B;IADC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gEAChB;AAG7B;IADC,MAAM,EAAE;mEACsD;AAG/D;IADC,MAAM,EAAE;mEACgC;AAGzC;IADC,MAAM,EAAE;kEACmE;AAY5E;IADC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;+DAIpC;AAGD;IADC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;gEAIrC;AAGD;IADC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;2DAahC;AAID;IADC,YAAY,CAAC,eAAe,CAAC;6DAa7B;AAjHS,6BAA6B;IALzC,SAAS,CAAC;QACR,QAAQ,EAAE,0BAA0B;QACpC,opCAAoD;;KAEtD,CAAC;GACW,6BAA6B,CA0NzC;;ICpNY,0BAA0B,GAAvC,MAAa,0BAA0B;CAAI,CAAA;AAA9B,0BAA0B;IAftC,QAAQ,CAAC;QACP,OAAO,EAAE;YACN,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,kBAAkB;YAClB,mBAAmB;SACrB;QACD,YAAY,EAAE,CAAC,6BAA6B,CAAC;QAC7C,OAAO,EAAE,CAAC,6BAA6B,CAAC;QACxC,SAAS,EAAE;YACR,mBAAmB;YACnB,mBAAmB;SACrB;KACH,CAAC;GACW,0BAA0B,CAAI;;IC3B/B,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,uCAAe,CAAA;AACnB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;;;ICeY,iCAAiC,yCAA9C,MAAa,iCAAiC;IAA9C;QAIW,OAAE,GAAG,iCAAiC,mCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC;QA2BnF,SAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC;QAMrC,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;KAuB3C;IAfW,cAAc;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,QAAQ,CAAC;KACtD;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,MAAM,CAAC;KACpD;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,KAAK,CAAC;KACnD;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,cAAc,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;KACrD;CACJ,CAAA;AA3DiB,wCAAM,GAAG,CAAC,CAAC;AAGzB;IADC,KAAK,EAAE;6DACkF;AAG1F;IADC,KAAK,EAAE;uEACoB;AAG5B;IADC,KAAK,EAAE;8EAC2B;AAGnC;IADC,KAAK,EAAE;6EAC0B;AAGlC;IADC,KAAK,EAAE;sEACoB;AAG5B;IADC,KAAK,EAAE;mEACiB;AAGzB;IADC,KAAK,EAAE;oEACkB;AAG1B;IADC,KAAK,EAAE;yEACuB;AAG/B;IADC,KAAK,EAAE;wEACsB;AAG9B;IADC,KAAK,EAAE;+DACoC;AAG5C;IADC,KAAK,EAAE;mEACoB;AAG5B;IADC,MAAM,EAAE;sEAC+B;AAGxC;IADC,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;6EACL;AAG9C;IADC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;kEACR;AA3CxB,iCAAiC;IAL7C,SAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,q0EAA2D;;KAE9D,CAAC;GACW,iCAAiC,CA4D7C;;IClCY,qBAAqB,GAAlC,MAAa,qBAAqB;IAkD9B,YAAoB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;QA3CnC,OAAE,GAAG,mBAAmB,iCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC;QAGrE,UAAK,GAAG,GAAG,CAAC;QAYZ,cAAS,GAAG,KAAK,CAAC;QAchB,eAAU,GAAG,IAAI,CAAC;QAKjB,aAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;QACtC,YAAO,GAAG,IAAI,YAAY,EAAW,CAAC;QACtC,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAGnC,gBAAW,GAAG,KAAK,CAAC;QACpB,mBAAc,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAG,IAAI,CAAC;KAEwB;IAExC,QAAQ;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC;YACP,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACnC;SACJ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAClB;IAEM,OAAO;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEM,QAAQ;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,QAAQ;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;IAEO,+BAA+B;QACnC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;KAC7E;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,+BAA+B,EAAE,CAAC;KAC1C;IAEO,yBAAyB;QAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;CAEJ,CAAA;AA/FiB,4BAAM,GAAG,CAAC,CAAC;;YAgDA,iBAAiB;;AA9CI;IAA7C,SAAS,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;2DAA0B;AAGvE;IADC,KAAK,EAAE;iDACoE;AAG5E;IADC,KAAK,EAAE;oDACW;AAGnB;IADC,KAAK,EAAE;8DACuB;AAG/B;IADC,KAAK,EAAE;4DACqB;AAG7B;IADC,KAAK,EAAE;0DACmB;AAG3B;IADC,KAAK,EAAE;wDACiB;AAGzB;IADC,KAAK,EAAE;4DACqB;AAG7B;IADC,KAAK,EAAE;yDACkB;AAG1B;IADC,KAAK,EAAE;+DACwB;AAGhC;IADC,KAAK,EAAE;wDACiB;AAEhB;IAAR,KAAK,EAAE;yDAAmB;AAG3B;IADC,eAAe,CAAC,iCAAiC,CAAC;4DACgB;AAEzD;IAAT,MAAM,EAAE;uDAAuC;AACtC;IAAT,MAAM,EAAE;sDAAuC;AACtC;IAAT,MAAM,EAAE;yDAAiC;AA3CjC,qBAAqB;IA7BjC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,o4EAA6C;QAE7C,UAAU,EAAE;YACR,OAAO,CAAC,mBAAmB,EAAE;gBACzB,KAAK,CACD,GAAG,EACHF,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,KAAK,CACD,OAAO,EACPA,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,KAAK,CACD,MAAM,EACNA,OAAK,CAAC;oBACF,MAAM,EAAE,GAAG;iBACd,CAAC,CACL;gBACD,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAClD,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC1D,CAAC;SACL;;KACJ,CAAC;GACW,qBAAqB,CAiGjC;;ICnIY,uBAAuB,GAApC,MAAa,uBAAuB;IAIhC,YAAoB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;QAFxB,aAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;KAEV;IAGtC,MAAM;QACF,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;YACjH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;KACJ;CACJ,CAAA;;YAR2B,UAAU;;AAFxB;IAAT,MAAM,EAAE;yDAAuC;AAKhD;IADC,YAAY,CAAC,QAAQ,CAAC;qDAKtB;AAXQ,uBAAuB;IAHnC,SAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;KAChC,CAAC;GACW,uBAAuB,CAYnC;;ICPY,oBAAoB,GAAjC,MAAa,oBAAoB;CAAI,CAAA;AAAxB,oBAAoB;IAXhC,QAAQ,CAAC;QACN,YAAY,EAAE;YACV,uBAAuB;SAC1B;QACD,OAAO,EAAE;YACL,YAAY;SACf;QACD,OAAO,EAAE;YACL,uBAAuB;SAC1B;KACJ,CAAC;GACW,oBAAoB,CAAI;;IC6BxB,kBAAkB,GAA/B,MAAa,kBAAkB;CAAI,CAAA;AAAtB,kBAAkB;IA/B9B,QAAQ,CAAC;QACN,YAAY,EAAE;YACV,qBAAqB;YACrB,iCAAiC;SACpC;QACD,OAAO,EAAE;YACL,YAAY;YACZ,eAAe;YACf,WAAW;YACX,mBAAmB;YACnBE,eAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,oBAAoB;YACpB,gBAAgB;SACnB;QACD,OAAO,EAAE;YACL,qBAAqB;YACrB,iCAAiC;YACjCA,eAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;SACnB;QACD,eAAe,EAAE;YACb,qBAAqB;YACrB,iCAAiC;SACpC;KACJ,CAAC;GACW,kBAAkB,CAAI;;IC7CvB,SAEX;AAFD,WAAY,SAAS;IACjB,8CAAiC,CAAA;AACrC,CAAC,EAFW,SAAS,KAAT,SAAS,QAEpB;;ICFW,MAEX;AAFD,WAAY,MAAM;IACd,+BAAqB,CAAA;AACzB,CAAC,EAFW,MAAM,KAAN,MAAM,QAEjB;;ACCD,WAAW;;MCEE,WAAW;IAIb,OAAO,SAAS,CAAC,QAAmB;QACvC,MAAM,qBAAqB,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,qBAAqB;YAAE,OAAO,qBAAqB,EAAE,CAAC;KAC7D;;AALc,oBAAQ,GAAwC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;;MCQzD,UAAU;IAAhC;QAEY,sBAAiB,GAAwB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9D,kBAAa,GAAoB,IAAI,OAAO,EAAE,CAAC;QAC/C,0BAAqB,GAAqB,IAAI,OAAO,EAAE,CAAC;QACxD,qBAAgB,GAAa,EAAE,CAAC;QAChC,qBAAgB,GAAG,EAAE,CAAC;KA8FjC;IA1FU,mBAAmB,CAAC,OAAsB;QAC7C,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAErG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;SACtC;KACJ;IAEM,UAAU,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC1B;KACJ;IAQM,6BAA6B;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAChD;IAEM,yBAAyB;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC5C;IAEM,iCAAiC;QACpC,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KACpD;IAKS,oBAAoB;QAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KACjC;IAES,gBAAgB,CAAC,IAAY;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACpC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC/B;KACJ;IAES,qBAAqB,CAAC,KAAe;QAC3C,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC5C;IAEO,SAAS,CAAC,QAAmB;QACjC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAClD;IAEa,YAAY,CAAC,IAAY;;YACnC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,MAAM,OAAO,GAAa,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAClD;SACJ;KAAA;IAEO,wBAAwB,CAAC,QAAiB;QAC9C,IAAI,QAAQ,KAAK,IAAI,CAAC,wBAAwB,EAAE;YAC5C,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACJ;IAEO,gBAAgB,CAAC,QAAmB;QACxC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,oBAAoB,CAAC,CAAC;KAC1H;IAEO,aAAa,CAAC,KAAa;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,oBAAoB,CAAC,CAAC;KAC3G;IAEO,WAAW,CAAC,IAAY;QAC5B,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;KAC/C;CACJ;;IC1FY,mBAAmB,GAAhC,MAAa,mBAAmB;IAwB5B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAtB3C,mBAAc,GAAkB,IAAI,OAAO,EAAE,CAAC;QAYrC,eAAU,GAAyB,IAAI,YAAY,EAAE,CAAC;QAItD,sBAAiB,GAA0B,IAAI,YAAY,EAAE,CAAC;QAE9D,iBAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;QAExD,0BAAqB,GAAuB,IAAI,YAAY,EAAE,CAAC;KAEzB;IAlB9C,IAAW,aAAa,CAAC,OAAsB;QACpD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAChD;IAEQ,IAAW,IAAI,CAAC,IAAY;QACjC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACpC;IAcM,QAAQ;QACX,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,eAAe;QAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAEM,WAAW;QACd,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;IAEO,qBAAqB;QACzB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAA+B,CAAC,CAAC;KAClG;IAEO,kBAAkB;QACtB,IAAI,CAAC,UAAU;aACV,6BAA6B,EAAE;aAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU;aACV,yBAAyB,EAAE;aAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpC,SAAS,CAAC,IAAI;YACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC,CAAC,CAAC;QAEP,IAAI,CAAC,UAAU;aACV,iCAAiC,EAAE;aACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpC,SAAS,CAAC,QAAQ;YACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzC,CAAC,CAAC;KACV;CACJ,CAAA;;YA1C4C,UAAU;;AApBzB;IAAzB,SAAS,CAAC,aAAa,CAAC;+DAAwC;AAExD;IAAR,KAAK,EAAE;wDAEP;AAEQ;IAAR,KAAK,EAAE;+CAEP;AAES;IAAT,MAAM,EAAE;uDAA8D;AAE9D;IAAR,KAAK,EAAE;wDAA6B;AAE3B;IAAT,MAAM,EAAE;8DAAsE;AAErE;IAAT,MAAM,EAAE;yDAAgE;AAE/D;IAAT,MAAM,EAAE;kEAAuE;AAtBvE,mBAAmB;IAL/B,SAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,+CAA+C;;KAE5D,CAAC;GACW,mBAAmB,CAkE/B;;AC3FD,oBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCd,CAAC;;ACnCF,IAAY,aAKX;AALD,WAAY,aAAa;;IAErB,4BAAW,CAAA;;IAEX,8BAAa,CAAA;AACjB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;;ACLD,IAAY,QAiCX;AAjCD,WAAY,QAAQ;;IAEhB,6BAAiB,CAAA;;IAEjB,6BAAiB,CAAA;;IAEjB,+BAAmB,CAAA;;IAEnB,6BAAiB,CAAA;;IAEjB,yBAAa,CAAA;;IAEb,qCAAyB,CAAA;;IAEzB,yBAAa,CAAA;;IAEb,yBAAa,CAAA;;IAEb,iCAAqB,CAAA;;IAErB,2CAA+B,CAAA;;IAE/B,yBAAa,CAAA;;IAEb,+BAAmB,CAAA;;IAEnB,yBAAa,CAAA;;IAEb,yBAAa,CAAA;;IAEb,mDAAuC,CAAA;;IAEvC,mDAAuC,CAAA;AAC3C,CAAC,EAjCW,QAAQ,KAAR,QAAQ,QAiCnB;;ACjCD,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,qFAAuB,CAAA;IACvB,uEAAgB,CAAA;IAChB,mFAAsB,CAAA;IACtB,qFAAuB,CAAA;IACvB,qFAAuB,CAAA;AAC3B,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;;ACND,IAAY,eAOX;AAPD,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;IACzB,oDAAiC,CAAA;IACjC,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;AAC7B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;;ACPD,IAAY,QASX;AATD,WAAY,QAAQ;IAChB,qBAAS,CAAA;IACT,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,mBAAO,CAAA;IACP,qBAAS,CAAA;AACb,CAAC,EATW,QAAQ,KAAR,QAAQ,QASnB;;ACOD,WAAW;;ACNJ,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;IACzC,MAAM,EAAG,WAAW,CAAC,aAAa,CAAC;SAC9B,SAAS,CAAC;QACP,KAAK,EAAE;YACH,SAAS,CAAC;gBACN,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO;gBACjD,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;aACxB,CAAC;SACL;KACJ,CAAC;CACT,CAAC,CAAC;;ACrBH,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,qDAAK,CAAA;IACL,mDAAI,CAAA;IACJ,yDAAO,CAAA;AACX,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;;ACDD,WAAW;;ACKX,MAAM,qCAAqC,GAAoC,IAAI,GAAG,CAAC;IACnF,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;IAC/B,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;IAC7B,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;CACtC,CAAC,CAAC;AAEH,SAAgB,2BAA2B,CAAC,OAAiB,EAAE,UAAkB;IAC7E,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM;;QAAI,QAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;YACvB,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,UAAU;YAC5B,OAAO,QAAE,MAAM,CAAC,OAAO,mCAAI,EAAE;YAC7B,QAAQ,QAAE,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAI,OAAO;SAClF,EAAC;KAAA,CAAC,CAAC;AACR,CAAC;;SCrBe,6BAA6B,CAAC,2BAAmC;;IAC7E,MAAM,oBAAoB,GAAG,OAAA,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC;IAClF,OAAO,oBAAoB,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;;MCSY,mBAAmB;IAGrB,OAAa,uBAAuB,CAAC,OAAuC,EAAE,WAAwB;;YACzG,OAAO,gBAAgB,CAAC,IAAI,CACxB,GAAG,mBAAmB,CAAC,QAAQ,kCAAkC,EACjE,OAAO,EACP;gBACI,MAAM,EAAE,WAAW;aACtB,CACJ,CAAC;SACL;KAAA;IAEM,OAAa,sBAAsB,CAAC,OAAsC,EAAE,WAAwB;;YACvG,OAAO,gBAAgB,CAAC,IAAI,CACxB,GAAG,mBAAmB,CAAC,QAAQ,iCAAiC,EAChE,OAAO,EACP;gBACI,MAAM,EAAE,WAAW;aACtB,CACJ,CAAC;SACL;KAAA;IAEM,OAAa,uBAAuB,CAAC,OAAuC,EAAE,WAAwB;;YACzG,OAAO,gBAAgB,CAAC,IAAI,CACxB,GAAG,mBAAmB,CAAC,QAAQ,kCAAkC,EACjE,OAAO,EACP;gBACI,MAAM,EAAE,WAAW;aACtB,CACJ,CAAC;SACL;KAAA;IAEM,OAAa,uBAAuB,CAAC,OAAuC,EAAE,WAAwB;;YACzG,OAAO,gBAAgB,CAAC,IAAI,CACxB,GAAG,mBAAmB,CAAC,QAAQ,kCAAkC,EACjE,OAAO,EACP;gBACI,MAAM,EAAE,WAAW;aACtB,CACJ,CAAC;SACL;KAAA;;AAxCc,4BAAQ,GAAG,wBAAwB,CAAC;;ACVvD;;;;AAIA,SAAgB,KAAK;IACjB,OAAO,UAAU,CAAC,KAAK,CAAC;QACpB,+CAA+C,EAAE;YAC7C,SAAS,EAAE,mBAAmB;SACjC;QAED,+CAA+C,EAAE;YAC7C,MAAM,EAAE,oBAAoB;YAC5B,aAAa,EAAE,oBAAoB;SACtC;KACJ,CAAC,CAAC;AACP,CAAC;;ACRD,IAAI,sBAAsB,GAAgB,IAAI,CAAC;AAE/C;;;;AAIC,SAAgB,wBAAwB;IACrC,OAAO;QACH,kCAAkC,EAAE;QACpC,KAAK,EAAE;KACV,CAAC;AACN,CAAC;AAED;;;;AAIA,SAAgB,4BAA4B,CAAC,OAAoB;IAC7D,sBAAsB,GAAG,OAAO,CAAC;IACjC,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACvC,CAAC;AAED;;;AAGA,SAAgB,4BAA4B;IACxC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACvC,CAAC;AAED;;;AAGA,SAAS,kCAAkC;IACvC,OAAO,UAAU,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,2BAA2B;QACnC,MAAM,CAAC,CAAC,EAAE,WAAW;YACjB,OAAO,2BAA2B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzD;QACD,OAAO,CAAC,KAAK;YACT,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SACpE;KACJ,CAAC,CAAC;AACP,CAAC;AAED;;;;;AAKA,SAAS,2BAA2B,CAAC,KAAkB;IACnD,IAAI,CAAC,sBAAsB;QAAE,OAAO;IAEpC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC,SAAS,CAAC;IACtE,MAAM,YAAY,GAAY;QAC1B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,qCAAqC,CAAC,4BAA4B,CAAC,EAAE,CAAC;KAC/F,CAAC;IAEF,sBAAsB,GAAG,IAAI,CAAC;IAC9B,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,qCAAqC,CAAC,wBAAgC;IAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,SAAS,GAAG,oCAAoC,CAAC;IAC5D,UAAU,CAAC,SAAS;QACpB;;;kBAGc,wBAAwB;;;;KAIrC,CAAC;IAEF,OAAO,UAAU,CAAC;AACtB,CAAC;;AClFD,IAAI,mCAAiD,CAAC;AAEtD;;;;AAIA,SAAgB,wBAAwB;IACpC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;AAGA;;;;AAIA,SAAgB,4BAA4B;IACxC,IAAI,CAAC,mCAAmC,EAAE;QACtC,mCAAmC,GAAG,sCAAsC,EAAE,CAAC;KAClF;IAED,4BAA4B,CAAC,mCAAmC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,sCAAsC;IAC3C,MAAM,uBAAuB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/D,uBAAuB,CAAC,SAAS,GAAG,yBAAyB,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;IAE9H,OAAO,uBAAuB,CAAC;AACnC,CAAC;;AC9BD,IAAI,iCAA+C,CAAC;AAEpD;;;;AAIA,SAAgB,sBAAsB;IAClC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;AAGA;;;;AAIA,SAAgB,0BAA0B;IACtC,IAAI,CAAC,iCAAiC,EAAE;QACpC,iCAAiC,GAAG,oCAAoC,EAAE,CAAC;KAC9E;IAED,4BAA4B,CAAC,iCAAiC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oCAAoC;IACzC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7D,qBAAqB,CAAC,SAAS,GAAG,yBAAyB,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAEtH,OAAO,qBAAqB,CAAC;AACjC,CAAC;;MC/BY,6BAA6B;IAI/B,OAAO,UAAU,CAAC,OAA8B;QACnD,6BAA6B,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;KAC/E;IAEM,OAAO,UAAU;QACpB,OAAO,6BAA6B,CAAC,OAAO,CAAC;KAChD;;AARc,qCAAO,GAA0B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;;ACHrE;;;;AAIA,SAAgB,kBAAkB;;IAC9B,MAAM,OAAO,GAAG,6BAA6B,CAAC,UAAU,EAAE,CAAC;IAC3D,IAAI,QAAC,OAAO,CAAC,QAAQ,0CAAE,MAAM,CAAA;QAAE,MAAM,IAAI,KAAK,CAC1C,8DAA8D;cAC5D,oDAAoD;cACpD,8CAA8C,CACnD,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC;;ACVD;;;;;;AAMA,SAAsB,eAAe,CAAC,OAAoB;;QACtD,IAAI;YACA,uCACO,OAAO,KACV,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,IACjC;SACL;QAAC,OAAO,CAAC,EAAE,GAAE;KACjB;CAAA;;ACfD;;;;AAIA,SAAgBF,OAAK;IACjB,OAAO,UAAU,CAAC,KAAK,CAAC;QACpB,oBAAoB,EAAE;YAClB,aAAa,EAAE,sBAAsB;YACrC,aAAa,EAAE,KAAK;SACvB;QAED,mCAAmC,EAAE;YACjC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;QAED,mCAAmC,EAAE;YACjC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;QAED,sCAAsC,EAAE;YACpC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;QAED,0CAA0C,EAAE;YACxC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;QAED,kCAAkC,EAAE;YAChC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;QAED,sCAAsC,EAAE;YACpC,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC;SAC3C;KACJ,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC1C,OAAO,MAAM,OAAO,GAAG,CAAC;AAC5B,CAAC;;ACDD;;;;AAIA,SAAgB,YAAY;IACxB,OAAO;QACH,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACpD,wBAAwB,EAAE;QAC1B,sBAAsB,EAAE;QACxBA,OAAK,EAAE;KACV,CAAC;AACN,CAAC;AAED,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAC3D,IAAI,iBAAoC,CAAC;AAEzC;;;;;AAKA,SAAS,oBAAoB,CAAC,OAA0B;IACpD,MAAM,oBAAoB,GAAG,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACnH,IAAI,oBAAoB;QAAE,OAAO;IAEjC,IAAI,iBAAiB,EAAE;QACnB,MAAM,sBAAsB,qBAA0B,iBAAiB,CAAE,CAAC;QAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QACvD,sBAAsB,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,GAAG,UAAU;cAChE,UAAU;cACV,sBAAsB,CAAC,IAAI,CAAC;QAClC,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,sBAAsB,CAAC;KACjC;IACD,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,0BAA0B,GAAe,SAAQ,CAAC;;AACtD,IAAI,qBAAmC,CAAC;AAExC;;;;AAIA,SAAS,4BAA4B,CAAC,OAA0B;IAC5D,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,UAAU,CAAC;QACP,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,4BAA4B,EAAE,CAAC;YAC/B,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3C;KACJ,EAAE,GAAG,CAAC,CAAC;;;;;;;;;;;IAYR,qBAAqB,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC;IAEnE,0BAA0B,GAAG;QACzB,qBAAqB,CAAC,mBAAmB,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACjF,qBAAqB,CAAC,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC/E,KAAK,CAAC,KAAK,EAAE,CAAC;KACjB,CAAC;IAEF,qBAAqB,CAAC,gBAAgB,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IAC9E,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;AAChF,CAAC;AAED;;;;;AAKA,SAAe,uBAAuB,CAAC,OAA0B,EAAE,KAAsB;;;QACrF,MAAM,gBAAgB,qBAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,GAAG,0CAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,QAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,mCAAI,CAAC,oCAAK,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAmB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpF,OAAO;aACF,GAAG,CAAC,QAAQ,CAAC;aACb,IAAI,CAAC,SAAS;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvB,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CACzB,sBAAsB,CAAC,IAAI,CAAC,EAC5B,sBAAsB,CAAC,SAAS,CAAC,EACjC,yBAAyB,CAAC,SAAS,CAAC,EACpC,sBAAsB,CAAC,SAAS,CAAC,CACpC,CAAC;gBACF,MAAM,mBAAmB,GAAiB,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAEtF,IAAI,mBAAmB,CAAC,MAAM,EAAE;oBAC5B,MAAM,oBAAoB,GAAiB,uBAAuB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;oBAChG,MAAM,iBAAiB,GAAiB,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;oBAEnF,iBAAiB,GAAG;wBAChB,IAAI,EAAE,OAAO,CAAC,GAAG;wBACjB,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,iBAAiB;qBAC7B,CAAC;oBACF,eAAe,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;iBAEpD;qBAAM;oBACH,0BAA0B,EAAE,CAAC;iBAChC;aAEJ;SACJ,CAAC,CAAC;;CACV;AAED;;;;;;;AAOA,SAAS,SAAS,CAAC,MAAc;;IAC7B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAEvD,MAAM,MAAM,eAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,0CAAG,CAAC,oCAAK,EAAE,CAAC;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;AAMA,SAAS,OAAO,CAAC,MAAc,EAAE,YAAoB;;IACjD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAEvD,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IAC5E,MAAM,IAAI,eAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,0CAAG,CAAC,oCAAK,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,MAAc,EAAE,WAAwB;;IAClF,MAAM,eAAe,GAA0B,kBAAkB,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,IAAI,IAAI,KAAK,EAAE,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,YAAY,CAAC,uBAAuB;YACjD,OAAO,EAAE,mBAAmB,CAAC,uBAAuB,CAChD;gBACI,EAAE,EAAE,eAAe,CAAC,QAAQ;aAC/B,EACD,WAAW,CACd;SACJ,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,YAAY,CAAC,sBAAsB;YAChD,OAAO,EAAE,mBAAmB,CAAC,sBAAsB,CAC/C;gBACI,OAAO,EAAE,eAAe,CAAC,QAAQ;gBACjC,UAAU,QAAE,eAAe,CAAC,WAAW,mCAAI,EAAE;gBAC7C,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE;oBACT,MAAM,EAAE,CAAC;oBACT,IAAI,EAAE,EAAE;iBACX;aACJ,EACD,WAAW,CACd;SACJ,CAAC,CAAC;KAEN;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,YAAY,CAAC,uBAAuB;YACjD,OAAO,EAAE,mBAAmB,CAAC,uBAAuB,CAChD;gBACI,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;gBACxB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5E,EACD,WAAW,CACd;SACJ,CAAC,CAAC;KAEN;SAAM;QACH,QAAQ,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,YAAY,CAAC,uBAAuB;YACjD,OAAO,EAAE,mBAAmB,CAAC,uBAAuB,CAChD;gBACI,OAAO,EAAE,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE;oBACT,MAAM,EAAE,CAAC;oBACT,IAAI,EAAE,EAAE;iBACX;aACJ,EACD,WAAW,CACd;SACJ,CAAC,CAAC;KACN;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,WAAW,GAAG;QAChB;YACI,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,KAAK,EAAE,8BAA8B;SACxC;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,eAAe;SACzB;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,QAAQ;YACxB,KAAK,EAAE,oBAAoB;SAC9B;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,eAAe;SACzB;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,KAAK,EAAE,SAAS;SACnB;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,GAAG;YACnB,KAAK,EAAE,MAAM;SAChB;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjB,KAAK,EAAE,IAAI;SACd;QACD;YACI,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,KAAK,EAAE,KAAK;SACf;KACJ,CAAC;IAEF,OAAO,WAAW,CAAC,GAAG,CAAC,cAAc,qCAC9B,cAAc,KACjB,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,kBAAkB,UAAU,CAAC,EAC5E,IAAI,EAAE,eAAe,CAAC,OAAO,IAC/B,CAAC,CAAC;AACR,CAAC;AAED,SAAS,sBAAsB,CAAC,SAA0B;;IACtD,MAAM,gBAAgB,GAA8C,SAAS,CAAC,IAAI,CAAC,QAAQ,IACvF,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,MAAK,YAAY,CAAC,uBAAuB,CACjE,CAAC;IAEF,IAAI,gBAAgB,EAAE;QAClB,OAAO,aAAC,gBAAgB,CAAC,QAAQ,0CAAE,eAAe,mCAAI,EAAE;aACnD,GAAG,CAAC,eAAe,KAAK;YACrB,KAAK,EAAE,eAAe,CAAC,IAAI;YAC3B,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,kBAAkB,UAAU,CAAC;YAC5E,KAAK,EAAE,eAAe,CAAC,IAAI;YAC3B,IAAI,EAAE,eAAe,CAAC,OAAO;SAChC,CAAC,CAAC,CAAC;KACX;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,SAA0B;;IACzD,MAAM,mBAAmB,GAA6C,SAAS,CAAC,IAAI,CAAC,QAAQ,IACzF,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,MAAK,YAAY,CAAC,sBAAsB,CAChE,CAAC;IAEF,IAAI,mBAAmB,EAAE;QACrB,OAAO,aAAC,mBAAmB,CAAC,QAAQ,0CAAE,kBAAkB,mCAAI,EAAE;aACzD,GAAG,CAAC,kBAAkB,KAAK;YACxB,KAAK,EAAE,kBAAkB,CAAC,IAAI;YAC9B,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,kBAAkB,IAC7D,kBAAkB,CAAC,IAAI,KAAK,QAAQ,CAAC,iBAAiB;kBAChD,mBAAmB;kBACnB,iBACN,EAAE,CAAC;YACP,KAAK,EAAE,kBAAkB,CAAC,IAAI;YAC9B,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,IAAI,EAAE,kBAAkB,CAAC,IAAI,KAAK,QAAQ,CAAC,iBAAiB,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,cAAc;SAC7H,CAAC,CAAC,CAAC;KACX;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,SAA0B;;IACtD,MAAM,uBAAuB,GAA8C,SAAS,CAAC,IAAI,CAAC,QAAQ,IAC9F,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,MAAK,YAAY,CAAC,uBAAuB,CACjE,CAAC;IAEF,IAAI,uBAAuB,EAAE;QACzB,OAAO,aAAC,uBAAuB,CAAC,QAAQ,0CAAE,mBAAmB,mCAAI,EAAE;aAC9D,GAAG,CAAC,MAAM,KAAK;YACZ,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,kBAAkB,SAAS,CAAC;YAC3E,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,IAAI,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CAAC,CAAC;KACX;IAED,MAAM,sBAAsB,GAA8C,SAAS,CAAC,IAAI,CAAC,QAAQ,IAC7F,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,MAAK,YAAY,CAAC,uBAAuB,CACjE,CAAC;IAEF,IAAI,sBAAsB,EAAE;QACxB,OAAO,mBAAC,sBAAsB,CAAC,QAAQ,0CAAE,cAAc,0CAAE,MAAM,mCAAI,EAAE;aAChE,GAAG,CAAC,MAAM,KAAK;YACZ,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,kBAAkB,IAC7D,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM;kBACzB,QAAQ;kBACR,OACN,EAAE,CAAC;YACP,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,UAAU;SAC9F,CAAC,CAAC,CAAC;KACX;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;AAGA,SAAS,sBAAsB,CAAC,WAAyB,EAAE,MAAc;IACrE,OAAO,WAAW;SACb,MAAM,CAAC,cAAc,IACd,cAAc;SACT,KAAK;SACL,WAAW,EAAE;SACb,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAGD;;;AAGA,SAAS,uBAAuB,CAAC,WAAyB,EAAE,MAAc;IACtE,OAAO,WAAW;SACb,GAAG,CAAC,cAAc,qCACZ,cAAc,KACjB,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,IAC9D,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,YAAoB;IAC5D,OAAO,CAAC,IAAgB,EAAE,UAAsB,EAAE,IAAY,EAAE,EAAU;QACtE,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAErC,IAAI,CAAC,QAAQ,CAAC;YACV,OAAO,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,EAAE;gBACF,MAAM,EAAE,YAAY;aACvB;YACD,SAAS,EAAE;gBACP,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM;aACxC;YACD,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC;SAC/C,CAAC,CAAC;KACN,CAAA;AACL,CAAC;AAED,MAAM,oBAAoB,GAAsB;IAC5C,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,OAAO;IACvB,eAAe,CAAC,cAAc;IAC9B,eAAe,CAAC,UAAU;IAC1B,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,UAAU;CAC7B,CAAC;AAEF;;;AAGA,SAAS,oBAAoB,CAAC,WAAyB;IACnD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,CAAa;QACjD,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;QAE1E,OAAO,SAAS,GAAG,SAAS,CAAC;KAChC,CAAC,CAAC;AACP,CAAC;;SC7ae,cAAc;IAC1B,OAAO,IAAI,eAAe,CACtB,WAAW,EACX;QACI,YAAY,EAAE;KACjB,CACJ,CAAC;AACN,CAAC;;MCHY,eAAe;IAMjB,OAAO,WAAW,CAAC,QAAmB;QACzC,MAAM,sBAAsB,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,sBAAsB;YAAE,OAAO,sBAAsB,EAAE,CAAC;QAC5D,OAAO,EAAgC,CAAC;KAC3C;;AARc,0BAAU,GAA2C,IAAI,GAAG,CAAC;IACxE,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;CAC7C,CAAC,CAAC;;ACVP;;;;AAIA,SAAgBA,OAAK;IACjB,OAAO,UAAU,CAAC,KAAK,CAAC;QACpB,wBAAwB,EAAE;YACtB,OAAO,EAAE,MAAM;SAClB;KACJ,CAAC,CAAC;AACP,CAAC;;ACXM,MAAM,sBAAsB,GAAmB,cAAc,CAAC,MAAM,CAAC;IACxE;QACI,GAAG,EAAE,IAAI,CAAC,OAAO;QACjB,KAAK,EAAE,SAAS;KACnB;IACD;QACI,GAAG,EAAE,IAAI,CAAC,MAAM;QAChB,KAAK,EAAE,SAAS;KACnB;IACD;QACI,GAAG,EAAE,IAAI,CAAC,MAAM;QAChB,KAAK,EAAE,SAAS;KACnB;CACJ,CAAC,CAAC;;ACZH;;;;AAIA,SAAgB,UAAU;IACtB,OAAO;QACHA,OAAK,EAAE;KACV,CAAC;AACN,CAAC;AAED,SAASA,OAAK;IACV,OAAO,UAAU,CAAC,SAAS,CAAC;QACxB,aAAa,EAAE;YACX,QAAQ,EAAE,MAAM;SACnB;KAEJ,CAAC,CAAC;AACP,CAAC;;AChBD;;;;AAIA,SAAgB,SAAS;IACrB,OAAO,CAACA,OAAK,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,gBAAgB,GAAc;IAChC,aAAa,EAAE,gCAAgC;IAC/C,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,MAAM;CACtB,CAAC;AAEF,SAASA,OAAK;IACV,OAAO,UAAU,CAAC,KAAK,CAAC;QACpB,cAAc,kCACP,gBAAgB,KACnB,gBAAgB,EAAE,GAAG,EACrB,aAAa,EAAE,OAAO,EACtB,yBAAyB,EAAE,YAAY,EACvC,OAAO,EAAE,SAAS,GACrB;QAED,0CAA0C,kCACnC,gBAAgB,KACnB,yBAAyB,EAAE,YAAY,EACvC,OAAO,EAAE,SAAS,GACrB;QAED,8DAA8D,EAAE;YAC5D,aAAa,EAAE,OAAO;YACtB,yBAAyB,EAAE,YAAY;SAC1C;QAED,+DAA+D,EAAE;YAC7D,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,QAAQ;YACtB,aAAa,EAAE,SAAS;SAC3B;KACJ,CAAC,CAAC;AACP,CAAC;;ACzCD;;;;AAIA,SAAgB,WAAW;IACvB,OAAO;QACH,WAAW,EAAE;QACbA,OAAK,EAAE;KACV,CAAC;AACN,CAAC;AAED,SAASA,OAAK;IACV,OAAO,UAAU,CAAC,KAAK,CACnB;QACI,aAAa,EAAE;YACX,kBAAkB,EAAE,MAAM;YAC1B,OAAO,EAAE,SAAS;YAClB,cAAc,EAAE,MAAM;SACzB;QACD,YAAY,EAAE;YACV,SAAS,EAAE,eAAe;SAC7B;KACJ,CACJ,CAAC;AACN,CAAC;;ACzBD;;;;AAIA,SAAgB,mBAAmB;IAC/B,OAAO,CAACA,OAAK,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAASA,OAAK;IACV,OAAO,UAAU,CAAC,SAAS,CAAC;QACxB,aAAa,EAAE;YACX,QAAQ,EAAE,iBAAiB;YAC3B,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,oBAAoB;SAC3C;QAED,0DAA0D,EAAE;YACxD,SAAS,EAAE,MAAM;SACpB;QAED,+DAA+D,EAAE;YAC7D,aAAa,EAAE,QAAQ;SAC1B;QAED,uEAAuE,EAAE;YACrE,SAAS,EAAE,MAAM;SACpB;QAED,sEAAsE,EAAE;YACpE,SAAS,EAAE,MAAM;SACpB;QAED,6DAA6D,EAAE;YAC3D,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,SAAS;YACzB,OAAO,EAAE,MAAM;SAClB;QAED,+CAA+C,EAAE;YAC7C,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,oBAAoB;YACxC,OAAO,EAAE,iBAAiB;SAC7B;QAED,uDAAuD,EAAE;YACrD,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,8FAA8F;YAC5G,YAAY,EAAE,oBAAoB;YAClC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,QAAQ;SACnB;QAED,+DAA+D,EAAE;YAC7D,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,aAAa;YAC7B,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,SAAS;YAC/B,cAAc,EAAE,wBAAwB;SAC3C;KACJ,CAAC,CAAC;AACP,CAAC;;ACpED;AACA,SAWgB,QAAQ;IACpB,OAAO;QACH;YACIA,OAAK,EAAE;YACP,UAAU,EAAE;YACZ,SAAS,EAAE;YACX,WAAW,EAAE;YACb,mBAAmB,EAAE;SACxB;QACD,sBAAsB;KACzB,CAAC;AACN,CAAC;;MCjBY,YAAY;IAMd,OAAO,QAAQ,CAAC,KAAa;QAChC,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,kBAAkB;YAAE,OAAO,kBAAkB,EAAE,CAAC;QACpD,OAAO,EAA4B,CAAC;KACvC;;AARc,oBAAO,GAAoC,IAAI,GAAG,CAAC;IAC9D,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAC,CAAC;;MCMM,eAAgB,SAAQ,UAAU;IAU3C;QACI,KAAK,EAAE,CAAC;;QAJJ,oCAA+B,GAAG,EAAE,CAAC;QACrC,6CAAwC,GAAc,EAAE,CAAC;KAIhE;IAEM,OAAO,aAAa;QACvB,OAAO,eAAe,CAAC,WAAW,CAAC;KACtC;IAEM,OAAO,gBAAgB,CAAC,GAAG,gBAAmC;QACjE,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,CAAC;KAC7D;IAEM,qBAAqB,CAAC,OAAuB;QAChD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;IAEM,OAAO,CAAC,IAAY;QACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;KAClC;IAEM,QAAQ;QACX,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAClC;IAEM,WAAW;QACd,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC;QAC1C,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC;QACnC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACtC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAC7C;IAES,oBAAoB,CAAC,OAAsB;QACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,eAAe,CAAC,WAAW,EAAE;YAC7B,eAAe,CAAC,gBAAgB,CAAC;gBAC7B,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;oBAChC,QAAQ;oBACR,KAAK;oBACL,IAAI,CAAC,8BAA8B,EAAE;iBACxC,CAAC;aACL,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,wCAAwC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACrE;KACJ;IAES,aAAa,CAAC,OAAiB;QACrC,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvG,eAAe,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;KACpG;IAEO,uBAAuB;QAC3B,eAAe,CAAC,wBAAwB;aACnC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;aAC/C,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;IAEO,gBAAgB,CAAC,aAA0B;QAC/C,eAAe,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;YACzC,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;gBACtB,GAAG,EAAE,IAAI,CAAC,+BAA+B;gBACzC,UAAU,EAAE;oBACR,IAAI,CAAC,wCAAwC;oBAC7C,IAAI,CAAC,8BAA8B,EAAE;iBACxC;aACJ,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,8BAA8B;QAClC,OAAO,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KAC1H;IAEO,mBAAmB,CAAC,IAAY;QACpC,IAAI,eAAe,CAAC,WAAW,EAAE;YAC7B,eAAe,CAAC,gBAAgB,CAAC;gBAC7B,OAAO,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;oBAChD,MAAM,EAAE,IAAI;iBACf;aACJ,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC;SAC/C;KACJ;;AAlGa,wCAAwB,GAAsB,IAAI,OAAO,EAAE,CAAC;AAC3D,8BAAc,GAAkB,IAAI,OAAO,EAAE,CAAC;AAC9C,2BAAW,GAAe,IAAI,CAAC;;ICErC,gBAAgB,GAA7B,MAAa,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAd5B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,wBAAwB;SAC3B;QACD,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,eAAe;aAC5B;SACJ;KACJ,CAAC;GACW,gBAAgB,CAAG;;ICNnB,wBAAwB,GAArC,MAAa,wBAAwB;IAwBlC,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAnBtC,sBAAiB,GAAG,WAAW,CAAC;QAGhC,qBAAgB,GAAG,IAAI,CAAC;QAGxB,aAAQ,GAAG,KAAK,CAAC;QAGjB,wBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QAGzC,aAAQ,GAA4B,IAAI,YAAY,EAAE,CAAC;QAEvD,SAAI,GAAG,KAAK,CAAC;QAEb,sBAAiB,GAAG,CAAC,CAAC;QACtB,qBAAgB,GAAG,CAAC,CAAC;QAKrB,aAAQ,GAAG,CAAC,CAAC;KAH8B;IAM3C,UAAU,CAAC,KAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAClD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACpB;KACH;IAGM,SAAS,CAAC,KAAoB;QAClC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAE1D,IAAI,SAAS,CAAC,QAAQ,EAAE;oBACrB,OAAO;iBACT;gBAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAC9D;YACD,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAChC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACpB;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YACnC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC1B;SACH;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YACjC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC1B;SACH;KACH;IAEM,QAAQ;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACrB;KACH;IAEM,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC/C;KACH;IAEM,YAAY;QAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;KACjD;IAEM,YAAY,CAAC,SAAoB;QACrC,IAAI,SAAS,CAAC,QAAQ,EAAE;YACrB,OAAO;SACT;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAEM,mBAAmB;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;KAClC;CACH,CAAA;;YAvEqC,UAAU;;AAtB7C;IADC,KAAK,EAAE;4DACuB;AAG/B;IADC,KAAK,EAAE;mEAC+B;AAGvC;IADC,KAAK,EAAE;kEACuB;AAG/B;IADC,KAAK,EAAE;0DACgB;AAGxB;IADC,MAAM,EAAE;qEACuC;AAGhD;IADC,MAAM,EAAE;0DACqD;AAU9D;IADC,WAAW,CAAC,eAAe,CAAC;0DACT;AAGpB;IADC,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;0DAK1C;AAGD;IADC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;yDAyBnC;AA7DS,wBAAwB;IALpC,SAAS,CAAC;QACR,QAAQ,EAAE,oBAAoB;QAC9B,8hDAAgD;;KAElD,CAAC;GACW,wBAAwB,CA+FpC;;ICvGY,qBAAqB,GAAlC,MAAa,qBAAqB;CAAI,CAAA;AAAzB,qBAAqB;IALjC,QAAQ,CAAC;QACP,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,wBAAwB,CAAC;QACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;KACrC,CAAC;GACW,qBAAqB,CAAI;;ICDzB,oBAAoB,GAAjC,MAAa,oBAAoB;IAAjC;QAcU,cAAS,GAAG,IAAI,CAAC;KAc1B;IAZS,QAAQ;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;KACxB;IAEO,cAAc;QACnB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACnD;KACH;CACH,CAAA;AA1BE;IADC,KAAK,EAAE;mDACa;AAGrB;IADC,KAAK,EAAE;yDACmB;AAG3B;IADC,KAAK,EAAE;yDACmB;AAG3B;IADC,KAAK,EAAE;yDAC8B;AAGtC;IADC,KAAK,EAAE;uDACgB;AAdd,oBAAoB;IALhC,SAAS,CAAC;QACR,QAAQ,EAAE,eAAe;QACzB,igCAA2C;;KAE7C,CAAC;GACW,oBAAoB,CA4BhC;;IC3BY,iBAAiB,GAA9B,MAAa,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAL7B,QAAQ,CAAC;QACP,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KACjC,CAAC;GACW,iBAAiB,CAAI;;ICVtB,iBAKX;AALD,WAAY,iBAAiB;IAC1B,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,gCAAW,CAAA;IACX,sCAAiB,CAAA;AACpB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;;;ICUY,oBAAoB,4BAAjC,MAAa,oBAAoB;IAAjC;QAWW,aAAQ,GAAG,KAAK,CAAC;KAwB3B;IAlBU,UAAU,CAAC,KAAsB;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;KACJ;IACM,gBAAgB,CAAC,QAA0C;QAC9D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IACM,iBAAiB,CAAC,SAA2C;QAChE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC/B;IAEM,QAAQ,CAAC,MAAuB;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;KACJ;CACJ,CAAA;AAjCG;IADC,KAAK,EAAE;mDACwB;AAGhC;IADC,KAAK,EAAE;wDACkB;AAG1B;IADC,KAAK,EAAE;sDACgB;AAGxB;IADC,KAAK,EAAE;sDACgB;AAXf,oBAAoB;IAVhC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,k1BAA4C;QAE5C,SAAS,EAAE,CAAC;gBACR,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAoB,CAAC;gBACnD,KAAK,EAAE,IAAI;aACd,CAAC;;KACL,CAAC;GACW,oBAAoB,CAmChC;;ICpCY,iBAAiB,GAA9B,MAAa,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAR7B,QAAQ,CAAC;QACN,OAAO,EAAE;YACL,YAAY;YACZ,mBAAmB;SACtB;QACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KAClC,CAAC;GACW,iBAAiB,CAAI;;ICdtB,eAIX;AAJD,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,sCAAmB,CAAA;AACvB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;;ICMY,oBAAoB,GAAjC,MAAa,oBAAoB;IAmB7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAjBtC,aAAQ,GAAG,KAAK,CAAC;QASjB,SAAI,GAAG,eAAe,CAAC,OAAO,CAAC;QAM/B,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAWnC,SAAI,GAAG,KAAK,CAAC;KAT8B;IAG3C,UAAU,CAAC,KAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACjD,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IAIM,aAAa;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IAEM,eAAe;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B;KACJ;IAEM,aAAa,CAAC,MAAyB;QAC1C,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;CACJ,CAAA;;YAhCsC,UAAU;;AAjB7C;IADC,KAAK,EAAE;sDACgB;AAGxB;IADC,KAAK,EAAE;uDACiB;AAGzB;IADC,KAAK,EAAE;mDACa;AAGrB;IADC,KAAK,EAAE;kDAC8B;AAGtC;IADC,KAAK,EAAE;qDAC4B;AAGpC;IADC,MAAM,EAAE;2DACiC;AAK1C;IADC,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;sDAK1C;AA1BQ,oBAAoB;IALhC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,g6BAA4C;;KAE/C,CAAC;GACW,oBAAoB,CAmDhC;;ICnDY,iBAAiB,GAA9B,MAAa,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAL7B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;KAClC,CAAC;GACW,iBAAiB,CAAI;;ICYrB,cAAc,GAA3B,MAAa,cAAc;IAA3B;QAKI,eAAU,GAAG,IAAI,CAAC;QAGlB,cAAS,GAAG,KAAK,CAAC;QAGlB,aAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;QAMhC,oBAAe,GAAG,IAAI,YAAY,EAAW,CAAC;QAOrC,iBAAY,GAAG,YAAY,CAAC;KACxC;IANG,iBAAiB,CAAC,SAAkB;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7C;CAGJ,CAAA;AAvBG;IADC,KAAK,EAAE;8CACO;AAGf;IADC,KAAK,EAAE;kDACU;AAGlB;IADC,KAAK,EAAE;iDACU;AAGlB;IADC,KAAK,EAAE;gDACwB;AAGhC;IADC,KAAK,EAAE;2DACiC;AAGzC;IADC,MAAM,EAAE;uDACqC;AAjBrC,cAAc;IAjB1B,SAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,8gCAAqC;QAErC,UAAU,EAAE;YACR,OAAO,CAAC,uBAAuB,EAAE;gBAC7B,UAAU,CAAC,QAAQ,EAAE;oBACjBA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,YAAY,EAAEA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjBA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,YAAY,EAAEA,OAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;aACL,CAAC;SACL;;KACJ,CAAC;GACW,cAAc,CAyB1B;;IClCY,WAAW,GAAxB,MAAa,WAAW;CAAG,CAAA;AAAd,WAAW;IALvB,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAEY,aAAkB,EAAE,kBAAkB,CAAC;QAC/D,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,OAAO,EAAE,CAAC,cAAc,CAAC;KAC5B,CAAC;GACW,WAAW,CAAG;;MCbd,QAAQ,GAAQ;IACzB,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,mBAAmB;IAClE,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,0BAA0B;IACzE,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,sBAAsB;IACrE,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,wBAAwB;IACvE,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,uBAAuB;IACtE,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,kCAAkC;IACjF,6CAA6C,EAAE,mBAAmB;IAClE,6CAA6C,EAAE,uBAAuB;IACtE,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,wBAAwB;IACvE,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,kBAAkB;IACjE,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,sBAAsB;IACrE,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,kBAAkB;IACjE,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,qBAAqB;IACpE,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,2BAA2B;IAC1E,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,kBAAkB;IACjE,6CAA6C,EAAE,uBAAuB;IACtE,6CAA6C,EAAE,gCAAgC;IAC/E,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,sBAAsB;IACrE,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,mBAAmB;IAClE,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,KAAK;IACpD,6CAA6C,EAAE,kBAAkB;IACjE,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,cAAc;IAC7D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,2BAA2B;IAC1E,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,oBAAoB;IACnE,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,2BAA2B;IAC1E,6CAA6C,EAAE,oBAAoB;IACnE,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,KAAK;IACpD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,iBAAiB;IAChE,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,MAAM;IACrD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,UAAU;IACzD,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,WAAW;IAC1D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,OAAO;IACtD,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,YAAY;IAC3D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,eAAe;IAC9D,6CAA6C,EAAE,QAAQ;IACvD,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,SAAS;IACxD,6CAA6C,EAAE,gBAAgB;IAC/D,6CAA6C,EAAE,aAAa;IAC5D,6CAA6C,EAAE,WAAW;IAC1D,uDAAuD,EAAE,mEAAmE;CAC/H;;AClOD;;GAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components.js","sources":["ng://@seniorsistemas/angular-components/components/accordion/components/accordion-panel/accordion-panel.component.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.module.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-position.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.component.ts","ng://@seniorsistemas/angular-components/components/utils/debouce.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/mobile-behavior.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-event.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.directive.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.module.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.module.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-colors.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-types.ts","ng://@seniorsistemas/angular-components/components/badge/badge.component.ts","ng://@seniorsistemas/angular-components/components/badge/badge.module.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.component.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.module.ts","ng://@seniorsistemas/angular-components/components/button/button-priority.ts","ng://@seniorsistemas/angular-components/components/button/button-size.ts","ng://@seniorsistemas/angular-components/components/button/button-animation-type.ts","ng://@seniorsistemas/angular-components/components/button/button.component.ts","ng://@seniorsistemas/angular-components/components/button/button.module.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.directive.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.module.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.component.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.module.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.component.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.module.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/resources/countries.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/models/ordination.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.service.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.component.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-size.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/autocomplete-field.ts","ng://@seniorsistemas/angular-components/components/locale/options/calendar.ts","ng://@seniorsistemas/angular-components/components/locale/options/number.ts","ng://@seniorsistemas/angular-components/components/locale/options/index.ts","ng://@seniorsistemas/angular-components/components/locale/locale.service.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-number.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/locale.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/bignumber-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/blob-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-switch-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/calendar-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/chips-field.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/number-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/decimal-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/currency-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/lookup-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/radio-button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/select-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/password-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/slider-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/form-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/lookup/lookup.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/base-field-component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/grid.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/row.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/structure.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/fieldset.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/section.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-config.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/go-back/go-back.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/validate-errors.ts","ng://@seniorsistemas/angular-components/components/utils/breakpoints.ts","ng://@seniorsistemas/angular-components/components/utils/export-utils.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/custom-http-client.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations-service.ts","ng://@seniorsistemas/angular-components/angular-components.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.service.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.module.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.directive.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.module.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.directive.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.module.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.directive.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.module.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.pipe.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.module.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkbox.component.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkox.module.ts","ng://@seniorsistemas/angular-components/components/table/navigation/navigation.directive.ts","ng://@seniorsistemas/angular-components/components/table/row-toggler/row-toggler.directive.ts","ng://@seniorsistemas/angular-components/components/table/frozen-position/frozen-position.directive.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-column-field-type.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-badge-colors.ts","ng://@seniorsistemas/angular-components/components/table/table-column/table-columns.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.module.ts","ng://@seniorsistemas/angular-components/components/table/table-paging/table-paging.component.ts","ng://@seniorsistemas/angular-components/components/table/table.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/calendar/calendar-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/chips/chips-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/lookup/lookup-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/radio-button/radio-button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/select/select-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area/text-area-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/grid/row/row.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/fieldset/fieldset.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/section/section.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/dynamic-field/dynamic-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/slider/slider-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/long-press.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/double-click.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/mouse-events.module.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-strengths.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-positions.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.directive.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.service.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.component.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.module.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.directive.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.module.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/date-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/svg-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/models/view-mode.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/bar.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/popup.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/arrow.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt-options.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.component.ts","ng://@seniorsistemas/angular-components/components/gantt/components/side-table/side-table.component.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.module.ts","ng://@seniorsistemas/angular-components/components/structure/header.component.ts","ng://@seniorsistemas/angular-components/components/structure/footer.component.ts","ng://@seniorsistemas/angular-components/components/structure/structure.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.component.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail-size.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.module.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/field/object-card-field.component.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/main/object-card-main.component.ts","ng://@seniorsistemas/angular-components/components/shared/models/enum-severity.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.module.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.module.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.component.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.module.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.component.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.module.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.component.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.module.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.component.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.module.ts","ng://@seniorsistemas/angular-components/components/steps/steps.component.ts","ng://@seniorsistemas/angular-components/components/steps/steps.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/range-line/range-line.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-severity.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-size.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item.ts","ng://@seniorsistemas/angular-components/components/tile/tile.component.ts","ng://@seniorsistemas/angular-components/components/tile/tile.module.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/models/file-validation-errors.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.component.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search-size.enum.ts","ng://@seniorsistemas/angular-components/components/global-search/elements/dropdown/global-search-dropdown-item.component.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.component.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.directive.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/use-cases/core-linters.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/facades/core-facade.ts","ng://@seniorsistemas/angular-components/components/code-editor/presentation/code-editor-component.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/enums/marker-severity.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/index.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","ng://@seniorsistemas/angular-components/components/code-editor/presentation/code-editor-module.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.component.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-colors.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.component.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.module.ts","ng://@seniorsistemas/angular-components/components/split-button/models/split-button-type.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.module.ts","ng://@seniorsistemas/angular-components/components/panel/panel.component.ts","ng://@seniorsistemas/angular-components/components/panel/panel.module.ts","ng://@seniorsistemas/angular-components/locale/fallback.ts","ng://@seniorsistemas/angular-components/seniorsistemas-angular-components.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { trigger, style, animate, transition, state } from \"@angular/animations\";\n\nimport { AccordionButtonSettings } from \"../../models/accordion-button-settings\";\nimport { AccordionSwitchSettings } from \"../../models/accordion-switch-settings\";\n\n@Component({\n selector: \"s-accordion-panel\",\n templateUrl: \"./accordion-panel.component.html\",\n styleUrls: [\"./accordion-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [style({ height: \"0\" }), animate(\"200ms linear\", style({ height: \"*\" }))]),\n transition(\":leave\", [style({ height: \"*\" }), animate(\"200ms linear\", style({ height: \"0\" }))]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ height: \"*\" })),\n state(\"false\", style({ height: '0px' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnInit, AfterViewInit {\n @Input()\n public header: string;\n\n @Input()\n public buttons: AccordionButtonSettings[];\n\n @Input()\n public disabled = false;\n\n @Input()\n public switch: AccordionSwitchSettings;\n\n @Input()\n public validationMessage: string;\n\n @Input()\n public cache = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n public switchState: boolean;\n\n private _isOpen = false;\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnInit(): void {\n if (this.switch) {\n this.switchState = this.switch.state;\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n","import { AfterContentInit, OnChanges, Component, ContentChildren, Input, QueryList, SimpleChanges } from \"@angular/core\";\n\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"s-accordion\",\n templateUrl: \"./accordion.component.html\",\n styleUrls: [\"./accordion.component.scss\"],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges {\n @Input()\n public activeIndex: number;\n\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents: QueryList<AccordionPanelComponent>;\n\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[];\n\n public ngAfterContentInit(): void {\n this._panels = this.panelsComponents.toArray();\n this._openSubs = new Array(this._panels.length);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.multiple) {\n if (changes.multiple.currentValue) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTab = this._panels[this.activeIndex];\n \n if (!activeTab) {\n throw new Error(\"activeIndex does not represent any panel.\");\n }\n\n if (!activeTab.disabled) {\n this._panels[this.activeIndex].isOpen = true;\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened.subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n","// switch.component.ts\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n }],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input()\n public readonly = false;\n\n @Input()\n public trueLabel?: string;\n\n @Input()\n public falseLabel?: string;\n\n @Input()\n public inputId: string;\n\n @Input()\n public inputName: string;\n\n @Input()\n public disabled = false;\n\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n @Input()\n public value = false;\n\n @ViewChild(\"switch\", { static: true })\n public switchRef: ElementRef;\n\n @HostListener('focusin')\n onFocusIn() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.add(\"switch--focus\");\n }\n\n @HostListener('focusout')\n onFocusOut() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.remove(\"switch--focus\");\n }\n\n private _onChange: (value: boolean) => void;\n private _onTouched: (value: boolean) => void;\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SwitchComponent } from \"./switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule { }","export enum TooltipPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n Left = \"left\",\n Right = \"right\",\n}\n","import { Component } from \"@angular/core\";\nimport { TooltipPosition } from \"./models/tooltip-position\";\n\n@Component({\n templateUrl: \"./tooltip.component.html\",\n styleUrls: [\"./tooltip.component.scss\"],\n})\nexport class TooltipComponent {\n public tooltip = \"\";\n public position = TooltipPosition.Top;\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","import { Injectable } from '@angular/core';\n\nconst DEFAULT_TIMER = 300;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DebounceUtils {\n public debounce(func: Function, timeout = DEFAULT_TIMER){\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n }\n\n public debounceLeading(func: Function, timeout = DEFAULT_TIMER) {\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n }, timeout);\n };\n }\n}\n","export enum MobileBehavior {\n Pressing = \"pressing\",\n Tap = \"tap\",\n}","export enum TooltipEvent {\n Focus = \"focus\",\n Hover = \"hover\",\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { DebounceUtils } from \"../utils/debouce\";\nimport { MobileBehavior, TooltipEvent, TooltipPosition } from \"./models\";\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { ElementArea } from \"./models/element-area\";\n\n@Directive({\n selector: \"[sTooltip]\",\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n @Input(\"sTooltip\")\n public tooltip: string;\n\n @Input(\"tooltipPosition\")\n public position: TooltipPosition = TooltipPosition.Top;\n\n @Input()\n public showDelay = 500;\n\n @Input()\n public displayTime: number;\n\n @Input()\n public tooltipEvent = TooltipEvent.Hover;\n\n @Input()\n public escape = false;\n\n @Input()\n public visible = true;\n\n @Input()\n public mobileBehavior = MobileBehavior.Pressing;\n\n private componentRef: ComponentRef<any> = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement?: HTMLElement;\n private readonly boundOnWindowMouseMoveFunction: (event: MouseEvent) => void;\n private readonly debounceCreateTooltipFunction: () => void;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n private readonly debounceUtils: DebounceUtils\n ) {\n this.boundOnWindowMouseMoveFunction = this.onWindowMouseMove.bind(this);\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this.createTootip());\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private onWindowMouseMove(event: MouseEvent) {\n if (!this.componentRef) {\n return;\n }\n const elementRect = this.elementRef.nativeElement.getBoundingClientRect();\n const toolTipRect = this.tooltipDivElement.getBoundingClientRect();\n\n const totalElementArea = {\n top: Math.min(elementRect.top, toolTipRect.top),\n right: Math.max(elementRect.right, toolTipRect.right),\n left: Math.min(elementRect.left, toolTipRect.left),\n bottom: Math.max(elementRect.bottom, toolTipRect.bottom)\n };\n\n if (this.isMousePositionOutsideOfElement(event.clientX, event.clientY, totalElementArea)) {\n this.destroy();\n }\n }\n\n private isMousePositionOutsideOfElement(mouseX: number, mouseY: number, elementArea: ElementArea) {\n return mouseX < elementArea.left || mouseX >= elementArea.right || mouseY < elementArea.top || mouseY >= elementArea.bottom;\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener(\"click\")\n @HostListener(\"keydown\")\n public onClick(): void {\n if (this.tooltipEvent === TooltipEvent.Hover &&\n !navigator.userAgent.match(/Android/i) &&\n !navigator.userAgent.match(/iPhone/i)) {\n this.destroy();\n }\n }\n\n // whenever you touch outside the component with the tooltip I destroy the tooltip.\n @HostListener(\"document:touchstart\")\n public onDocumentTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.destroy();\n }\n }\n\n @HostListener(\"focus\")\n public onFocus(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.createTootip();\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.destroy();\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener(\"mouseleave\")\n @HostListener(\"wheel\")\n public onMouseLeave(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.destroy();\n }\n }\n\n @HostListener(\"touchstart\")\n public onTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n window.clearTimeout(this.touchTimeout);\n this.touchTimeout = window.setTimeout(\n this.createTootip.bind(this),\n this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0\n );\n }\n }\n\n @HostListener(\"touchend\")\n public onTouchEnd(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n if (this.mobileBehavior === MobileBehavior.Pressing) {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = [\n TooltipPosition.Top,\n TooltipPosition.Right,\n TooltipPosition.Bottom,\n TooltipPosition.Left,\n ].includes(this.position);\n\n if (!containsPosition) {\n this.position = TooltipPosition.Top;\n throw new Error(`Tooltip ${this.position} position is unexpected`);\n }\n }\n\n private createTootip() {\n if (this.componentRef === null && this.tooltip?.length) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setTooltipComponentProperties();\n this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);\n\n this.tooltipDivElement = domElem.querySelector('.tooltip');\n\n if (this.displayTime) {\n window.setTimeout(this.destroy.bind(this), this.displayTime);\n }\n }\n }\n\n private showTooltip() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n\n window.addEventListener('mousemove', this.boundOnWindowMouseMoveFunction);\n }\n }\n\n private setTooltipComponentProperties() {\n const margin = 20;\n const anchorSize = 5;\n\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n this.componentRef.instance.escape = this.escape;\n\n const { left, right, top, bottom } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipHeight = bottom - top;\n const tooltipWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: TooltipPosition[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(TooltipPosition.Top)\n && invalidOptions.includes(TooltipPosition.Bottom)\n && invalidOptions.includes(TooltipPosition.Left)\n && invalidOptions.includes(TooltipPosition.Right)) {\n this.destroy();\n throw new Error(\"No space to show tooltip\");\n }\n\n switch (this.position) {\n case TooltipPosition.Top: {\n if (invalidOptions.includes(TooltipPosition.Top)) {\n this.position = TooltipPosition.Left;\n break;\n }\n\n const topShift = top;\n\n if (topShift <= tooltipHeight + safeSpace) {\n this.position = TooltipPosition.Bottom;\n invalidOptions.push(TooltipPosition.Top);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);\n this.componentRef.instance.top = Math.round(top - margin - anchorSize);\n positioned = true;\n break;\n }\n case TooltipPosition.Bottom: {\n\n if (invalidOptions.includes(TooltipPosition.Bottom)) {\n this.position = TooltipPosition.Left;\n break;\n }\n\n const bottomShift = document.body.clientHeight - bottom;\n\n if (bottomShift <= tooltipHeight + safeSpace) {\n this.position = TooltipPosition.Top;\n invalidOptions.push(TooltipPosition.Bottom);\n break;\n }\n\n this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);\n this.componentRef.instance.top = Math.round(bottom + margin);\n positioned = true;\n break;\n }\n case TooltipPosition.Left: {\n if (invalidOptions.includes(TooltipPosition.Left)) {\n this.position = TooltipPosition.Top;\n break;\n }\n\n const leftShift = left;\n\n if (leftShift <= tooltipWidth + safeSpace) {\n this.position = TooltipPosition.Right;\n invalidOptions.push(TooltipPosition.Left);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(left - margin);\n this.componentRef.instance.top = Math.round(top + tooltipHeight / 2 - anchorSize);\n positioned = true;\n break;\n }\n case TooltipPosition.Right: {\n if (invalidOptions.includes(TooltipPosition.Right)) {\n this.position = TooltipPosition.Top;\n break;\n }\n\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= tooltipWidth + safeSpace) {\n this.position = TooltipPosition.Left;\n invalidOptions.push(TooltipPosition.Right);\n positioned = false;\n break;\n }\n\n this.componentRef.instance.left = Math.round(right + margin);\n this.componentRef.instance.top = Math.round(top + tooltipHeight / 2 - anchorSize);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private destroy(): void {\n if (this.componentRef !== null) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n\n window.removeEventListener('mousemove', this.boundOnWindowMouseMoveFunction);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipDirective } from \"./tooltip.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TooltipComponent,\n TooltipDirective,\n ],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { AccordionComponent } from \"./accordion.component\";\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n BrowserAnimationsModule,\n TooltipModule,\n SwitchModule,\n ],\n declarations: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n exports: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n})\nexport class AccordionModule { }\n","export enum BadgeColors {\n Red = \"red\",\n Orange = \"orange\",\n Yellow = \"yellow\",\n Blue = \"blue\",\n Green = \"green\",\n Gray = \"gray\",\n}","export enum BadgeTypes {\n Pill = \"pill\",\n Chip = \"chip\",\n}\n","import { Component, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\n\nimport { BadgeColors } from \"./models/badge-colors\";\nimport { BadgeTypes } from \"./models/badge-types\";\n\n@Component({\n selector: \"s-badge\",\n templateUrl: \"./badge.component.html\",\n styleUrls: [\"./badge.component.scss\"],\n})\nexport class BadgeComponent {\n @Input()\n public type = BadgeTypes.Pill;\n\n @Input()\n public color = BadgeColors.Blue;\n\n @Input()\n public title: string;\n\n @Input()\n public text: string;\n\n @Input()\n public selectable = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public iconPosition: \"left\" | \"right\" = \"left\";\n\n @Output()\n public selected: EventEmitter<string> = new EventEmitter();\n\n @HostListener(\"click\")\n public onClick() {\n this.selected.emit(this.text);\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { BadgeComponent } from \"./badge.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n ],\n declarations: [BadgeComponent],\n exports: [\n BadgeComponent,\n RouterModule,\n ],\n})\nexport class BadgeModule { }","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\nimport { ActivatedRoute, Router, NavigationEnd, PRIMARY_OUTLET } from \"@angular/router\";\nimport { MenuItem } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n @Input() public targetHomeUrl: string = \"_self\";\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n\n if (this.homeUrl) home = { url: this.homeUrl, icon: \"fa fa-home\", target: this.targetHomeUrl };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: \"fa fa-home\" };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], [\"/\"]);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from \"primeng/breadcrumb\";\n\nimport { BreadcrumbComponent } from \"./breadcrumb.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","export enum ButtonPriority {\n Default = \"default\",\n Primary = \"primary\",\n Secondary = \"secondary\",\n Link = \"link\",\n}\n","export enum ButtonSize {\n Default = \"default\",\n Small = \"small\",\n}\n","\nexport enum EnumButtonAnimation {\n rotate = 'rotate',\n}","import { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\nimport { TieredMenu } from \"primeng/tieredmenu\";\nimport { DomHandler } from \"primeng/dom\";\nimport { ButtonPriority } from \"./button-priority\";\nimport { ButtonSize } from \"./button-size\";\nimport { EnumButtonAnimation } from \"./button-animation-type\";\n@Component({\n selector: \"s-button\",\n templateUrl: \"./button.component.html\",\n styleUrls: [\"./button.component.scss\"],\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @HostBinding(\"style.min-width\")\n public minWidth = \"40px\";\n\n @Input()\n public id = `s-button-${ButtonComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public rightIconClass: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type = \"button\";\n\n @Input()\n public priority: ButtonPriority = ButtonPriority.Primary;\n\n @Input()\n public model: MenuItem[] = [];\n\n @Input()\n public size = ButtonSize.Default;\n\n @Input()\n public slide: boolean;\n\n @Input()\n public animation: EnumButtonAnimation;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n public tooltipZIndex: number;\n\n @ViewChild(TieredMenu, { static: true })\n private menu: TieredMenu;\n\n public ngOnInit() {\n this.onClick.subscribe((event: any) => {\n if (!this.model || !this.model.length) return;\n\n this.menu.model = this.model;\n this.menu.toggle(event);\n });\n }\n\n public validateSlideButton() {\n return this.slide && (this.priority == ButtonPriority.Default || this.priority == ButtonPriority.Link) && this.label.length;\n }\n\n public isOpen() {\n return this.model && this.model.length && this.menu.visible;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n const isMultiple = this.model && this.model.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = \"80px\";\n if (hasText && hasIcon && isMultiple) this.minWidth = \"100px\";\n }\n\n public updateTooltipZIndex() {\n this.tooltipZIndex = this.baseZIndex + ++DomHandler.zindex;\n }\n\n public isRotateAnimation() {\n return this.animation === EnumButtonAnimation.rotate;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { TieredMenuModule } from \"primeng/tieredmenu\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonComponent } from \"./button.component\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, TieredMenuModule, TooltipModule],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule {}\n","import { AfterViewChecked, Directive, HostListener, Input, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { Calendar } from \"primeng/calendar\";\n\n@Directive({\n selector: \"p-calendar[sCalendarMask]\",\n})\nexport class CalendarMaskDirective implements OnInit, OnDestroy, AfterViewChecked {\n\n SELECTORS = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n @Input()\n public slotChar = \"_\";\n\n @Input()\n public autoClear = false;\n\n public value: any;\n public input: HTMLInputElement;\n public filled: boolean;\n\n private _mask: string;\n private defs: any;\n private tests: any[];\n private partialPosition: any;\n private firstNonMaskPos: number;\n private lastRequiredNonMaskPos: any;\n private len: number;\n private oldVal: string;\n private buffer: any;\n private defaultBuffer: string;\n private focusText: string;\n private caretTimeoutId: any;\n private androidChrome: boolean;\n private firstTime = true;\n\n private focusListener: () => void;\n private blurListener: () => void;\n private keydownListener: () => void;\n private keypressListener: () => void;\n private inputListener: () => void;\n private pasteListener: () => void;\n\n constructor(public host: Calendar, public renderer: Renderer2) {}\n\n private setListeners() {\n this.input = this.host.inputfieldViewChild.nativeElement;\n this.value = this.input.value;\n\n this.focusListener = this.renderer.listen(this.input, \"focus\", () => {\n this.onInputFocus();\n });\n\n this.blurListener = this.renderer.listen(this.input, \"blur\", (event: any) => {\n this.onInputBlur(event);\n });\n\n this.keydownListener = this.renderer.listen(this.input, \"keydown\", (event: any) => {\n this.onKeyDown(event);\n });\n\n this.keypressListener = this.renderer.listen(this.input, \"keypress\", (event: any) => {\n this.onKeyPress(event);\n });\n\n this.inputListener = this.renderer.listen(this.input, \"input\", (event: any) => {\n this.onInputChange(event);\n });\n\n this.pasteListener = this.renderer.listen(this.input, \"paste\", (event: any) => {\n this.handleInputChange(event);\n });\n }\n\n public ngOnInit() {\n const ua = navigator.userAgent;\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n\n this.createMaskFromDateFormat();\n this.initMask();\n }\n\n get mask(): string {\n return this._mask;\n }\n\n set mask(val: string) {\n this._mask = val;\n\n this.initMask();\n this.writeValue(\"\");\n }\n\n public writeValue(value: any): void {\n this.value = value;\n\n if (this.input) {\n if (this.value == undefined) {\n this.input.value = \"\";\n } else {\n this.input.value = this.value;\n }\n\n this.checkVal();\n this.focusText = this.input.value;\n this.updateFilledState();\n }\n }\n\n public onInputBlur(e: any) {\n this.checkVal();\n this.updateFilledState();\n\n if (this.value != this.focusText) {\n if (\n !this.input.disabled &&\n (this.value === undefined || this.value === null || (this.value as string).indexOf(this.slotChar) >= 0)\n ) {\n this.value = \"\";\n e.target.value = \"\";\n this.host.updateModel(null);\n }\n\n this.updateModel(e);\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"change\", true, false);\n this.input.dispatchEvent(event);\n }\n }\n\n public onKeyDown(e: any) {\n if (this.host.readonlyInput) {\n return;\n }\n\n const k = e.which || e.keyCode;\n const iPhone = /iphone/i.test(navigator.userAgent);\n let pos;\n let begin;\n let end;\n this.oldVal = this.input.value;\n\n // Backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || (iPhone && k === 127)) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1));\n end = k === 46 ? this.seekNext(end) : end;\n }\n\n this.clearBuffer(begin, end);\n this.shiftL(begin, end - 1);\n this.updateModel(e);\n\n e.preventDefault();\n } else if (k === 13) {\n // Enter\n this.onInputBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // Escape\n this.input.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n\n public onKeyPress(e: any) {\n if (this.host.readonlyInput) return;\n\n const k = e.which || e.keyCode;\n const pos = this.caret();\n let p;\n let c;\n let next: any;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {\n // Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(navigator.userAgent)) {\n // Path for CSP Violation on FireFox OS 1.1\n const proxy = () => {\n this.caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n }\n }\n e.preventDefault();\n }\n\n this.updateModel(e);\n this.updateFilledState();\n }\n\n public checkVal(allow?: boolean) {\n // Try to place characters where they belong\n const test = this.input.value;\n let lastMatch = -1;\n let i: any;\n let c: any;\n let pos = 0;\n\n for (i = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join(\"\") === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.input.value) {\n this.input.value = \"\";\n }\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.input.value = this.input.value.substring(0, lastMatch + 1);\n }\n\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n\n public onInputFocus() {\n if (this.host.readonlyInput) return;\n\n clearTimeout(this.caretTimeoutId);\n let pos: any;\n\n this.focusText = this.input.value;\n\n pos = this.checkVal();\n\n this.caretTimeoutId = setTimeout(() => {\n if (this.input !== document.activeElement) {\n return;\n }\n this.writeBuffer();\n if (pos == this.mask.replace(\"?\", \"\").length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n }\n\n public onInputChange(event: any) {\n if (this.androidChrome) this.handleAndroidInput(event);\n else this.handleInputChange(event);\n }\n\n public handleInputChange(event: any) {\n if (this.host.readonlyInput) return;\n\n setTimeout(() => {\n const pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n }, 0);\n }\n\n public updateModel(e: any) {\n const updatedValue = e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.host.onUserInput(e);\n }\n }\n\n public updateFilledState() {\n this.filled = this.input && this.input.value != \"\";\n }\n\n public focus() {\n this.input.focus();\n }\n\n private initMask() {\n this.tests = [];\n this.partialPosition = this.mask.length;\n this.len = this.mask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n \"9\": \"[0-9]\",\n };\n\n const maskTokens = this.mask.split(\"\");\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c == \"?\") {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n\n this.buffer = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c != \"?\") {\n if (this.defs[c]) {\n this.buffer.push(this.getPlaceholder(i));\n } else {\n this.buffer.push(c);\n }\n }\n }\n\n this.defaultBuffer = this.buffer.join(\"\");\n }\n\n private caret(first?: number, last?: number) {\n let range, begin, end;\n\n if (!this.input.offsetParent || this.input !== document.activeElement) {\n return;\n }\n\n if (typeof first == \"number\") {\n begin = first;\n end = typeof last === \"number\" ? last : begin;\n\n if (this.input.setSelectionRange) {\n this.input.setSelectionRange(begin, end);\n } else if (this.input[\"createTextRange\"]) {\n range = this.input[\"createTextRange\"]();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n } else {\n if (this.input.setSelectionRange) {\n begin = this.input.selectionStart;\n end = this.input.selectionEnd;\n } else if (document[\"selection\"] && document[\"selection\"].createRange) {\n range = document[\"selection\"].createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -100000);\n end = begin + range.text.length;\n }\n\n return { begin: begin, end: end };\n }\n }\n\n private getPlaceholder(i: number) {\n if (i < this.slotChar.length) return this.slotChar.charAt(i);\n return this.slotChar.charAt(0);\n }\n\n private seekNext(pos: any) {\n while (++pos < this.len) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private seekPrev(pos: any) {\n while (--pos >= 0 && !this.tests[pos]) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private shiftL(begin: number, end: number) {\n let i: any;\n let j: any;\n\n if (begin < 0) {\n return;\n }\n\n j = this.seekNext(end);\n\n for (i = begin; i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else break;\n\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n\n private shiftR(pos: any) {\n let i: any;\n let c = this.getPlaceholder(pos);\n let j: any;\n let t: any;\n\n for (i = pos; i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else break;\n }\n }\n }\n\n private handleAndroidInput(e: any) {\n const curVal = this.input.value;\n const pos = this.caret();\n\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // A deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) {\n pos.begin--;\n }\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n } else {\n this.checkVal(true);\n\n while (pos.begin < this.len && !this.tests[pos.begin]) {\n pos.begin++;\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n }\n }\n\n private updateCalendarValue(sentVal: string) {\n // TODO verificar\n const dateVal = <Date>this.host.parseValueFromString(sentVal);\n if (this.host.isSelectable(dateVal.getDate(), dateVal.getMonth(), dateVal.getFullYear(), false)) {\n this.host.updateModel(sentVal);\n this.host.updateUI();\n }\n }\n\n private clearBuffer(start: any, end: any) {\n let i;\n\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n\n private writeBuffer() {\n this.input.value = this.buffer.join(\"\");\n }\n\n private createMaskFromDateFormat() {\n const calendar = this.host;\n let mask = this.autoClear ? \"?\" : \"\";\n\n if (!calendar.timeOnly) {\n let dateFormat = calendar.dateFormat;\n dateFormat = dateFormat.replace(/y/g, \"yy\");\n mask += dateFormat.replace(/[^/*,.\\-+\\[\\]\\\\]/g, \"9\");\n if (calendar.showTime) {\n mask += \" \";\n }\n }\n\n if (calendar.showTime || calendar.timeOnly) {\n mask += \"99:99\";\n if (calendar.showSeconds) {\n mask += \":99\";\n }\n }\n\n this._mask = mask;\n\n this.initMask();\n }\n\n isCompleted(): boolean {\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n ngAfterViewChecked(): void {\n if (this.host.inputfieldViewChild && this.firstTime) {\n this.firstTime = false;\n this.setListeners();\n this.input.type = \"tel\";\n }\n }\n\n ngOnDestroy(): void {\n if (this.focusListener) this.focusListener();\n if (this.blurListener) this.blurListener();\n if (this.keydownListener) this.keydownListener();\n if (this.keypressListener) this.keypressListener();\n if (this.inputListener) this.inputListener();\n if (this.pasteListener) this.pasteListener();\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeydownEventTest(e: KeyboardEvent) {\n const { key } = e;\n if (key == \"Tab\") {\n // Este código foi implementado para corrigir um problema no componente na v9\n // Deve ser removido assim que atualizarmos o PrimeNG para a v10\n const allFocusableElements = document.querySelectorAll(this.SELECTORS);\n let nextIsFocusable = false;\n let previousFocusable: string;\n let forceCloseModal = true;\n allFocusableElements.forEach(element => {\n if (!e.shiftKey) {\n if (nextIsFocusable && element.id) {\n this.focusableElement(element.id, forceCloseModal);\n nextIsFocusable = false;\n e.preventDefault();\n return;\n }\n }\n\n let activeTagName = window.document.activeElement.tagName;\n if (e.shiftKey && element.id && element.tagName === \"INPUT\" && activeTagName == \"BUTTON\") {\n previousFocusable = element.id;\n forceCloseModal = false;\n }\n \n if (element.id === this.host.inputId) {\n if (previousFocusable) {\n this.focusableElement(previousFocusable, forceCloseModal);\n e.preventDefault();\n forceCloseModal = true;\n return;\n }\n nextIsFocusable = true;\n } else if (e.shiftKey && element.id) {\n previousFocusable = element.id;\n }\n });\n }\n }\n\n public focusableElement(id: string, hide: boolean) {\n const htmlElement = window.document.getElementById(id);\n htmlElement.focus();\n if(hide)\n this.host.hideOverlay();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CalendarMaskDirective } from \"./calendar-mask.directive\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [CalendarMaskDirective],\n imports: [CommonModule],\n exports: [CalendarMaskDirective],\n})\nexport class CalendarMaskModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-link\",\n templateUrl: \"./collapse-link.component.html\",\n styleUrls: [\"./collapse-link.component.scss\"],\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"void\",\n style({\n height: 0,\n opacity: 0,\n })\n ),\n state(\n \"*\",\n style({\n height: \"*\",\n opacity: 1,\n })\n ),\n transition(\"void <=> *\", animate(\"400ms cubic-bezier(0.86, 0, 0.07, 1)\")),\n ]),\n ],\n})\nexport class CollapseLinkComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public buttonId = `s-collapse-button-${CollapseLinkComponent.nextId++}`;\n @Input()\n public expandedLabel = \"Mostrar menos\";\n @Input()\n public collapsedLabel = \"Mostrar mais\";\n @Input()\n public disabled = false;\n @Input()\n public collapse = true;\n\n public collapsed = true;\n public animating: boolean;\n\n constructor() {}\n\n public ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.collapse) {\n this.onCollapse(changes.collapse.currentValue);\n }\n }\n\n public toggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n public onCollapse(collapse: boolean) {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = collapse;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { CollapseLinkComponent } from \"./collapse-link.component\";\n\n@NgModule({\n declarations: [CollapseLinkComponent],\n exports: [CollapseLinkComponent],\n imports: [CommonModule],\n})\nexport class CollapseLinkModule {}\n","import { AbstractControl } from \"@angular/forms\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-control-errors\",\n templateUrl: \"./control-errors.component.html\",\n styleUrls: [\"./control-errors.component.scss\"],\n})\nexport class ControlErrorsComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-control-errors-${ControlErrorsComponent.nextId++}`;\n @Input()\n control: AbstractControl;\n @Input()\n errorMessages: any = {};\n @Input()\n form: any;\n\n getErrorMessagesList() {\n if (!this.control || !this.control.dirty) {\n return [];\n }\n return Object.keys(this.control.errors || {}).map(error => this.errorMessages?.[error]);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ControlErrorsComponent } from \"./control-errors.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n declarations: [ControlErrorsComponent],\n exports: [ControlErrorsComponent],\n})\nexport class ControlErrorsModule {}\n","import { CountryPhoneData } from \"../models/country-phone-data\";\n\nexport const countries: CountryPhoneData[] = [\n { id: \"br\", ddi: \"+55\", mask: [\"(00) 0000-00009\", \"(00) 00000-0000\"] },\n { id: \"us\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"co\", ddi: \"+57\", mask: \"000 0000000\" },\n { id: \"ar\", ddi: \"+54\", mask: \"000 00-0000-0000\" },\n { id: \"cl\", ddi: \"+56\", mask: \"(0) 0000-0000\" },\n { id: \"py\", ddi: \"+595\", mask: \"0000 000000\" },\n { id: \"uy\", ddi: \"+598\", mask: \"000 000 000\" },\n { id: \"cn\", ddi: \"+86\", mask: \"000 0000 0000\" },\n { id: \"ca\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"as\", ddi: \"+1684\", mask: \"000-0000\" },\n { id: \"ai\", ddi: \"+1264\", mask: \"000-0000\" },\n { id: \"ag\", ddi: \"+1268\", mask: \"000-0000\" },\n { id: \"bs\", ddi: \"+1242\", mask: \"000-0000\" },\n { id: \"bb\", ddi: \"+1246\", mask: \"000-0000\" },\n { id: \"bm\", ddi: \"+1441\", mask: \"000-0000\" },\n { id: \"vg\", ddi: \"+1284\", mask: \"000-0000\" },\n { id: \"ky\", ddi: \"+1345\", mask: \"000-0000\" },\n { id: \"dm\", ddi: \"+1767\", mask: \"000-0000\" },\n { id: \"do\", ddi: \"+1809\", mask: \"000-0000\" },\n { id: \"gd\", ddi: \"+1473\", mask: \"000-0000\" },\n { id: \"gu\", ddi: \"+1671\", mask: \"000-0000\" },\n { id: \"jm\", ddi: \"+1876\", mask: \"000-0000\" },\n { id: \"ms\", ddi: \"+1664\", mask: \"000-0000\" },\n { id: \"mp\", ddi: \"+1670\", mask: \"000-0000\" },\n { id: \"pr\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"kn\", ddi: \"+1869\", mask: \"000-0000\" },\n { id: \"lc\", ddi: \"+1758\", mask: \"000-0000\" },\n { id: \"vc\", ddi: \"+1784\", mask: \"000-0000\" },\n { id: \"tt\", ddi: \"+1868\", mask: \"000-0000\" },\n { id: \"tc\", ddi: \"+1649\", mask: \"000-0000\" },\n { id: \"fi\", ddi: \"+358\", mask: \"000 0000000\" },\n { id: \"rs\", ddi: \"+381\", mask: \"000 0000000\" },\n { id: \"zm\", ddi: \"+260\", mask: \"000 0000000\" },\n { id: \"af\", ddi: \"+93\", mask: \"000 000 0000\" },\n { id: \"al\", ddi: \"+355\", mask: \"000 000 0000\" },\n { id: \"hr\", ddi: \"+385\", mask: \"000 000 0000\" },\n { id: \"ec\", ddi: \"+593\", mask: \"000 000 0000\" },\n { id: \"et\", ddi: \"+251\", mask: \"000 000 0000\" },\n { id: \"gh\", ddi: \"+233\", mask: \"000 000 0000\" },\n { id: \"gr\", ddi: \"+30\", mask: \"000 000 0000\" },\n { id: \"ie\", ddi: \"+353\", mask: \"000 000 0000\" },\n { id: \"it\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"lr\", ddi: \"+231\", mask: \"000 000 0000\" },\n { id: \"na\", ddi: \"+264\", mask: \"000 000 0000\" },\n { id: \"nz\", ddi: \"+64\", mask: \"000 000 0000\" },\n { id: \"sa\", ddi: \"+966\", mask: \"000 000 0000\" },\n { id: \"za\", ddi: \"+27\", mask: \"000 000 0000\" },\n { id: \"lk\", ddi: \"+94\", mask: \"000 000 0000\" },\n { id: \"sd\", ddi: \"+249\", mask: \"000 000 0000\" },\n { id: \"th\", ddi: \"+66\", mask: \"000 000 0000\" },\n { id: \"ua\", ddi: \"+380\", mask: \"000 000 0000\" },\n { id: \"ae\", ddi: \"+971\", mask: \"000 000 0000\" },\n { id: \"va\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"zw\", ddi: \"+263\", mask: \"000 000 0000\" },\n { id: \"dz\", ddi: \"+213\", mask: \"0000 00 00 00\" },\n { id: \"be\", ddi: \"+32\", mask: \"0000 00 00 00\" },\n { id: \"yt\", ddi: \"+262\", mask: \"0000 00 00 00\" },\n { id: \"bl\", ddi: \"+590\", mask: \"0000 00 00 00\" },\n { id: \"mf\", ddi: \"+1599\", mask: \"0000 00 00 00\" },\n { id: \"ad\", ddi: \"+376\", mask: \"000-000\" },\n { id: \"ao\", ddi: \"+244\", mask: \"000 000 000\" },\n { id: \"ba\", ddi: \"+387\", mask: \"000 000 000\" },\n { id: \"bg\", ddi: \"+359\", mask: \"000 000 000\" },\n { id: \"kh\", ddi: \"+855\", mask: \"000 000 000\" },\n { id: \"cz\", ddi: \"+420\", mask: \"000 000 000\" },\n { id: \"gq\", ddi: \"+240\", mask: \"000 000 000\" },\n { id: \"gw\", ddi: \"+245\", mask: \"000 000 000\" },\n { id: \"li\", ddi: \"+423\", mask: \"000 000 000\" },\n { id: \"lu\", ddi: \"+352\", mask: \"000 000 000\" },\n { id: \"mk\", ddi: \"+389\", mask: \"000 000 000\" },\n { id: \"me\", ddi: \"+382\", mask: \"000 000 000\" },\n { id: \"pe\", ddi: \"+51\", mask: \"000 000 000\" },\n { id: \"pl\", ddi: \"+48\", mask: \"000 000 000\" },\n { id: \"pt\", ddi: \"+351\", mask: \"000 000 000\" },\n { id: \"si\", ddi: \"+386\", mask: \"000 000 000\" },\n { id: \"am\", ddi: \"+374\", mask: \"000 000000\" },\n { id: \"aw\", ddi: \"+297\", mask: \"000 0000\" },\n { id: \"bn\", ddi: \"+673\", mask: \"000 0000\" },\n { id: \"fj\", ddi: \"+679\", mask: \"000 0000\" },\n { id: \"gm\", ddi: \"+220\", mask: \"000 0000\" },\n { id: \"gy\", ddi: \"+592\", mask: \"000 0000\" },\n { id: \"is\", ddi: \"+354\", mask: \"000 0000\" },\n { id: \"fm\", ddi: \"+691\", mask: \"000 0000\" },\n { id: \"nr\", ddi: \"+674\", mask: \"000 0000\" },\n { id: \"nu\", ddi: \"+683\", mask: \"000 0000\" },\n { id: \"pw\", ddi: \"+680\", mask: \"000 0000\" },\n { id: \"st\", ddi: \"+239\", mask: \"000 0000\" },\n { id: \"to\", ddi: \"+676\", mask: \"000 0000\" },\n { id: \"vu\", ddi: \"+678\", mask: \"000 0000\" },\n { id: \"fk\", ddi: \"+500\", mask: \"00000\" },\n { id: \"fo\", ddi: \"+298\", mask: \"00000\" },\n { id: \"sh\", ddi: \"+290\", mask: \"00000\" },\n { id: \"au\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cx\", ddi: \"+61\", mask: \"0000 000 000\" }, \n { id: \"cc\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cd\", ddi: \"+243\", mask: \"0000 000 000\" },\n { id: \"kg\", ddi: \"+996\", mask: \"0000 000 000\" },\n { id: \"ro\", ddi: \"+40\", mask: \"0000 000 000\" },\n { id: \"rw\", ddi: \"+250\", mask: \"0000 000 000\" },\n { id: \"sk\", ddi: \"+421\", mask: \"0000 000 000\" },\n { id: \"sy\", ddi: \"+963\", mask: \"0000 000 000\" },\n { id: \"tw\", ddi: \"+886\", mask: \"0000 000 000\" },\n { id: \"tz\", ddi: \"+255\", mask: \"0000 000 000\" },\n { id: \"ye\", ddi: \"+967\", mask: \"0000 000 000\" },\n { id: \"at\", ddi: \"+43\", mask: \"0000 000000\" },\n { id: \"ke\", ddi: \"+254\", mask: \"0000 000000\" },\n { id: \"ug\", ddi: \"+256\", mask: \"0000 000000\" },\n { id: \"az\", ddi: \"+994\", mask: \"000 000 00 00\" },\n { id: \"ch\", ddi: \"+41\", mask: \"000 000 00 00\" },\n { id: \"vn\", ddi: \"+84\", mask: \"000 000 00 00\" },\n { id: \"bh\", ddi: \"+973\", mask: \"0000 0000\" },\n { id: \"cr\", ddi: \"+506\", mask: \"0000 0000\" },\n { id: \"sv\", ddi: \"+503\", mask: \"0000 0000\" },\n { id: \"ee\", ddi: \"+372\", mask: \"0000 0000\" },\n { id: \"sz\", ddi: \"+268\", mask: \"0000 0000\" },\n { id: \"gt\", ddi: \"+502\", mask: \"0000 0000\" },\n { id: \"hk\", ddi: \"+852\", mask: \"0000 0000\" },\n { id: \"ls\", ddi: \"+266\", mask: \"0000 0000\" },\n { id: \"mo\", ddi: \"+853\", mask: \"0000 0000\" },\n { id: \"mt\", ddi: \"+356\", mask: \"0000 0000\" },\n { id: \"mu\", ddi: \"+230\", mask: \"0000 0000\" },\n { id: \"mn\", ddi: \"+976\", mask: \"0000 0000\" },\n { id: \"ni\", ddi: \"+505\", mask: \"0000 0000\" },\n { id: \"om\", ddi: \"+968\", mask: \"0000 0000\" },\n { id: \"pg\", ddi: \"+675\", mask: \"0000 0000\" },\n { id: \"qa\", ddi: \"+974\", mask: \"0000 0000\" },\n { id: \"sg\", ddi: \"+65\", mask: \"0000 0000\" },\n { id: \"tl\", ddi: \"+670\", mask: \"0000 0000\" }, \n { id: \"bd\", ddi: \"+880\", mask: \"00000 000000\" },\n { id: \"im\", ddi: \"+44\", mask: \"00000 000000\" },\n { id: \"by\", ddi: \"+375\", mask: \"0 000 000-00-00\" },\n { id: \"bz\", ddi: \"+501\", mask: \"000-0000\" },\n { id: \"mv\", ddi: \"+960\", mask: \"000-0000\" },\n { id: \"mh\", ddi: \"+692\", mask: \"000-0000\" },\n { id: \"sr\", ddi: \"+597\", mask: \"000-0000\" },\n { id: \"bj\", ddi: \"+229\", mask: \"00 00 00 00\" },\n { id: \"bt\", ddi: \"+975\", mask: \"00 00 00 00\" },\n { id: \"bf\", ddi: \"+226\", mask: \"00 00 00 00\" },\n { id: \"bi\", ddi: \"+257\", mask: \"00 00 00 00\" },\n { id: \"cf\", ddi: \"+236\", mask: \"00 00 00 00\" },\n { id: \"td\", ddi: \"+235\", mask: \"00 00 00 00\" },\n { id: \"ci\", ddi: \"+225\", mask: \"00 00 00 00\" },\n { id: \"dk\", ddi: \"+45\", mask: \"00 00 00 00\" },\n { id: \"dj\", ddi: \"+253\", mask: \"00 00 00 00\" },\n { id: \"fr\", ddi: \"+33\", mask: \"00 00 00 00\" },\n { id: \"pf\", ddi: \"+689\", mask: \"00 00 00 00\" },\n { id: \"ga\", ddi: \"+241\", mask: \"00 00 00 00\" },\n { id: \"ml\", ddi: \"+223\", mask: \"00 00 00 00\" },\n { id: \"mr\", ddi: \"+222\", mask: \"00 00 00 00\" },\n { id: \"ne\", ddi: \"+227\", mask: \"00 00 00 00\" },\n { id: \"sm\", ddi: \"+378\", mask: \"00 00 00 00\" },\n { id: \"tg\", ddi: \"+228\", mask: \"00 00 00 00\" },\n { id: \"bo\", ddi: \"+591\", mask: \"00000000\" },\n { id: \"gi\", ddi: \"+350\", mask: \"00000000\" },\n { id: \"ki\", ddi: \"+686\", mask: \"00000000\" },\n { id: \"tv\", ddi: \"+688\", mask: \"00000000\" },\n { id: \"bw\", ddi: \"+267\", mask: \"00 000 000\" },\n { id: \"er\", ddi: \"+291\", mask: \"00 000 000\" },\n { id: \"lv\", ddi: \"+371\", mask: \"00 000 000\" },\n { id: \"lb\", ddi: \"+961\", mask: \"00 000 000\" },\n { id: \"tn\", ddi: \"+216\", mask: \"00 000 000\" },\n { id: \"cm\", ddi: \"+237\", mask: \"0 00 00 00 00\" },\n { id: \"cv\", ddi: \"+238\", mask: \"000 00 00\" },\n { id: \"km\", ddi: \"+269\", mask: \"000 00 00\" },\n { id: \"pm\", ddi: \"+508\", mask: \"000 00 00\" },\n { id: \"cg\", ddi: \"+242\", mask: \"00 000 0000\" },\n { id: \"mz\", ddi: \"+258\", mask: \"00 000 0000\" },\n { id: \"mm\", ddi: \"+95\", mask: \"00 000 0000\" },\n { id: \"ck\", ddi: \"+682\", mask: \"00 000\" },\n { id: \"cu\", ddi: \"+53\", mask: \"00 000000\" },\n { id: \"cy\", ddi: \"+357\", mask: \"00 000000\" },\n { id: \"eg\", ddi: \"+20\", mask: \"0000 000 0000\" },\n { id: \"ir\", ddi: \"+98\", mask: \"0000 000 0000\" },\n { id: \"iq\", ddi: \"+964\", mask: \"0000 000 0000\" },\n { id: \"ng\", ddi: \"+234\", mask: \"0000 000 0000\" },\n { id: \"kp\", ddi: \"+850\", mask: \"0000 000 0000\" },\n { id: \"ph\", ddi: \"+63\", mask: \"0000 000 0000\" },\n { id: \"ge\", ddi: \"+995\", mask: \"000 00 00 00\" },\n { id: \"gn\", ddi: \"+224\", mask: \"000 00 00 00\" },\n { id: \"es\", ddi: \"+34\", mask: \"000 00 00 00\" },\n { id: \"de\", ddi: \"+49\", mask: \"00000 0000000\" },\n { id: \"gl\", ddi: \"+299\", mask: \"00 00 00\" },\n { id: \"wf\", ddi: \"+681\", mask: \"00 00 00\" },\n { id: \"ht\", ddi: \"+509\", mask: \"00 00 0000\" },\n { id: \"hn\", ddi: \"+504\", mask: \"0000-0000\" },\n { id: \"pa\", ddi: \"+507\", mask: \"0000-0000\" },\n { id: \"hu\", ddi: \"+36\", mask: \"(00) 000 0000\" },\n { id: \"in\", ddi: \"+91\", mask: \"000000 00000\" },\n { id: \"id\", ddi: \"+62\", mask: \"0000-000-000\" },\n { id: \"il\", ddi: \"+972\", mask: \"000-000-0000\" },\n { id: \"jp\", ddi: \"+81\", mask: \"000-000-0000\" },\n { id: \"jo\", ddi: \"+962\", mask: \"00 0000 0000\" },\n { id: \"kz\", ddi: \"+7\", mask: \"0 (000) 000-0000\" },\n { id: \"kw\", ddi: \"+965\", mask: \"000 00000\" },\n { id: \"la\", ddi: \"+856\", mask: \"000 00 000 000\" },\n { id: \"ly\", ddi: \"+218\", mask: \"000-0000000\" },\n { id: \"lt\", ddi: \"+370\", mask: \"(0-000) 00000\" },\n { id: \"np\", ddi: \"+977\", mask: \"(0-000) 00000\" },\n { id: \"mg\", ddi: \"+261\", mask: \"000 00 000 00\" },\n { id: \"mw\", ddi: \"+265\", mask: \"000 00 000 00\" },\n { id: \"my\", ddi: \"+60\", mask: \"000-000 0000\" },\n { id: \"mx\", ddi: \"+52\", mask: \"000 000 000 0000\" },\n { id: \"md\", ddi: \"+373\", mask: \"0000 00 000\" },\n { id: \"mc\", ddi: \"+377\", mask: \"00 00 00 00 00\" },\n { id: \"ma\", ddi: \"+212\", mask: \"0000-000000\" },\n { id: \"nl\", ddi: \"+31\", mask: \"00 00000000\" },\n { id: \"nc\", ddi: \"+687\", mask: \"00.00.00\" },\n { id: \"no\", ddi: \"+47\", mask: \"000 00 000\" },\n { id: \"pk\", ddi: \"+92\", mask: \"0000 0000000\" },\n { id: \"ru\", ddi: \"+7\", mask: \"0 (000) 000-00-00\" },\n { id: \"ws\", ddi: \"+685\", mask: \"00 00000\" },\n { id: \"sb\", ddi: \"+677\", mask: \"00 00000\" },\n { id: \"sn\", ddi: \"+221\", mask: \"00 000 00 00\" },\n { id: \"sc\", ddi: \"+248\", mask: \"0 000 000\" },\n { id: \"sl\", ddi: \"+232\", mask: \"(000) 000000\" },\n { id: \"so\", ddi: \"+252\", mask: \"0 0000000\" },\n { id: \"kr\", ddi: \"+82\", mask: \"000-0000-0000\" },\n { id: \"se\", ddi: \"+46\", mask: \"000-000 00 00\" },\n { id: \"tj\", ddi: \"+992\", mask: \"000 00 0000\" },\n { id: \"tk\", ddi: \"+690\", mask: \"0000\" },\n { id: \"tr\", ddi: \"+90\", mask: \"0000 000 00 00\" },\n { id: \"tm\", ddi: \"+993\", mask: \"0 00 000000\" }, \n { id: \"uz\", ddi: \"+998\", mask: \"0 00 000 00 00\" },\n { id: \"ve\", ddi: \"+58\", mask: \"0000-0000000\" },\n];","export enum Ordination {\n NO = \"no\",\n AZ = \"az\",\n ZA = \"za\",\n}","import { Injectable } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CountryPhoneData } from \"./models/country-phone-data\";\nimport { countries } from \"./resources/countries\";\nimport { Ordination } from \"./models/ordination\";\n\n@Injectable()\nexport class CountryPhonePickerService {\n constructor(private readonly translate: TranslateService) { }\n\n public getCountries(ordination: Ordination) {\n switch (ordination) {\n case Ordination.AZ:\n return this.sortAlphabetically();\n case Ordination.ZA:\n return this.sortAlphabeticallyDescending();\n case Ordination.NO:\n default:\n return countries;\n }\n }\n\n private sortAlphabetically(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return aName.localeCompare(bName);\n });\n }\n\n private sortAlphabeticallyDescending(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return bName.localeCompare(aName);\n });\n }\n}","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, OnInit, ViewChild, forwardRef } from \"@angular/core\";\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { PhoneSelectionData } from \"./models/phone-selection-data\";\nimport { CountryPhoneData, Ordination } from \"./models\";\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\n\n@Component({\n selector: \"s-country-phone-picker\",\n templateUrl: \"./country-phone-picker.component.html\",\n styleUrls: [\"./country-phone-picker.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CountryPhonePickerComponent),\n multi: true,\n }],\n})\nexport class CountryPhonePickerComponent implements OnInit, ControlValueAccessor {\n public mask: string;\n public selectedItem: CountryPhoneData;\n public currentItemIndex = 0;\n public filteredCountriesList: CountryPhoneData[];\n public phone = new FormControl(\"\");\n public filter = new FormControl(\"\");\n\n private _value: PhoneSelectionData; \n private _onChange: (value: PhoneSelectionData) => void;\n private _onTouched: (value: PhoneSelectionData) => void;\n private _countriesList: CountryPhoneData[];\n private _open = false;\n private offsetTop = 0;\n\n constructor(\n private readonly countryPhonePickerService: CountryPhonePickerService,\n private readonly translate: TranslateService,\n private readonly eRef: ElementRef,\n ) { }\n\n public get value() {\n return this._value;\n }\n\n public set value(value: PhoneSelectionData) {\n this._value = value;\n this.mask = this.getMask();\n }\n\n public writeValue(value: PhoneSelectionData): void {\n this.value = value;\n\n if (value?.id) {\n const country = this._countriesList.filter(({ id }) => id == value.id);\n if (country.length) {\n this.onSelectItem(country[0]);\n }\n }\n\n if (value?.rawValue) {\n this.phone.setValue(value.rawValue);\n }\n }\n\n public registerOnChange(onChange: (value: PhoneSelectionData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: PhoneSelectionData) => void): void {\n this._onTouched = onTouched;\n }\n\n @Input()\n public countries: string[];\n\n @Input()\n public ordination: Ordination = Ordination.NO;\n\n @Output()\n public selected: EventEmitter<CountryPhoneData> = new EventEmitter();\n\n @Output()\n public blur: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @ViewChild(\"phoneInput\", { static: true })\n public phoneInput: ElementRef;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n if (this.open) {\n this.open = false;\n }\n }\n }\n\n public ngOnInit(): void { \n const countries = this.countryPhonePickerService.getCountries(this.ordination);\n this.filter.valueChanges.subscribe(this._filterCountries);\n \n if (this.countries?.length) {\n this._countriesList = countries.filter((country) => this.countries.includes(country.id));\n } else {\n this._countriesList = countries;\n }\n this.filteredCountriesList = this._countriesList;\n this.selectedItem = this._getSelectedCountryDefault();\n this.mask = this.getMask();\n\n this.phone.valueChanges.subscribe((value) => {\n this.value = {\n id: this.selectedItem.id,\n ddi: this.selectedItem.ddi,\n rawValue: value ?? \"\",\n value: value ? `${this._applyMask(value)}` : \"\",\n };\n if (this._onChange) {\n this._onChange(this.value);\n }\n });\n }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n this.selectedItem = this._countriesList[this.currentItemIndex];\n this.selected.emit(this.selectedItem);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n this._moveToDown();\n } else if (event.key === \"ArrowUp\") {\n this._moveToUp();\n }\n }\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n\n if (!open) {\n this.phoneInput.nativeElement.focus();\n }\n }\n\n public onSelectItem(country: CountryPhoneData) {\n this.open = false;\n this.selectedItem = country;\n this.phone.setValue(\"\");\n this.currentItemIndex = this._countriesList.indexOf(this.selectedItem);\n this.selected.emit(this.selectedItem);\n }\n\n public onCleanFilter() {\n this.filter.setValue(\"\");\n }\n\n public onPhoneInputFocus() {\n this.open = false;\n }\n\n public getMask() {\n const mask = this.selectedItem.mask;\n\n if (Array.isArray(mask)) {\n return !this.value?.rawValue || this.value.rawValue.length <= mask[0].replace(/[^0]/g, \"\").length\n ? mask[0] // fixo\n : mask[1]; // celular\n } else {\n return mask;\n }\n }\n\n public getPlaceholder() {\n return this.mask.replace(/9/g, \"\");\n }\n\n private _getSelectedCountryDefault() {\n if (!this._countriesList.length) {\n throw new Error(\"No country loaded\");\n }\n\n const filteredByBr = this._countriesList.filter((country: CountryPhoneData) => country.id === \"br\");\n\n return filteredByBr.length ? filteredByBr[0] : this._countriesList[0]\n }\n\n private _filterCountries = (value: string) => {\n if (!value) {\n this.filteredCountriesList = this._countriesList;\n } else {\n this.filteredCountriesList = this._countriesList.filter((country) => {\n const countryName = this.translate.instant(`platform.angular_components.country_name_${country.id}`) as string;\n return countryName.toLowerCase().includes(value.toLowerCase());\n });\n }\n }\n\n private _moveToUp() {\n if (this.currentItemIndex == 0) {\n return;\n }\n\n this.currentItemIndex--;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop <= this.offsetTop) {\n this.offsetTop -= 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _moveToDown() {\n if (this.currentItemIndex >= this._countriesList.length - 1) {\n return;\n }\n\n this.currentItemIndex++;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop > this.offsetTop + 180) {\n this.offsetTop += 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _applyMask(value: string) {\n let mask;\n\n if (Array.isArray(this.selectedItem.mask)) {\n const rawMask = this.selectedItem.mask[0].replace(/[^0]/g, \"\");\n mask = value.length <= rawMask.length\n ? this.selectedItem.mask[0] + \"\\0\"\n : this.selectedItem.mask[1] + \"\\0\";\n } else {\n mask = this.selectedItem.mask + \"\\0\";\n }\n\n let tokens = \"\";\n let replace = \"\";\n let acumulador = 0;\n let contador = 0;\n\n for (const token of mask) {\n if (isNaN(parseInt(token))) {\n if (acumulador) {\n tokens += `(\\\\d{${acumulador}})`;\n replace += `$${++contador}`;\n acumulador = 0;\n }\n\n if (token !== \"\\0\") {\n replace += token;\n }\n } else {\n acumulador++;\n }\n }\n\n tokens = `^${tokens}*`;\n return this.phone.value.replace(new RegExp(tokens), replace);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NgxMaskModule } from \"ngx-mask\";\n\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhonePickerComponent } from \"./country-phone-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgxMaskModule.forRoot(),\n ],\n declarations: [CountryPhonePickerComponent],\n exports: [CountryPhonePickerComponent],\n providers: [CountryPhonePickerService],\n})\nexport class CountryPhonePickerModule { }","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n\n Double = \"Double\",\n Enum = \"Enum\",\n Blob = \"Blob\",\n\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n\n Money = \"Money\",\n Radio = \"Radio\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Custom = \"Custom\",\n Password = \"Password\",\n\n Slider = \"Slider\",\n}\n","export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import { TemplateRef } from \"@angular/core\";\nimport { FieldSize } from \"../field-size\";\nimport { FieldType } from \"../field-type\";\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type: FieldType;\n public size: FieldSize;\n public gridClass: string[];\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n\n constructor(config: FieldConfig) {\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.gridClass = Object.keys(this.size).map(key => `ui-${key}-${this.size[key]}`);\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field {\n public dataKey: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n}\n","export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat = \"24\";\n public dateFormat = \"dd/mm/yy\";\n public firstDayOfWeek = 0;\n public today = \"Hoje\";\n public clear = \"Limpar\";\n public dayNames: string[] = [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"];\n public dayNamesShort: string[] = [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"];\n public dayNamesMin: string[] = [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"];\n public monthNamesShort: string[] = [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"];\n public monthNames: string[] = [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator = \".\";\n public decimalSeparator = \",\";\n public currencySymbol = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from \"./calendar\";\nimport { NumberLocaleOptions } from \"./number\";\n\nexport interface ILocaleOptions {\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n calendar = new CalendarLocaleOptions();\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from \"./calendar\";\nexport * from \"./number\";\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { user } from \"@seniorsistemas/senior-platform-data\";\nimport * as moment_ from \"moment\";\nimport { from, Observable, of } from \"rxjs\";\nimport { catchError, map, switchMap, tap } from \"rxjs/operators\";\nimport { ILocaleOptions, LocaleOptions } from \"./options/index\";\nimport { CookieService } from 'ngx-cookie-service';\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Injectable()\nexport class LocaleService {\n private locale: string;\n private localeOptions: LocaleOptions;\n private localeOptionsAddress = \"https://cdn.senior.com.br/primeng/locales\";\n private localeOptionsVersion = \"3.0.0\";\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService\n ) { }\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(tap((localeOptions: LocaleOptions) => (this.localeOptions = localeOptions)));\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n this.locale = <string>userData.locale || <string>userData.tenantLocale || \"pt-BR\";\n return this.locale;\n })\n );\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get('com.senior.token')));\n } catch (ex) {\n console.warn('Unable to obtain user locale from cookie, calling getUser');\n return user.getUserData();\n }\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(locale);\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map(response => new LocaleOptions(response)));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return of(new LocaleOptions());\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n constructor(\n private localeService: LocaleService\n ) {}\n\n public transform(value?: any, options?: MaskConfig): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: MaskConfig) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: MaskConfig = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n allowNegative: options?.allowNegative ?? true\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public transform(value?: any, options?: MaskConfig): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import * as moment_ from \"moment\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedDate\",\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"L LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport * as moment_ from \"moment\";\nimport { map } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../locale.service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedTime\",\n})\nexport class LocalizedTimePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, \"HH:mm:ss\").format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders } from \"@angular/compiler/src/core\";\nimport { NgModule } from \"@angular/core\";\nimport { LocaleService } from \"./locale.service\";\nimport { LocalizedBignumberImpurePipe } from \"./pipes/localized-bignumber-impure.pipe\";\nimport { LocalizedBignumberPipe } from \"./pipes/localized-bignumber.pipe\";\nimport { LocalizedCurrencyImpurePipe } from \"./pipes/localized-currency-impure.pipe\";\nimport { LocalizedCurrencyPipe } from \"./pipes/localized-currency.pipe\";\nimport { LocalizedDateImpurePipe } from \"./pipes/localized-date-impure.pipe\";\nimport { LocalizedDatePipe } from \"./pipes/localized-date.pipe\";\nimport { LocalizedNumberPipe } from \"./pipes/localized-number.pipe\";\nimport { LocalizedTimeImpurePipe } from \"./pipes/localized-time-impure.pipe\";\nimport { LocalizedTimePipe } from \"./pipes/localized-time.pipe\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { NumberLocaleOptions } from \"../../../locale/index\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { ElementRef } from \"@angular/core\";\nimport { FileDto } from \"../../../file-upload/index\";\nimport { FormField } from \"./../../configurations/form-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = \"radio\";\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from \"./boolean-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = \"switch\";\n }\n}\n","import { CalendarLocaleOptions } from \"../../../locale/index\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || \"date\";\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === \"boolean\" ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions || new CalendarLocaleOptions();\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || \"single\";\n this.rangeSeparator = config.rangeSeparator || \"-\";\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n onAdd: (event: any) => void;\n onRemove: (event: any) => void;\n onChipClick: (event: any) => void;\n onFocus: (event: any) => void;\n onBlur: (event: any) => void;\n}\n\nexport class ChipsField extends Field {\n public keyFilter?: RegExp;\n public onAdd: (event: any) => void;\n public onRemove: (event: any) => void;\n public onChipClick: (event: any) => void;\n public onFocus: (event: any) => void;\n public onBlur: (event: any) => void;\n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n }\n}\n","import { Directive, forwardRef, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { CurrencyMaskDirective } from \"ng2-currency-mask\";\n\n/**\n * @deprecated Should use 'AlignmentOptions' from @seniorsistemas/ng2-currency-mask instead\n */\nexport enum NumberAlignmentOption {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * @deprecated Should use BigNumberInput directive instead\n */\n@Directive({\n selector: \"input[sNumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class NumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator = \",\";\n\n @Input()\n public thousandsSeparator = \".\";\n\n @Input()\n public alignTo = NumberAlignmentOption.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private regex: RegExp = /\\d/;\n\n public ngOnInit() {\n this.updateVariables();\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimal: this.decimalSeparator,\n thousands: this.thousandsSeparator,\n precision: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator.length;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this.maxLength = maxLength;\n }\n\n /**\n * Prevents the default CurrencyMask behavior when typed a incorrect value.\n * By default the CurrencyMask inputs the mask value to the component value when typed a incorrect value.\n */\n public handleKeypress(event: KeyboardEvent): void {\n const negativeOperator = \"-\";\n const { key } = event;\n\n if (\n this.thousandsSeparator.includes(key) ||\n this.decimalSeparator.includes(key) ||\n negativeOperator.includes(key) ||\n this.regex.test(key) ||\n \"Enter\".toUpperCase() === key.toUpperCase()\n )\n super.handleKeypress(event);\n else event.preventDefault();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NumberInputDirective } from \"./number-input.directive\";\n\n/**\n * @deprecated Should use 'BignumberInputModule' instead\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [NumberInputDirective],\n exports: [NumberInputDirective],\n})\nexport class NumberInputModule {}\n","import { NumberLocaleOptions } from \"../../../locale/index\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n alignTo?: NumberAlignmentOption;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public alignTo: NumberAlignmentOption;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { NumberField, NumberFieldConfig } from \"./number-field\";\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: Function | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public scale?: Function | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = config.scale || config.scale === 0 ? config.scale : 2;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { DecimalField, DecimalFieldConfig } from \"./decimal-field\";\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions || new NumberLocaleOptions();\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\nimport { DefaultFilter } from \"../../components/lookup/models\";\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterLabel?: string;\n filterTitle?: string;\n clearLabel?: string;\n cancelLabel?: string;\n selectLabel?: string;\n emptyMessage?: string;\n recordLabel?: string;\n recordsLabel?: string;\n emptyFieldLabel?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class LookupField extends Field {\n public multiple = false;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle = \"Pesquisa avançada\";\n public searchEmptyTitle = \"Nenhum registro encontrado\";\n public filterLabel = \"Filtrar\";\n public filterTitle = \"Filtros\";\n public clearLabel = \"Limpar\";\n public cancelLabel = \"Cancelar\";\n public selectLabel = \"Selecionar\";\n public recordLabel = \" registro\";\n public recordsLabel = \" registros\";\n public emptyFieldLabel = \"Não informado\";\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public defaultFilter: DefaultFilter[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: () => SelectOption[] | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n}\n\nexport class SelectField extends Field {\n public appendTo?: string;\n public optionLabel?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: () => SelectOption[] | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel || \"{0} registros selecionados\";\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: { [klass: string]: any };\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: { [klass: string]: any };\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = config.style;\n }\n}\n","import { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { PasswordStrengths } from \"../../../password-strength\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description?: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}","import { Field, FieldConfig } from \"./field\";\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n orientation?: \"horizontal\" | \"vertical\";\n animate?: boolean;\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: \"horizontal\" | \"vertical\";\n public animate: boolean;\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this.maxDefault;\n this.orientation = config.orientation ?? \"horizontal\";\n this.step = config.step ?? 1;\n this.animate = config.animate ?? false;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { FileDto } from \"../../file-upload/index\";\nimport { CalendarLocaleOptions, NumberLocaleOptions } from \"../../locale/index\";\nimport { NumberAlignmentOption } from \"../../number-input\";\nimport { AddonConfig } from \"./addon-config\";\nimport { FieldSize } from \"./field-size\";\nimport { FieldType } from \"./field-type\";\nimport { AutocompleteField } from \"./fields/autocomplete-field\";\nimport { BignumberField } from \"./fields/bignumber-field\";\nimport { BlobField } from \"./fields/blob-field\";\nimport { BooleanField, BooleanOptionsLabel } from \"./fields/boolean-field\";\nimport { BooleanSwitchField } from \"./fields/boolean-switch-field\";\nimport { CalendarField } from \"./fields/calendar-field\";\nimport { ChipsField } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField } from \"./fields/decimal-field\";\nimport { LookupField } from \"./fields/lookup-field\";\nimport { NumberField } from \"./fields/number-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField } from \"./fields/select-field\";\nimport { TextAreaField } from \"./fields/text-area-field\";\nimport { TextField } from \"./fields/text-field\";\nimport { PasswordField } from \"./fields/password-field\";\nimport { TemplateRef } from \"@angular/core\";\nimport { SliderField } from \"./fields/slider-field\";\n\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name?: string;\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: () => string | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: \"radio\" | \"switch\";\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => ({}) | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n\n constructor(config: any) {\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.Boolean:\n if (config.representedBy === \"switch\") {\n return new BooleanSwitchField(config);\n }\n return new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { BignumberFieldConfig } from \"../../configurations/fields/bignumber-field\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport BigNumber from \"bignumber.js\";\nimport { SortMeta } from \"primeng/api\";\nimport { AutoComplete } from \"primeng/autocomplete\";\nimport { Dialog } from \"primeng/dialog\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BooleanOptionsLabel } from \"../../configurations/fields/boolean-field\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { FieldType } from \"../..\";\nimport { CalendarLocaleOptions } from \"../../../locale/options/calendar\";\nimport { DefaultFilter } from \"./models/default-filter\";\n\n@Component({\n selector: \"s-lookup\",\n templateUrl: \"./lookup.component.html\",\n styleUrls: [\"./lookup.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"hidden\",\n style({\n width: \"10px\",\n padding: 0,\n })\n ),\n state(\n \"visible\",\n style({\n width: \"*\",\n })\n ),\n transition(\"visible <=> hidden\", [group([query(\"@childCollapseContent\", animateChild()), animate(\"{{transitionParams}}\")])]),\n ]),\n trigger(\"childCollapseContent\", [\n state(\n \":leave\",\n style({\n opacity: 0,\n })\n ),\n state(\n \":enter\",\n style({\n opacity: 1,\n })\n ),\n transition(\"* <=> *\", animate(\"{{transitionParams}}\")),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public formControlName: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public dataKey: string;\n\n @Input()\n public required: boolean;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[];\n\n @Input()\n public lookupDisplayField: string;\n\n @Input()\n public lookupDisplayFieldTooltip: boolean;\n\n @Input()\n public lookupEmptyMessage: string;\n\n @Input()\n public lookupAppendTo = \"body\";\n\n @Input()\n public searchTitle = \"Pesquisa avançada\";\n\n @Input()\n public searchEmptyTitle = \"Nenhum registro encontrado\";\n\n @Input()\n public searchEmptyDescription: string;\n\n @Input()\n public searchGridData: any[];\n\n @Input()\n public searchTotalRecords: number;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[];\n\n @Input()\n public multiSortMeta: SortMeta[];\n\n @Input()\n public filterTitle = \"Filtros\";\n\n @Input()\n public filterLabel = \"Filtrar\";\n\n @Input()\n public clearLabel = \"Limpar\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public selectLabel = \"Selecionar\";\n\n @Input()\n public emptyFieldLabel = \"Não informado\";\n\n @Input()\n public recordLabel = \" registro\";\n\n @Input()\n public recordsLabel = \" registros\";\n\n @Input()\n public placeholder: string;\n\n @Input()\n public searchTotalRecordsLabel: string;\n\n @Input()\n public sortableColumnsDisabled: string[];\n\n @Input()\n public lookupRowProps: string[];\n\n @Input()\n public defaultFilter: DefaultFilter[];\n\n @Output()\n public onLookupRequest: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSearchRequest: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onBlur: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onKeyUp: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSelect: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onUnselect: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onClear: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(Table, { static: false })\n public table: Table;\n\n @ViewChild(Dialog, { static: false })\n public dialog: Dialog;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete;\n\n public value: any;\n public loading: boolean;\n public animating: boolean;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog: FormGroup;\n public transitionOptions = \"400ms cubic-bezier(0.86, 0, 0.07, 1)\";\n\n private onChange: Function;\n private onTouched: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject();\n\n constructor(private readonly hotkeysService: HotkeysService) { }\n\n public ngOnInit() {\n if (!this.searchGridFields) {\n this.searchGridFields = this.searchFields.map(item => new FormField({ ...item }));\n }\n\n this.searchFields = this.searchFields.map(\n (value: FormField) => new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n })\n );\n\n this.searchGridFields = this.searchGridFields.map((gridField: FormField) => {\n gridField[\"width\"] = this.getColWidth(gridField.label);\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const formGroup = this.searchFields.reduce((result: any, field) => {\n result[field.name] = new FormControl(field.defaultValue);\n this.originalFormValues[field.name] = field.defaultValue;\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple || this.value) {\n return;\n }\n\n this.onChange(null);\n });\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n });\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(event => {\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = event.target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = \"\";\n event.target.value = newValue;\n this.onChange(newValue);\n });\n }\n\n public printRecordTotalizer(): string {\n const label = this.searchTotalRecords === 1\n ? this.recordsLabel.trim()\n : this.recordsLabel.trim();\n\n return this.searchTotalRecordsLabel ? this.searchTotalRecordsLabel : `${this.searchTotalRecords} ${label}`;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === \"dd/mm/yy\") { // valor padrão para o format.\n return \"LTS\";\n }\n\n if (hourFormat === \"12\") {\n return format\n .replace(/\\bH\\b/, \"h\") // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, \"hh\"); // hour (12 hour time)\n }\n\n if (hourFormat === \"24\") {\n return format\n .replace(/\\bh\\b/, \"H\") // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, \"HH\"); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n }\n\n public ngAfterViewInit() {\n this.autocomplete.onOverlayAnimationDone = (event) => { };\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes.searchGridData) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public lazyLoadLookup(event: any) {\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(\n ({ field }) =>\n this.formGroupDialog.contains(field) &&\n !this.formGroupDialog.get([field]).dirty\n )\n .forEach(({ value, field }) => {\n this.formGroupDialog\n .get([field])\n .patchValue(value instanceof Function ? value() : value);\n });\n }\n\n public showDialog() {\n this.setDefaultFilters();\n this.searchGridData = undefined;\n this.onTouched();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n public hideDialog() {\n const { inputEL, multiInputEL } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n\n if (this.multiple) multiInputEL.nativeElement.focus();\n else inputEL.nativeElement.focus();\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n this.dialog.moveOnTop();\n }\n\n public clear() {\n this.formGroupDialog.reset(this.originalFormValues);\n this.resetTable();\n }\n\n protected resetTable() {\n this.table.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = (val: any) => {\n this.writeValue(val);\n fn(val);\n };\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split(\".\").reduce((result, prop) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getLabelForValue(value: any, options: { label: string; value: any }[]) {\n if (!options) return value;\n const option = options.find(opt => opt.value === value);\n return option ? option.label : value;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel) {\n const value = this.getFieldValue(obj, path);\n if (value === true) return optionsLabel.true;\n else if (value === false) return optionsLabel.false;\n else return this.emptyFieldLabel;\n }\n\n public isNumber(obj: any, path: string) {\n return !(new BigNumber(this.getFieldValue(obj, path)).isNaN());\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey(\"alt+shift+l\", this.clear.bind(this));\n const findHotkey = this.newHotkey(\"alt+shift+f\", this.search.bind(this));\n const hideHotkey = this.newHotkey(\"alt+shift+c\", this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey(\"alt+shift+s\", this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(\n combo,\n () => {\n fn();\n return false;\n },\n [\"INPUT\", \"SELECT\", \"TEXTAREA\"]\n );\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getDoubleMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n }\n }\n\n public getMoneyMaskConfig(col: BignumberFieldConfig) : MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n }\n }\n\n public getNumberMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol\n };\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.dialog?.contentViewChild?.nativeElement?.getElementsByTagName('input')[0];\n\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n}\n","import { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../configurations/fields/autocomplete-field\";\nimport { BooleanField } from \"../../configurations/fields/boolean-field\";\nimport { CalendarField } from \"../../configurations/fields/calendar-field\";\nimport { ChipsField } from \"../../configurations/fields/chips-field\";\nimport { CurrencyField } from \"../../configurations/fields/currency-field\";\nimport { BlobField } from \"../../configurations/fields/blob-field\";\nimport { LookupField } from \"../../configurations/fields/lookup-field\";\nimport { NumberField } from \"../../configurations/fields/number-field\";\nimport { RadioButtonField } from \"../../configurations/fields/radio-button-field\";\nimport { SelectField } from \"../../configurations/fields/select-field\";\nimport { TextAreaField } from \"../../configurations/fields/text-area-field\";\nimport { TextField } from \"../../configurations/fields/text-field\";\nimport { PasswordField } from \"../../configurations/fields/password-field\";\nimport { SliderField } from \"../../configurations/fields/slider-field\";\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | CalendarField\n | ChipsField\n | CurrencyField\n | BlobField\n | LookupField\n | NumberField\n | RadioButtonField\n | SelectField\n | TextField\n | PasswordField\n | TextAreaField\n | SliderField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n}\n","export enum DynamicType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Double = \"Double\",\n Enum = \"Enum\",\n Fieldset = \"Fieldset\",\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Radio = \"Radio\",\n Row = \"Row\",\n Section = \"Section\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Password = \"Password\",\n Slider = \"Slider\",\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\n\nexport interface GridConfig {\n fields?: FormField[];\n type: GridType;\n}\n\nexport class Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Grid, GridConfig } from \"./grid\";\n\nexport class Row extends Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { Grid } from \"../grid/grid\";\nimport { StructureType } from \"../structure-type\";\n\nexport interface StructureConfig {\n header: string;\n configs?: Grid[];\n type: StructureType;\n}\n\nexport abstract class Structure {\n public header: string;\n public configs?: Grid[];\n public type: StructureType;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport class Section extends Structure {\n constructor(config: StructureConfig) {\n super(config);\n }\n}\n","import { DynamicType } from \"./dynamic-type\";\nimport { AutocompleteField, AutocompleteFieldConfig } from \"./fields/autocomplete-field\";\nimport { BignumberField, BignumberFieldConfig } from \"./fields/bignumber-field\";\nimport { SliderField, SliderFieldConfig } from \"./fields/slider-field\";\nimport { BooleanField, BooleanFieldConfig } from \"./fields/boolean-field\";\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from \"./fields/boolean-switch-field\";\nimport { CalendarField, CalendarFieldConfig } from \"./fields/calendar-field\";\nimport { ChipsField, ChipsFieldConfig } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField, DecimalFieldConfig } from \"./fields/decimal-field\";\nimport { LookupField, LookupFieldConfig } from \"./fields/lookup-field\";\nimport { NumberField, NumberFieldConfig } from \"./fields/number-field\";\nimport { PasswordField, PasswordFieldConfig } from \"./fields/password-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField, SelectFieldConfig } from \"./fields/select-field\";\nimport { TextAreaField, TextAreaFieldConfig } from \"./fields/text-area-field\";\nimport { TextField, TextFieldConfig } from \"./fields/text-field\";\nimport { Row } from \"./grid/row\";\nimport { Fieldset, FieldsetConfig } from \"./structure/fieldset\";\nimport { Section } from \"./structure/section\";\nimport { StructureConfig } from \"./structure/structure\";\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === \"switch\") {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as StructureConfig);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n","import { Component, Input, ViewEncapsulation, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { DynamicConfig } from \"./configurations/dynamic-config\";\nimport { FormField } from \"./configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"dynamic-form.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id: string;\n @Input()\n public configs: DynamicConfig[];\n @Input()\n public fields: FormField[]; // @TODO deve-se remover em uma vesão de quebra. O default deve ser configs.\n @Input()\n public form: FormGroup;\n @Input()\n public errorMessages?: any = {};\n @Input()\n public displayTimeInfoSign: number;\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\n@Component({\n selector: `s-empty-state`,\n templateUrl: `./empty-state.component.html`,\n styleUrls: [\"./empty-state.component.css\"],\n})\nexport class EmptyStateComponent {\n public static nextId = 0;\n\n @Input() id = `s-empty-state-${EmptyStateComponent.nextId++}`;\n @Input() iconClass = \"fa fa-inbox\";\n @Input() title: string;\n @Input() description?: string;\n @Input() showPrimaryAction = true;\n @Input() showSecondaryAction = true;\n @Input() primaryActionLabel?: string;\n @Input() secondaryActionLabel?: string;\n @Input() primaryModel?: MenuItem[] = [];\n\n @Output() primaryAction = new EventEmitter();\n @Output() secondaryAction = new EventEmitter();\n}\n","import { Component, Input } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Component({\n selector: `s-empty-state-go-back`,\n templateUrl: `./go-back.component.html`,\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n public static nextId = 0;\n\n @Input() iconClass = \"fa fa-exclamation-triangle\";\n @Input() title: string;\n @Input() description?: string;\n @Input() primaryActionLabel: string;\n\n constructor(private cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this.cookieService.get(\"com.senior.portal.url\");\n window.open(portalUrl, \"_top\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { ButtonModule } from \"../button/index\";\nimport { EmptyStateComponent } from \"./empty-state.component\";\nimport { EmptyStateGoBackComponent } from \"./go-back/go-back.component\";\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent ],\n})\nexport class EmptyStateModule {}\n","export enum ValidateErrors {\n MAX_FILE_SIZE = \"MAX_FILE_SIZE\",\n MAX_FILE_LIMIT = \"MAX_FILE_LIMIT\",\n UNSUPPORTED_EXTENSION = \"UNSUPPORTED_EXTENSION\",\n}\n","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 767,\n MD_MIN: 768,\n MD_MAX: 991,\n LG_MIN: 992,\n LG_MAX: 1199,\n XL_MIN: 1200,\n XL_MAX: Infinity,\n};\n","import { ElementRef } from \"@angular/core\";\n\nexport class ExportUtils {\n constructor() {\n throw new Error(\"Classe não deve ser instanciada.\");\n }\n\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, \"\");\n }\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = \";\",\n documentName: string = \"download\"\n ) {\n let csv = \"\\ufeff\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += \"\\n\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) => this.resolveFieldData(record, col));\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this.resolveFieldData(record, column.field);\n }\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = \"\";\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: \"text/csv;charset=utf-8;\",\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + \".csv\");\n else {\n const link = document.createElement(\"a\");\n link.style.display = \"none\";\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute(\"href\", URL.createObjectURL(blob));\n link.setAttribute(\"download\", documentName + \".csv\");\n link.click();\n } else {\n csv = \"data:text/csv;charset=utf-8,\" + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf(\".\") == -1) return data[field];\n else {\n const fields: string[] = field.split(\".\");\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","import { HostProjectConfigs } from \"../../../../../angular-components.module\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) return \"\";\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class AngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<AngularComponentsModule> {\n return {\n ngModule: AngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../../../angular-components.module\";\nimport { CustomTranslationsService } from \"./index\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor (\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { CustomHttpClient } from \"../code-editor/infra/utils\";\nimport {\n ListBlobMetadataRequest,\n ListBlobMetadataResponse\n} from \"./models/list-blob-metadata\"\n\n@Injectable()\nexport class FileUploadService {\n private BASE_URL_FIELD_CUSTOMIZATION = \"platform/field_customization\";\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.POST(\n `${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`,\n request,\n { signal: this.TOKEN.signal }\n );\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { Subject } from \"rxjs\";\n\nimport { FileDto } from \"./models/file-dto\";\nimport { ValidateErrors } from \"./models/validate-errors\";\nimport { UploadError } from \"./models/uploadError\";\nimport { Breakpoints } from \"../utils\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { ListBlobMetadataResponse } from \"./models/list-blob-metadata\";\nimport * as moment_ from \"moment\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nconst moment = moment_;\n\n@Component({\n selector: \"s-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n styleUrls: [\"./file-upload.component.scss\"],\n})\nexport class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {\n public static nextId = 0;\n\n @ViewChild(\"inputUpload\", { static: false })\n private readonly inputUpload: ElementRef;\n\n @ViewChild(\"anchor\", { static: false })\n private readonly anchor: ElementRef;\n\n @Input() public id = `s-file-upload-${FileUploadComponent.nextId++}`;\n @Input() public chooseLabel = \"Anexar arquivos\";\n @Input() public removeLabel = \"Remover\";\n @Input() public cancelLabel = \"Cancelar\";\n @Input() public successTooltip = \"Arquivo anexado com sucesso\";\n @Input() public multiple: boolean;\n @Input() public accept: string;\n @Input() public supportedExtensions: string[] = [];\n @Input() public ariaLabelFileName: string;\n @Input() public maxFileSize: number;\n @Input() public fileLimit: number;\n @Input() public ariaLabelProgress = \"Carregando arquivo\";\n @Input() public ariaLabelSuccess: string;\n @Input() public ariaLabelError: string;\n @Input() public ariaLabelRemove: string;\n @Input() public formGroup: FormControl;\n @Input() public disabled = false;\n @Input() public showFileUploadDate: boolean = false;\n @Input() public set files(files: FileDto[]) {\n if(this.showFileUploadDate && files[0]?.objectId) {\n this.getUploadDate(files);\n }\n this._files = files.map(file => {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\n }\n return file;\n });\n }\n\n @Output() public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\n @Output() public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\n @Output() public cancelUpload: EventEmitter<number> = new EventEmitter();\n @Output() public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\n @Output() public validateErrors: EventEmitter<UploadError> = new EventEmitter();\n\n private _files: FileDto[] = [];\n private readonly ngUsubscribe: Subject<void> = new Subject();\n public isSmallDevice: boolean;\n public inputValue = \"\";\n public modifiedDate: string;\n\n constructor(private readonly sanitizer: DomSanitizer,\n private readonly fileUploadService: FileUploadService,\n private readonly translate: TranslateService) { }\n\n public ngOnInit(): void {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLowerCase());\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public onFileSelect(files: FileDto[]): void {\n const newFiles: FileDto[] = [];\n\n if (!this.multiple) {\n this.files = [];\n }\n\n if (this.isFileLimitExceeded(files)) {\n this.validateErrors.emit({\n files,\n validation: ValidateErrors.MAX_FILE_LIMIT,\n });\n this.clearFileInput();\n return;\n }\n\n for (const file of files) {\n if (this.isUnsupportedFileExtension(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.UNSUPPORTED_EXTENSION,\n });\n continue;\n }\n\n if (this.isFileSizeExceeded(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.MAX_FILE_SIZE,\n });\n continue;\n }\n\n newFiles.push(file);\n }\n\n if (newFiles.length) {\n this.files = this.files.concat(newFiles);\n this.uploadHandler.emit({\n files: newFiles,\n });\n }\n\n this.clearFileInput();\n }\n\n public onRemoveFile(file: FileDto): void {\n const fileIndex = this.files.indexOf(file);\n const removedFiles = this.files.splice(fileIndex, 1);\n\n if (removedFiles.length) {\n this.removeFile.emit({ file });\n }\n }\n\n public onCancelUpload(index: number) {\n const removedFiles = this.files.splice(index, 1);\n\n if (removedFiles.length) {\n this.cancelUpload.emit(index);\n }\n\n this.clearFileInput();\n }\n\n public onDowloadFile(index: number) {\n this.downloadFile.emit({\n index,\n anchor: this.anchor,\n });\n }\n\n public get files(): FileDto[] {\n return this._files;\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\n }\n\n private isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n private isFileLimitExceeded(files: FileDto[]) {\n if (!this.fileLimit) {\n return false;\n }\n return this.files.length + files.length > this.fileLimit;\n }\n\n private isFileSizeExceeded(file: File): boolean {\n if (!this.maxFileSize) {\n return false;\n }\n return file.size > this.maxFileSize;\n }\n\n private isUnsupportedFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return !this.supportedExtensions.includes(extension);\n }\n return false;\n }\n\n private clearFileInput() {\n this.inputUpload.nativeElement.value = null;\n }\n\n private getUploadDate(blobFile: FileDto[]): void {\n if(!blobFile) {\n return;\n }\n \n this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })\n .then(metadata => this.setModifiedDate(metadata));\n }\n\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\n const hour = moment(metadata.modified).format(\"HH\");\n const minutes = moment(metadata.modified).format(\"mm\");\n const day = moment(metadata.modified).format(\"DD\");\n const month = moment(metadata.modified).format(\"MM\");\n const fullYear = moment(metadata.modified).format(\"YYYY\");\n\n this.modifiedDate = this.translate.instant(\"platform.angular_components.date_modified_custom_blob\", { hour, minutes, day, month, fullYear });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ProgressBarModule } from \"primeng/progressbar\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { FileUploadComponent } from \"./file-upload.component\";\nimport { FileUploadService } from \"./file-upload.service\";\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n ProgressBarModule,\n ],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadModule {}\n","import { Component, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-info-sign-component\",\n templateUrl: \"./info-sign.component.html\",\n styleUrls: [\"./info-sign.component.scss\"],\n})\nexport class InfoSignComponent {\n templateRef: TemplateRef<any>;\n tooltip: string;\n displayTime: number;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { InfoSignComponent } from \"./info-sign.component\";\n\n@Directive({\n selector: \"[sInfoSign]\",\n})\nexport class InfoSignDirective implements OnInit, OnDestroy {\n @Input()\n sInfoSign: string;\n\n @Input('sInfoSignDisplayTime')\n displayTime: number = 5000;\n\n private componentRef: ComponentRef<any>;\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n public ngOnInit(): void {\n if (!this.componentRef && this.sInfoSign) {\n this.viewContainer.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(InfoSignComponent);\n this.componentRef = this.viewContainer.createComponent(componentFactory);\n\n this.componentRef.instance.templateRef = this.templateRef;\n this.componentRef.instance.tooltip = this.sInfoSign;\n this.componentRef.instance.displayTime = this.displayTime;\n } else if (this.componentRef && this.sInfoSign) {\n this.componentRef.instance.tooltip = this.sInfoSign;\n } else {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignComponent } from \"./info-sign.component\";\nimport { InfoSignDirective } from \"./info-sign.directive\";\n\n@NgModule({\n imports: [\n TooltipModule,\n CommonModule,\n ],\n declarations: [\n InfoSignDirective,\n InfoSignComponent,\n ],\n exports: [InfoSignDirective],\n entryComponents: [InfoSignComponent],\n})\nexport class InfoSignModule {}\n","import { Component, Input, OnDestroy, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-loading-state\",\n templateUrl: \"./loading-state.component.html\",\n styleUrls: [\"./loading-state.component.scss\"],\n})\nexport class LoadingStateComponent implements OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\n\n @Input()\n public blockWindow: boolean;\n\n @Input()\n public set loading(loading: boolean) {\n this._loading = loading;\n\n if (loading) this.block();\n else this.unblock();\n }\n\n public get loading() {\n return this._loading;\n }\n\n public contents: TemplateRef<any>;\n public blocking: boolean;\n\n private _loading: boolean;\n private BLOCK_TIMEOUT_VALUE = 300;\n private UNBLOCK_TIMEOUT_VALUE = 200;\n private blockTimeoutId: any;\n private unblockTimeoutId: any;\n\n public block() {\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n this.unblockTimeoutId = undefined;\n }\n\n if (!this.blockTimeoutId) {\n this.blockTimeoutId = setTimeout(() => {\n this.blocking = true;\n this.blockTimeoutId = undefined;\n }, this.BLOCK_TIMEOUT_VALUE);\n }\n }\n\n public unblock() {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n this.blockTimeoutId = undefined;\n }\n\n if (!this.unblockTimeoutId) {\n this.unblockTimeoutId = setTimeout(() => {\n this.blocking = false;\n this.unblockTimeoutId = undefined;\n }, this.UNBLOCK_TIMEOUT_VALUE);\n }\n }\n\n public ngOnDestroy() {\n if (this.blockTimeoutId) clearTimeout(this.blockTimeoutId);\n if (this.unblockTimeoutId) clearTimeout(this.unblockTimeoutId);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { LoadingStateComponent } from \"./loading-state.component\";\n\n@Directive({\n selector: \"[sLoadingState]\",\n})\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\n @Input()\n public set sLoadingState(active: boolean) {\n this._loading = active;\n if (this.loaderComponent) this.loaderComponent.instance.loading = active;\n }\n\n public get sLoadingState() {\n return this._loading;\n }\n\n private _loading = false;\n private loaderComponent: ComponentRef<LoadingStateComponent>;\n\n constructor(\n private target: ViewContainerRef,\n private template: TemplateRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n this.createComponent();\n }\n\n private createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\n this.loaderComponent = this.target.createComponent(factory);\n this.loaderComponent.instance.contents = this.template;\n this.loaderComponent.instance.loading = this.sLoadingState;\n this.cdr.detectChanges();\n }\n\n public ngOnDestroy() {\n this.loaderComponent.destroy();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateDirective } from \"./loading-state.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LoadingStateComponent, LoadingStateDirective],\n exports: [LoadingStateComponent, LoadingStateDirective],\n entryComponents: [LoadingStateComponent],\n})\nexport class LoadingStateModule {}\n","import { Directive, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\n\n@Directive({\n selector: \"input[sLocalizedNumberInput]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n @Input()\n public decimalSeparator = \",\";\n @Input()\n public thousandsSeparator = \".\";\n @Input()\n public precision = 2;\n private numberRegex: string;\n\n constructor() {}\n\n ngOnInit() {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex, \"g\"))) return { invalidNumber: true };\n return null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LocalizedNumberInputDirective } from \"./localized-number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"sMaskFormatter\",\n})\nexport class MaskFormatterPipe implements PipeTransform {\n private defs = {\n \"9\": \"[0-9]\",\n a: \"[A-Za-z]\",\n \"*\": \"[A-Za-z]|[0-9]\",\n };\n\n transform(value: string, maskFormat: string): any {\n const buffer = [];\n let opcionalPos;\n let pos = 0;\n const maskTokens = maskFormat.split(\"\");\n const symbolsPosAfterOpcional = [];\n const hasOpcional = maskFormat.includes(\"?\");\n\n for (let i = 0; i < maskTokens.length; i++) {\n const token = maskTokens[i];\n\n if (token != \"?\") {\n if (this.defs[token]) {\n const tokenRegex = this.defs[token];\n const charAtPos = value.charAt(pos);\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\n if (isValidChar) {\n if (pos < maskTokens.length) {\n buffer.push(value.charAt(pos));\n pos++;\n }\n } else {\n throw new Error(\"Value doesn't match mask format\");\n }\n } else {\n buffer.push(token);\n if (hasOpcional && i > opcionalPos) {\n symbolsPosAfterOpcional.push(i);\n }\n }\n } else {\n opcionalPos = i;\n }\n }\n\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\n let formattedValue = buffer.join(\"\");\n let beforeSymbol;\n let symbol;\n let firstAfterSymbol;\n let endOfString;\n\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\n const symbolPos = symbolsPosAfterOpcional[i];\n beforeSymbol = formattedValue.substr(0, symbolPos - 1);\n symbol = formattedValue.substr(symbolPos - 1, 1);\n firstAfterSymbol = formattedValue.substr(symbolPos, 1);\n endOfString = formattedValue.substr(symbolPos + 1);\n\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\n }\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\n }\n\n return buffer.join(\"\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MaskFormatterPipe } from \"./mask-formatter.pipe\";\n\n@NgModule({\n exports: [MaskFormatterPipe],\n declarations: [MaskFormatterPipe],\n})\nexport class MaskFormatterModule {}\n","import {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { AlignmentOptions, CurrencyMaskDirective } from \"@seniorsistemas/ng2-currency-mask\";\n\n@Directive({\n selector: \"input[sBignumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BignumberInputDirective),\n multi: true,\n },\n ],\n})\n\nexport class BignumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator = \",\";\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = AlignmentOptions.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private _maxLength: number;\n\n public ngOnInit() {\n this.updateVariables();\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) {\n this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n }\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n @HostListener(\"keypress\", [\"$event\"])\n public onKeypress(event: KeyboardEvent) {\n const code = event.code;\n\n if (code === \"Minus\" || code === \"NumpadSubtract\") {\n if (this.allowNegative) {\n this.maxLength = this._maxLength + 1; \n }\n } else if (code === \"Equal\" || code === \"NumpadAdd\") {\n this.maxLength = this._maxLength;\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimalSeparator: this.decimalSeparator,\n thousandsSeparator: this.thousandsSeparator ?? \".\",\n scale: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator?.length ?? 1;\n \n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n \n this._maxLength = maxLength;\n this.maxLength = maxLength;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { BignumberInputDirective } from \"./number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BignumberInputDirective],\n exports: [BignumberInputDirective],\n})\nexport class BignumberInputModule {}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Table, TableService } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-table-header-checkbox\",\n template: `\n <div class=\"ui-chkbox ui-widget\" (click)=\"onClick()\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"isDisabled()\">\n </div>\n <div [ngClass]=\"{'ui-chkbox-box ui-widget ui-state-default':true,\n 'ui-state-active':checked, 'ui-state-disabled': isDisabled(), 'ui-state-focus': hasFocus}\">\n <span [id]=\"id\" class=\"ui-chkbox-icon ui-clickable\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n @Input()\n public disabled: boolean;\n @Input()\n public rowProps: string[];\n @Input()\n public useAllObject: boolean;\n\n public checked: boolean;\n public hasFocus: boolean;\n\n private ngUnsubscribe = new Subject();\n\n constructor(public table: Table, public tableService: TableService) {\n this.table.tableService.valueSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n }\n\n public onFocus() {\n this.hasFocus = true;\n }\n\n public onBlur() {\n this.hasFocus = false;\n }\n\n isDisabled() {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n onClick() {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean) {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (checked) {\n const unselecteds = gridData\n .filter(record => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked() {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked() {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TableHeaderCheckboxComponent } from \"./table-header-checkbox.component\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule {}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({ selector: \"[sNavigation]\" })\nexport class NavigationDirective {\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case \"Right\": // IE 11\n case \"ArrowRight\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Left\": // IE 11\n case \"ArrowLeft\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Up\": // IE 11\n case \"ArrowUp\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Down\": // IE 11\n case \"ArrowDown\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this.setNextRowFocus(currentRow);\n }\n }\n\n private focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const prevRow = this.findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const nextRow = this.findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"tr\";\n }\n\n private isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"td\";\n }\n\n private findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) return prevRow;\n else return null;\n }\n\n private findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) return nextRow;\n else return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { RowToggler, Table } from \"primeng/table\";\n\n@Directive({ selector: \"[sRowToggler]\" })\nexport class RowTogllerDirective extends RowToggler {\n @Input(\"sRowToggler\")\n data: any;\n\n constructor(public dt: Table) {\n super(dt);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case \"Enter\":\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","import { AfterContentChecked, AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\n\n@Directive({\n selector: \"[sTableFrozenPosition]\"\n})\nexport class TableFrozenPositionDirective implements AfterViewInit, OnDestroy, AfterContentChecked {\n @Input()\n sTableFrozenPosition = \"left\";\n\n @Input()\n set sTableFrozenValue(_: any[]) {\n setTimeout(() => {\n this.synchronizeRowHeight();\n this.setUpRowResizeMonitoring();\n });\n }\n\n private table: Table;\n private isTableVisible = false;\n private resetRowHeightClassName: string;\n\n tableHeadObservable: MutationObserver;\n rowExpandedObserver: any;\n onColumnsChanged: EventEmitter<any> = new EventEmitter();\n\n constructor(private el: ElementRef, private host: Table) {\n this.table = host;\n this.table.styleClass = (this.table.styleClass || \"\") + \" s-table-frozen-position\";\n this.setUpTableEvents();\n\n window.addEventListener(\"resize\", this.handleWindowResize.bind(this));\n\n const htmlHead = document.getElementsByTagName(\"head\")[0];\n\n const expandFrozenStyle = document.createElement(\"style\");\n expandFrozenStyle.innerHTML = \".s-table-frozen-position .ui-table-frozen-view .sds-expanded-row > td { visibility: hidden; }\";\n htmlHead.appendChild(expandFrozenStyle);\n }\n\n ngAfterViewInit(): void {\n if (this.sTableFrozenPosition === \"left\") return;\n this.applyStylesForTable();\n this.setUpColumnMonitoring();\n }\n\n ngAfterContentChecked(): void {\n if (!this.isTableVisible && !!this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = true;\n\n this.synchronizeRowHeight();\n } else if (this.isTableVisible && !this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = false;\n }\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"resize\", this.handleWindowResize.bind(this));\n if (this.tableHeadObservable) {\n this.tableHeadObservable.disconnect();\n }\n\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n }\n\n private setUpTableEvents() {\n this.table.onColResize.subscribe(() => {\n this.handleColResize();\n });\n\n this.table.onRowExpand.subscribe(() => {\n this.setUpRowResizeMonitoring();\n });\n }\n\n private setUpRowResizeMonitoring() {\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n // The version of Angular/Typescript does not recognize the object ResizeObserver and breaks build\n this.rowExpandedObserver = new (window as any).ResizeObserver(() => {\n this.applyHeightForExpandedRows();\n });\n\n setTimeout(() => {\n const tdsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const originalsTds = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n tdsToAdjust.forEach((td: HTMLElement, index: number) => {\n const originalTd: HTMLElement = originalsTds[index];\n const height = originalTd.getBoundingClientRect().height;\n td.innerHTML = `<div style=\"height: ${height}px\"></div>`;\n td.style.padding = \"0px\";\n\n this.rowExpandedObserver.observe(originalTd);\n });\n });\n }\n\n private setUpColumnMonitoring() {\n this.tableHeadObservable = new MutationObserver(() => {\n this.synchronizeRowHeight();\n this.onColumnsChanged.emit(null);\n });\n const tableHeads = [...this.el.nativeElement.getElementsByTagName(\"thead\")];\n tableHeads.forEach((tableHead: Element) => {\n this.tableHeadObservable.observe(tableHead, {\n subtree: true,\n childList: true\n });\n });\n }\n\n private applyHeightForExpandedRows() {\n const frozenTDsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const unFrozenTDs = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n frozenTDsToAdjust.forEach((frozenTd: HTMLElement, index: number) => {\n const unfrozenTD: HTMLElement = unFrozenTDs[index];\n const unfrozenHeight = unfrozenTD.getBoundingClientRect().height;\n const frozenHeight = frozenTd.getBoundingClientRect().height;\n if (Math.abs(unfrozenHeight - frozenHeight) > 1) {\n frozenTd.style.height = `${unfrozenHeight}px`;\n frozenTd.innerHTML = `<div></div>`;\n }\n });\n }\n\n private applyStylesForTable() {\n const scrollWrapper = this.el.nativeElement.querySelector(\".ui-table-scrollable-wrapper\");\n if (!scrollWrapper) {\n console.warn(\"Unable to find scroll-wrapper element from table. Is the table configured with frozen template?\");\n return;\n }\n scrollWrapper.style.display = \"flex\";\n scrollWrapper.style.flexDirection = \"row\";\n\n const frozenTable = this.el.nativeElement.querySelector(\".ui-table-frozen-view\");\n if (!frozenTable) {\n console.warn(\"Unable to find frozen element from table. Is the table configured with frozen template?\");\n return;\n }\n frozenTable.style.order = \"1\";\n frozenTable.style.borderRight = \"none\";\n frozenTable.style.borderLeft = \"1px solid #dddddd\";\n frozenTable.style.boxShadow = \"-5px 0 5px -5px #cccccc\";\n\n const unfrozenTable = this.el.nativeElement.querySelector(\".ui-table-unfrozen-view\");\n if (!unfrozenTable) {\n console.warn(\"Unable to find unfrozen element from table. Is the table configured with frozen template?\");\n return;\n }\n unfrozenTable.style.position = \"unset\";\n }\n\n private handleWindowResize() {\n this.synchronizeRowHeight();\n }\n\n private handleColResize() {\n this.synchronizeRowHeight();\n }\n \n private synchronizeRowHeight() {\n const tableBodyWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-body\");\n const tableBodies = [...tableBodyWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableBodies);\n this._applyMaxRowHeight(tableBodies);\n\n const tableHeadWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-header-box\");\n const tableHeads = [...tableHeadWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableHeads);\n this._applyMaxRowHeight(tableHeads);\n }\n\n private _applyMaxRowHeight(tables: any[]) {\n if (!tables || !tables.length) {\n return;\n }\n\n const lengths = tables.map(table => table.rows.length);\n const maxLength = lengths.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue), lengths[0]);\n const minLength = lengths.reduce((accumulator, currentValue) => Math.min(accumulator, currentValue), lengths[0]);\n\n if (maxLength !== minLength) {\n throw new Error(\"The number of rows in both tables must be the same\");\n }\n\n const table = tables[0];\n\n for (let i = 0; i < table.rows.length; i++) {\n const trs = [];\n for (const table of tables) {\n trs.push(table.rows[i] as HTMLTableRowElement);\n }\n\n const max = trs.reduce((accumulator, currentValue) => \n Math.max(accumulator, currentValue.getBoundingClientRect().height), trs[0].getBoundingClientRect().height);\n\n for (const tr of trs) {\n tr.style.height = `${max}px`;\n }\n }\n }\n\n private _resetRowHeight(tables: any[]) {\n for (const table of tables) {\n for (const row of table.rows) {\n row.style.height = \"unset\";\n }\n }\n }\n}\n","export enum EnumColumnFieldType {\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n BOOLEAN = \"BOOLEAN\",\n DATE = \"DATE\",\n CURRENCY = \"CURRENCY\",\n ENUM = \"ENUM\",\n LOOKUP = \"LOOKUP\",\n LINK = \"LINK\",\n TOKENS = \"TOKENS\"\n}\n","export enum EnumBadgeColors {\n RED = \"sds-semantic-red\",\n ORANGE = \"sds-semantic-orange\",\n YELLOW = \"sds-semantic-yellow\",\n GREEN = \"sds-semantic-green\",\n BLUE = \"sds-semantic-blue\",\n GRAY = \"sds-semantic-gray\"\n}\n","import * as moment_ from \"moment\";\nimport { Inject, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Component, Input, ViewChild } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\nimport {\n HostProjectConfigs,\n HostProjectConfigsInjectionToken\n} from \"../../../angular-components.module\";\nimport { IToken } from \"../../token-list\";\nimport {\n BadgeColumn,\n BadgeConfigs,\n Column,\n ColumnValues,\n EnumColumnFieldType,\n TableColumnLocaleOptions\n} from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-columns.component.html\",\n styleUrls: [\"./table-columns.component.scss\"],\n selector: \"s-table-columns\",\n})\nexport class TableColumnsComponent implements OnChanges {\n\n @ViewChild(\"columnsTemplate\", { static: true }) columnsTemplate: TemplateRef<any>;\n\n @Input() columns!: Column[];\n @Input() rowValue!: any;\n @Input() locale!: TableColumnLocaleOptions;\n\n public formattedColumns: ColumnValues[] = [];\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n this.createColumnsTemplate(changes);\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!changes.columns?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!changes.rowValue?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n if (!changes.locale?.currentValue) {\n throw new Error(\"The 'locale' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes.columns.currentValue;\n const rowValue: object = changes.rowValue.currentValue;\n const locale: TableColumnLocaleOptions = changes.locale.currentValue;\n\n columns.forEach((column) => this.formattedColumns.push(this.getColumnValue(column, rowValue, locale)));\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : \" - \";\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return attributeValue === null || attributeValue === undefined || (this.isArray(attributeValue) && !attributeValue.length);\n }\n\n private getFormattedColumnValue(column: Column, columnValue: any[], unifiedColumnValues: string,\n uninformedText: string, uninformedNumber: number) {\n\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply([], columnValue.filter(values => values !== uninformedText));\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: object) {\n let attributeValue!: any;\n\n attribute\n .split(\"/\")\n .forEach((value: string) => {\n if (!attributeValue) {\n value\n .split(\".\")\n .forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column, locale: TableColumnLocaleOptions): MaskConfig {\n return {\n ...locale.number,\n scale: column.scale !== null && column.scale !== undefined\n ? this.getColumnScale(column.scale)\n : locale.number.scale,\n prefix: `${locale.number.currencySymbol} `\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: object, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n let badgeClass: BadgeColumn = {\n \"sds-badge\": false\n };\n\n const columnValue: any[] = column.attributes\n .map((attribute: string) => {\n const attributeValue = this.getAttributeValue(attribute, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column, locale);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n if (column.badgeConfigs?.length) {\n badgeClass = this.getBadgeClass(attributeValue, column.badgeConfigs);\n }\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY:\n return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER:\n numberConfigs.prefix = \"\";\n return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues\n .split(separator)\n .filter(value => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n badgeClass,\n separator,\n uninformed,\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick\n };\n }\n\n private getBadgeClass(value: string, badgeConfigs: BadgeConfigs[]): BadgeColumn {\n const badgeColumn = {\n \"sds-badge\": true\n };\n const color = badgeConfigs.find(badgeConfig => badgeConfig.enumValue === value)?.color.valueOf();\n badgeColumn[color] = true;\n\n return badgeColumn;\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === \"function\") {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign: string | ((rowValue: any) => string)): string {\n if (infoSign !== undefined && infoSign !== null) {\n if (typeof infoSign === \"function\") {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip: string | ((rowValue: any) => string)): string {\n if (tooltip !== undefined && tooltip !== null) {\n if (typeof tooltip === \"function\") {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return \"\";\n }\n\n private isNumber(value: any): boolean {\n return !(new BigNumber(value).isNaN());\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error(\"To use tokens an array must be informed\");\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\"Not a valid token array. Must be a primitive values array or an objects with label attribute array\");\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === \"symbol\" ? value.toString() : `${value}`;\n return {\n label\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter(value => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter(value => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n public getSplittedString(column: ColumnValues): { value: string, isUninformed: boolean, separator: string }[] {\n const { columnValue, separator, uninformed } = column;\n if (typeof columnValue === \"string\") {\n const splittedString = columnValue.split(separator);\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : \"\"\n };\n });\n }\n\n return null;\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { IToken } from \"./models/token\";\n\n@Component({\n selector: `s-token-list`,\n templateUrl: `./token-list.component.html`,\n styleUrls: [\"./token-list.component.scss\"],\n})\nexport class TokenListComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-token-list-${TokenListComponent.nextId++}`;\n\n @Input()\n tokens: IToken[];\n\n @Input()\n removableTokens = false;\n\n @Input()\n hidePointerEvents = false;\n\n @Output()\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\n\n @Output()\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\n\n public onTokenSelected(token: IToken): void {\n if (!token.disabled) {\n this.tokenSelected.next(token);\n }\n }\n\n public onTokenRemoved(token: IToken): void {\n if (!token.disabled) {\n this.tokenRemoved.next(token);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TokenListComponent } from \"./token-list.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TokenListComponent],\n exports: [TokenListComponent],\n})\nexport class TokenListModule {}\n","import * as moment_ from \"moment\";\nimport { Component, Inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\nimport { MenuItem } from \"primeng/api\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n HostProjectConfigs,\n HostProjectConfigsInjectionToken,\n} from \"../../../angular-components.module\";\nimport { ExportUtils } from \"../../utils\";\nimport { CustomAction } from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-paging.component.html\",\n styleUrls: [\"./table-paging.component.scss\"],\n selector: \"s-table-paging\",\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n @Output()\n public totalRecordsText: string;\n\n constructor(\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.totalRecords?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes.totalRecords.currentValue\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): MenuItem[] {\n const actions: MenuItem[] = [\n {\n id: \"exportCurrentPage\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage()\n }\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n id: \"exportSelected\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords()\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n id: \"exportAll\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords()\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, index) => ({\n id: \"customAction_\" + index,\n label: p.label,\n command: p.command\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error(\"Table component not defined\");\n }\n }\n\n public getColumnsToExport() {\n return [...this.table.columns].map(column => {\n const exportColumn = {\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? \" - \",\n enumPrefix: column.enumPrefix\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = this.table.value;\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = this.table.selection;\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split(\".\"), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = (this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value));\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter(p => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map(row => {\n const newRow = { ...row };\n enumColumns.forEach(column => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (match, group) => `_${group.toLowerCase()}`)\n .replace(/^_/, '');\n }\n\n private getExportFileName() {\n const fileName = this.exportFileName ?? \"download\";\n const currentDate = moment(new Date()).format(\"DD-MM-YYYY[_]HH:mm\");\n return `${fileName}_${currentDate}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n const serverData = await this.loadAllRecords();\n const columns = this.getColumnsToExport();\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NavigationDirective } from \"./navigation/navigation.directive\";\nimport { RowTogllerDirective } from \"./row-toggler/row-toggler.directive\";\nimport { TableFrozenPositionDirective } from \"./frozen-position/frozen-position.directive\";\nimport { TableColumnsComponent } from \"./table-column/table-columns.component\";\nimport { TokenListModule } from \"../token-list/token-list.module\";\nimport { TablePagingComponent } from \"./table-paging/table-paging.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TokenListModule,\n TranslateModule,\n ButtonModule,\n InfoSignModule\n ],\n exports: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n declarations: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n})\nexport class TableModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../../configurations/fields/autocomplete-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"autocomplete-field.component.html\",\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: AutocompleteField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BooleanField } from \"../../../configurations/fields/boolean-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-field.component.html\",\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanField;\n @Input()\n public formControl: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CalendarField } from \"../../../configurations/fields/calendar-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"calendar-field.component.html\",\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CalendarField;\n @Input()\n public formControl: FormControl;\n @Input()\n public showTime: boolean;\n @Input()\n public timeOnly: boolean;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { ChipsField } from \"../../../configurations/fields/chips-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./chips-field.component.html\",\n styleUrls: [\"./chips-field.component.scss\"],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: ChipsField;\n \n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CurrencyField } from \"../../../configurations/fields/currency-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: \"currency-field.component.html\",\n})\nexport class CurrencyFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CurrencyField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BlobField } from \"../../../configurations/fields/blob-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"file-upload.component.html\",\n})\nexport class FileUploadComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BlobField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { LookupField } from \"../../../configurations/fields/lookup-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"lookup-field.component.html\",\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: LookupField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NumberAlignmentOption } from \"../../../../number-input/index\";\nimport { DecimalField } from \"../../../configurations/fields/decimal-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"./../../../configurations/field-type\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: DecimalField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { RadioButtonField } from \"../../../configurations/fields/radio-button-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"radion-button-field.component.html\",\n styles: [`\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n `],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: RadioButtonField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n constructor() {}\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SelectField } from \"../../../configurations/fields/select-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"select-field.component.html\",\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: SelectField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { TextAreaField } from \"../../../configurations/fields/text-area-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-area-field.component.html\",\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: TextAreaField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { TextField } from \"../../../configurations/fields/text-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-field.component.html\",\n styleUrls: [\"./text-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: TextField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Row } from \"../../../configurations/grid/row\";\n\n@Component({\n template: `\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n `,\n})\nexport class RowComponent implements OnInit {\n @Input()\n public id: string;\n @Input()\n public config: Row;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n constructor() {}\n\n public ngOnInit() {}\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Fieldset } from \"../../../configurations/structure/fieldset\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n selector: \"s-fieldset\",\n template: `\n <p-fieldset [toggleable]=\"true\" (onBeforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (onAfterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\">\n <p-header>{{config.header}}</p-header>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </p-fieldset>\n `,\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Fieldset;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Section } from \"../../../configurations/structure/section\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n template: `\n <h3 *ngIf=\"config?.header\" class=\"sds-section-title\">{{config.header}}</h3>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n `,\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Section;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-field\",\n templateUrl: \"./dynamic-field.component.html\",\n})\nexport class DynamicFieldComponent {\n @Input()\n public id: string;\n\n @Input()\n public fields: FormField[];\n\n @Input()\n public form: FormGroup;\n\n @Input()\n public errorMessages?: any;\n\n @Input()\n public displayTimeInfoSign: number;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return this.isFunction(errorMessages)\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","export enum GridType {\n Row = \"Row\",\n}\n","export enum StructureType {\n Fieldset = \"Fieldset\",\n Section = \"Section\",\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { BignumberField } from \"../../../configurations/fields/bignumber-field\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: BignumberField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BooleanSwitchField } from \"../../../configurations/fields/boolean-switch-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-switch-field.component.html\",\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanSwitchField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\"\n\nimport { PasswordField } from \"../../../configurations/fields/password-field\";\n\n@Component({\n templateUrl: \"./password-field.component.html\",\n styleUrls: [\"./password-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, OnDestroy {\n @Input()\n public field: PasswordField;\n\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit(): void {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { SliderField } from \"../../../configurations/fields/slider-field\";\n\n@Component({\n templateUrl: \"slider-field.component.html\",\n styleUrls: [\"./slider-field.component.scss\"]\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: SliderField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n\n this.onChange.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n\n const values = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n\n this.formControl.setValue(this.field.defaultValue ?? values);\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n\n}\n","import { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/number-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { NumberFieldComponent } from \"./components/fields/number/number-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\n\nexport abstract class DynamicForm {\n group: FormGroup;\n errorMessages: any;\n abstract createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages }: { group: FormGroup; errorMessages: any }) {\n this.group = group;\n this.errorMessages = errorMessages;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField;\n errorMessages: any;\n\n constructor({ group, field, errorMessages }: { group: FormGroup; field: FormField; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.field = field;\n\n this.setFieldPropertiesByType();\n }\n\n public setFieldPropertiesByType() {\n if (this.field.type === FieldType.Integer || this.field.type === FieldType.Double) {\n this.field.numberLocaleOptions.currencySymbol = \"\";\n }\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.field = this.field;\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n component.instance.errorMessages = this.errorMessages;\n this.setVariablesByType(component);\n return component;\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.field = this.field;\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent(): any {\n switch (this.field.type) {\n case FieldType.Autocomplete:\n return AutocompleteFieldComponent;\n case FieldType.Binary:\n case FieldType.String:\n return TextFieldComponent;\n case FieldType.Boolean:\n if (this.field.representedBy === \"switch\") {\n return BooleanSwitchFieldComponent;\n }\n return BooleanFieldComponent;\n case FieldType.Chips:\n return ChipsFieldComponent;\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return CalendarFieldComponent;\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double:\n return BignumberFieldComponent;\n case FieldType.Enum:\n return SelectFieldComponent;\n case FieldType.Lookup:\n return LookupFieldComponent;\n case FieldType.Money:\n return CurrencyFieldComponent;\n case FieldType.Radio:\n return RadioButtonComponent;\n case FieldType.Text:\n return TextAreaFieldComponent;\n case FieldType.Password:\n return PasswordFieldComponent;\n case FieldType.Blob:\n return FileUploadComponent;\n case FieldType.Slider:\n return SliderFieldComponent;\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n group: FormGroup;\n config: Structure;\n errorMessages: any;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Structure; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case StructureType.Fieldset:\n return FieldsetComponent;\n case StructureType.Section:\n return SectionComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n group: FormGroup;\n config: Grid;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Grid; errorMessages: any }) {\n super({ group, errorMessages });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case GridType.Row:\n return RowComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnInit, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from \"./dynamic-form\";\n\n@Directive({ selector: \"[sDynamicForm]\" })\nexport class DynamicFormDirective implements OnInit, OnChanges {\n private id: string;\n private config: Structure | FormField | Grid;\n private group: FormGroup;\n private errorMessages: FormGroup;\n private directiveConfig: DynamicForm;\n\n @Input()\n set sDynamicForm(context: { id: string; config: FormField; structure: Structure; group: FormGroup; errorMessages: any }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n @Input(\"sDynamicFormDisplayTimeInfoSign\")\n public displayTimeInfoSign: number;\n\n public component: ComponentRef<any>;\n\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef) {}\n\n public ngOnInit() {\n if (this.isField()) {\n if (!((this.config as FormField).id) && this.id) {\n (this.config as FormField).id = this.id + \"-\" + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Grid,\n errorMessages: this.errorMessages,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n\n this.component = this.directiveConfig.createComponent(this.resolver, this.container);\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public isField() {\n return FieldType[this.config.type];\n }\n\n public isStructure() {\n return StructureType[this.config.type];\n }\n\n public isGrid() {\n return GridType[this.config.type];\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { debounceTime, repeat, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[sLongPress]\",\n})\nexport class LongPressDirective implements OnInit, OnDestroy {\n @Input()\n public sLongPressDelay = 500;\n\n @Output()\n public sLongPress = new EventEmitter<MouseEvent>();\n\n public mouseUp = new Subject<MouseEvent>();\n public mouseDown = new Subject<MouseEvent>();\n public ngUnsubscribe = new Subject();\n\n @HostListener(\"mouseup\", [\"$event\"])\n @HostListener(\"touchend\", [\"$event\"])\n public onMouseUp(event: MouseEvent) {\n this.mouseUp.next(event);\n }\n\n @HostListener(\"mousedown\", [\"$event\"])\n @HostListener(\"touchstart\", [\"$event\"])\n public onMouseDown(event: MouseEvent) {\n this.mouseDown.next(event);\n }\n\n public ngOnInit() {\n this.mouseDown\n .pipe(\n debounceTime(this.sLongPressDelay),\n takeUntil(this.mouseUp),\n repeat(),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(event => this.sLongPress.emit(event));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[sDoubleClick]'\n})\nexport class DoubleClickDirective {\n\n @Output() public onDoubleClick: EventEmitter<PointerEvent> = new EventEmitter();\n \n private _timeout: NodeJS.Timeout = null;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.onDoubleClick.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY)\n }\n \n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LongPressDirective } from \"./long-press.directive\";\nimport { DoubleClickDirective } from \"./double-click.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n LongPressDirective,\n DoubleClickDirective\n ],\n exports: [\n LongPressDirective,\n DoubleClickDirective\n ],\n})\nexport class MouseEventsModule {}\n","export enum PasswordStrengths {\n VeryWeak = \"Very_weak\",\n Weak = \"weak\",\n Medium = \"medium\",\n Strong = \"strong\",\n}","export enum PasswordStrengthPositions {\n Top = \"top\",\n Right = \"right\",\n Left = \"left\",\n}","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { PasswordStrengths, PasswordStrengthPositions } from \"./models/index\";\n\n@Component({\n templateUrl: \"./password-strength.component.html\",\n styleUrls: [\"./password-strength.component.scss\"],\n})\nexport class PasswordStrengthComponent implements OnInit {\n @Input()\n public weakTitle = \"Fraca\";\n\n @Input()\n public mediumTitle = \"Médio\";\n\n @Input()\n public strongTitle = \"Forte\";\n\n @Input()\n public description: string;\n\n public title: string;\n public position = PasswordStrengthPositions.Right;\n public left = 0;\n public top = 0;\n public visible = false;\n\n public ngOnInit(): void {\n this.title = this.weakTitle;\n }\n\n public setPasswordStrengthPosition() {\n const passwordStrength = document.querySelector(\".password-strength\");\n\n switch (this.position) {\n case PasswordStrengthPositions.Top:\n passwordStrength.classList.add(\"password-strength--top\");\n break;\n case PasswordStrengthPositions.Right:\n passwordStrength.classList.add(\"password-strength--right\");\n break;\n case PasswordStrengthPositions.Left:\n passwordStrength.classList.add(\"password-strength--left\");\n break;\n }\n }\n\n public updateIndicators(passwordStrength: PasswordStrengths) {\n const strengthIndicator1 = document.querySelector(\"#strength-indicator-1\");\n const strengthIndicator2 = document.querySelector(\"#strength-indicator-2\");\n const strengthIndicator3 = document.querySelector(\"#strength-indicator-3\");\n\n const onIndicators = [];\n const indicators = [\n strengthIndicator1,\n strengthIndicator2,\n strengthIndicator3,\n ];\n\n let strengthClass: string;\n\n switch (passwordStrength) {\n case PasswordStrengths.VeryWeak:\n this.title = this.weakTitle;\n break;\n case PasswordStrengths.Weak:\n this.title = this.weakTitle;\n strengthClass = \"strength-indicator--weak\";\n onIndicators.push(strengthIndicator1);\n break;\n case PasswordStrengths.Medium:\n this.title = this.mediumTitle;\n strengthClass = \"strength-indicator--medium\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n break;\n case PasswordStrengths.Strong:\n this.title = this.strongTitle;\n strengthClass = \"strength-indicator--strong\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n onIndicators.push(strengthIndicator3);\n break;\n }\n\n indicators.forEach(indicator => {\n indicator.classList.remove(\n \"strength-indicator--weak\",\n \"strength-indicator--medium\",\n \"strength-indicator--strong\",\n );\n });\n\n onIndicators.forEach(indicator => {\n indicator.classList.add(strengthClass);\n });\n }\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnInit,\n} from \"@angular/core\";\n\nimport { PasswordStrengthPositions, PasswordStrengths } from \"./models/index\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@Directive({\n selector: \"[sPasswordStrength]\",\n})\nexport class PasswordStrengthDirective implements OnInit {\n @Input(\"sPasswordStrength\")\n public enabled = true;\n\n @Input(\"psValidation\")\n public validation: (content: string) => PasswordStrengths;\n\n @Input(\"psPosition\")\n public position = PasswordStrengthPositions.Right;\n\n @Input(\"psWeakTitle\")\n public weakTitle: string;\n\n @Input(\"psMediumTitle\")\n public mediumTitle: string;\n\n @Input(\"psStrongTitle\")\n public strongTitle: string;\n\n @Input(\"psDescription\")\n public description: string;\n\n private componentRef: ComponentRef<any> = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n ) { }\n\n public ngOnInit() {\n this.validateProperties();\n }\n\n @HostListener(\"keyup\")\n @HostListener(\"focus\")\n public onFocus(): void {\n const content = this.elementRef.nativeElement.value ?? \"\";\n \n if (content) {\n this.createPasswordStrength();\n this.componentRef?.instance.updateIndicators(this.validation(content));\n } else {\n this.componentRef?.instance.updateIndicators(PasswordStrengths.VeryWeak);\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.destroyPasswordStrength();\n }\n\n private createPasswordStrength() {\n if (this.enabled && this.componentRef === null) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setPasswordStrengthComponentProperties();\n\n this.showPasswordStrength();\n }\n }\n\n private showPasswordStrength() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n }\n }\n\n private setPasswordStrengthComponentProperties() {\n if (this.componentRef != null) {\n this.componentRef.instance.position = this.position;\n this.componentRef.instance.weakTitle = this.weakTitle;\n this.componentRef.instance.mediumTitle = this.mediumTitle;\n this.componentRef.instance.strongTitle = this.strongTitle;\n this.componentRef.instance.description = this.description;\n\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const margin = 20;\n const elementRefHeight = bottom - top;\n const elementRefWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: PasswordStrengthPositions[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(PasswordStrengthPositions.Top)\n && invalidOptions.includes(PasswordStrengthPositions.Right)\n && invalidOptions.includes(PasswordStrengthPositions.Left)) {\n this.destroyPasswordStrength();\n throw new Error(\"No space to show password strength\");\n }\n\n switch (this.position) {\n case PasswordStrengthPositions.Top: {\n const topShift = top;\n const rightShift = document.body.clientWidth - right;\n const leftShift = left;\n\n if (topShift <= elementRefHeight + safeSpace || rightShift < 50 || leftShift < 50) {\n this.position = PasswordStrengthPositions.Right;\n invalidOptions.push(PasswordStrengthPositions.Top);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top - margin);\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Right: {\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Left;\n invalidOptions.push(PasswordStrengthPositions.Right);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(right + margin);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Left: {\n const leftShift = left;\n\n if (leftShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Top;\n invalidOptions.push(PasswordStrengthPositions.Left);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(left - margin);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private validateProperties() {\n this.validation = this.validation || this.defaultValidator;\n\n if (!this.description) {\n throw new Error(\"Description is required\");\n }\n }\n\n private destroyPasswordStrength(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private defaultValidator(content: string): PasswordStrengths {\n let points = 0;\n\n const regExpValidations = [\n new RegExp(\"(?=.*\\\\d)\"), // number\n new RegExp(\"(?=.*[a-z])\"), // lowercase\n new RegExp(\"(?=.*[A-Z])\"), // uppercase\n new RegExp(\"(?=.*[!@#$%&*.\\\\-=+^~])\"), // special character\n ];\n\n if (content.length >= 6) {\n points++;\n }\n\n regExpValidations.forEach(validation => {\n if (validation.test(content)) {\n points++;\n }\n });\n\n if (points < 1) {\n return PasswordStrengths.VeryWeak;\n } else if (points < 4) {\n return PasswordStrengths.Weak;\n } else if (points < 5) {\n return PasswordStrengths.Medium;\n } else {\n return PasswordStrengths.Strong;\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PasswordStrengthDirective } from \"./password-strength.directive\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n PasswordStrengthComponent,\n PasswordStrengthDirective,\n ],\n exports: [PasswordStrengthDirective],\n})\nexport class PasswordStrengthModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { HotkeyModule, HotkeysService } from \"angular2-hotkeys\";\n\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ButtonModule as PrimeButtonModule } from \"primeng/button\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { CheckboxModule } from \"primeng/checkbox\";\nimport { ChipsModule } from \"primeng/chips\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\nimport { MultiSelectModule } from \"primeng/multiselect\";\nimport { PanelModule } from \"primeng/panel\";\nimport { RadioButtonModule } from \"primeng/radiobutton\";\nimport { TableModule as PrimeNGTableModule } from \"primeng/table\";\nimport { SliderModule } from 'primeng/slider';\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { CalendarMaskModule } from \"../calendar-mask/calendar-mask.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { FileUploadModule } from \"../file-upload/file-upload.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { LocalizedNumberInputModule } from \"../localized-number-input/localized-number-input.module\";\nimport { MaskFormatterModule } from \"../mask/mask-formatter.module\";\nimport { NumberInputModule } from \"../number-input/number-input.module\";\nimport { BignumberInputModule } from \"../bignumber-input/number-input.module\";\nimport { TableHeaderCheckboxModule } from \"../table-header/table-header-checkox.module\";\nimport { TableModule } from \"../table/table.module\";\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { NumberFieldComponent } from \"./components/fields/number/number-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { LookupComponent } from \"./components/lookup/lookup.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\nimport { DynamicFieldComponent } from \"./components/dynamic-field/dynamic-field.component\";\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\nimport { DynamicFormDirective } from \"./dynamic-form.directive\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/number-field.component\";\nimport { MouseEventsModule } from \"../mouse-events/mouse-events.module\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { PasswordStrengthModule } from \"../password-strength/password-strength.module\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n InputTextModule,\n CheckboxModule,\n CalendarModule,\n InputMaskModule,\n DropdownModule,\n NumberInputModule,\n BignumberInputModule,\n LocalizedNumberInputModule,\n ControlErrorsModule,\n LocaleModule,\n AutoCompleteModule,\n MultiSelectModule,\n PrimeButtonModule,\n ButtonModule,\n PanelModule,\n DialogModule,\n RadioButtonModule,\n PrimeNGTableModule,\n EmptyStateModule,\n LoadingStateModule,\n HotkeyModule,\n ChipsModule,\n CalendarMaskModule,\n InputTextareaModule,\n RadioButtonModule,\n KeyFilterModule,\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n TableModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n ],\n declarations: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CurrencyFieldComponent,\n DynamicFormComponent,\n DynamicFieldComponent,\n DynamicFormDirective,\n FieldsetComponent,\n FileUploadComponent,\n LookupComponent,\n LookupFieldComponent,\n NumberFieldComponent,\n BignumberFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n TextAreaFieldComponent,\n TextFieldComponent,\n BooleanSwitchFieldComponent,\n PasswordFieldComponent,\n SliderFieldComponent,\n ],\n exports: [DynamicFormComponent, LookupComponent],\n entryComponents: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CurrencyFieldComponent,\n FieldsetComponent,\n FileUploadComponent,\n LookupFieldComponent,\n NumberFieldComponent,\n BignumberFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n TextAreaFieldComponent,\n TextFieldComponent,\n PasswordFieldComponent,\n BooleanSwitchFieldComponent,\n SliderFieldComponent,\n ],\n providers: [HotkeysService]\n})\nexport class DynamicFormModule {}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class CustomFieldsService {\n constructor(private http: HttpClient) {\n }\n\n public getCustomFields(domain: string, service: string, entity: string, endpoint: string): Observable<any> {\n const entityDto = { entityId: { domain_: domain, service_: service, id: entity } };\n return this.http.post(endpoint, entityDto);\n }\n\n public getFileLocationUrl(dto: {\n domain: string;\n service: string;\n entityName: string;\n field: string;\n fileName: string;\n }, endpoint: string): Observable<any> {\n return this.http.post(endpoint, dto);\n }\n\n public uploadTempFile(location: string, file: File) {\n return this.http.put(location, file, {\n reportProgress: true,\n observe: \"events\",\n headers: { \"Content-Type\": file.type }\n });\n }\n\n public requestAccess(objectId: string, endpoint: string) {\n return this.http.post(endpoint, { objectId });\n }\n\n public getFile(permanentUrl: string) {\n return this.http.get(permanentUrl, { responseType: \"blob\" });\n }\n}\n","import { HttpErrorResponse, HttpEventType } from \"@angular/common/http\";\nimport { Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, AfterViewInit, Optional, SimpleChange, SimpleChanges } from \"@angular/core\";\nimport {\n ControlContainer,\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup, NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n ValidatorFn,\n Validators\n} from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\nimport { BehaviorSubject, Observable, Subject, forkJoin, of, throwError } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\nimport { FieldType, FormField } from \"../dynamic-form/index\";\nimport { FileDto } from \"../file-upload/index\";\nimport { LocaleOptions } from \"../locale\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\n\nenum CustomFieldType {\n String = \"String\",\n Boolean = \"Boolean\",\n Integer = \"Integer\",\n Double = \"Double\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Time = \"Time\",\n Money = \"Money\",\n Blob = \"Blob\",\n Binary = \"Binary\",\n Any = \"Any\",\n Enum = \"Enum\"\n}\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-custom-fields\",\n templateUrl: \"./custom-fields.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n ],\n})\nexport class CustomFieldsComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator, OnChanges, AfterViewInit {\n @Input()\n public domain: string;\n @Input()\n public service: string;\n @Input()\n public entity: string;\n @Input()\n public invalidErrorLabel: string;\n @Input()\n public entityObject: any;\n @Input()\n public customFieldsEndpoint = \"platform/field_customization/queries/getEntity\";\n @Input()\n public fileLocationEndpoint = \"platform/field_customization/actions/requestUpload\";\n @Input()\n public requestAccessEndpoint = \"platform/field_customization/actions/requestAccess\";\n @Input()\n public requiredErrorMessage: string;\n @Input()\n public displayTimeInfoSign: number;\n @Input()\n public showFileUploadDate: boolean = false;\n @Input()\n public ready$: BehaviorSubject<boolean>;\n @Input()\n public disableFields: boolean;\n public fields: FormField[] = [];\n public formGroup: FormGroup;\n private ready = false;\n private onChange: any;\n private onTouched: any;\n private value: any;\n private ngUsubscribe: Subject<void> = new Subject();\n private uploadCanceled: boolean;\n private hasBlob: boolean;\n private hasUploaded: boolean;\n\n constructor(\n private customFieldsService: CustomFieldsService,\n private localeService: LocaleService,\n private sanitizer: DomSanitizer,\n private translateService: TranslateService,\n @Optional() private controlContainer: ControlContainer\n ) {\n }\n\n get parentForm(): FormGroup {\n return this.controlContainer.control as FormGroup;\n }\n\n get parentControl(): FormControl {\n return this.parentForm.get(\"custom\") as FormControl;\n }\n\n public ngOnInit() {\n if (!this.domain) throw new Error(\"You need to specify the custom-fields domain!\");\n if (!this.service) throw new Error(\"You need to specify the custom-fields service!\");\n if (!this.entity) throw new Error(\"You need to specify the custom-fields entity!\");\n\n this.formGroup = new FormGroup({});\n const observables = [this.getCustomFields(), this.localeService.get()];\n forkJoin(observables)\n .pipe(takeUntil(this.ngUsubscribe), finalize(() => {\n this.formGroup.markAsPristine();\n this.parentControl.markAsPristine();\n\n if (this.ready$)\n this.ready$.next(true);\n }))\n .subscribe((response: any[]) => {\n const [customFieldsResponse, localeOptions] = response;\n const defaults: any = {};\n defaults[CustomFieldType.String] = {};\n defaults[CustomFieldType.Boolean] = { defaultValue: false };\n defaults[CustomFieldType.Integer] = {};\n defaults[CustomFieldType.Double] = { defaultMask: \"\" };\n defaults[CustomFieldType.Money] = {};\n defaults[CustomFieldType.Date] = {};\n defaults[CustomFieldType.DateTime] = {};\n defaults[CustomFieldType.LocalDateTime] = {};\n defaults[CustomFieldType.Time] = {};\n defaults[CustomFieldType.Blob] = {};\n defaults[CustomFieldType.Enum] = {};\n defaults[CustomFieldType.Binary] = {};\n defaults[CustomFieldType.Any] = {};\n\n if (!customFieldsResponse || !customFieldsResponse.entity_) return;\n const { active, fields } = customFieldsResponse.entity_;\n if (!active) return;\n\n fields\n .filter((field: any) => field.customizable && field.customization && field.customization.active)\n .forEach((field: any) => {\n const formField = this.getFormField(field, localeOptions);\n const fieldType = field.type;\n\n if (field.type === CustomFieldType.Blob && this.value && this.value[formField.name])\n this.createBlobToFileUpload(formField);\n\n const { validationRegex } = field.customization;\n\n const asIsTypes = [\n CustomFieldType.Boolean,\n CustomFieldType.Money,\n CustomFieldType.Date,\n CustomFieldType.DateTime,\n CustomFieldType.LocalDateTime,\n CustomFieldType.Time\n ];\n\n const validators = [];\n if (validationRegex && !asIsTypes.includes(fieldType))\n validators.push(Validators.pattern(validationRegex));\n if (fieldType === CustomFieldType.Integer && !formField.mask) validators.push(Validators.pattern(/^\\-?\\d*$/));\n\n if (formField.required?.()) {\n validators.push(Validators.required);\n }\n\n const control = new FormControl(\n { value: defaults[fieldType].defaultValue, disabled: this.formGroup.disabled },\n validators\n );\n\n this.formGroup.addControl(formField.name, control);\n this.fields.push(formField);\n });\n\n this.createFieldCustomization(fields);\n this.formGroup.patchValue(this.parseValuesForFields(this.value));\n this.ready = true;\n });\n }\n\n public ngAfterViewInit(): void {\n this.enableOrDisableFields(this.disableFields);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.disableFields) {\n this.enableOrDisableFields(changes.disableFields.currentValue);\n }\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = fn;\n this.formGroup.valueChanges.subscribe(() => this.onChange(this.parseFieldsValues()));\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n if (this.ready) {\n const newValue = this.parseValuesForFields(value);\n this.formGroup.patchValue(newValue);\n this.value = newValue;\n this.createFilesIfSetFormValuesAfterInit();\n } else {\n this.formGroup.patchValue(value || {});\n this.value = value;\n }\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) this.formGroup.disable({ emitEvent: false });\n else this.formGroup.enable({ emitEvent: false });\n }\n\n public getCustomFields(): Observable<any> {\n if (this.entityObject && this.entityObject.entity_) {\n return of(this.entityObject);\n }\n return this.customFieldsService.getCustomFields(this.domain, this.service, this.entity, this.customFieldsEndpoint);\n }\n\n public validate() {\n const errors: any = {};\n Object.keys(this.formGroup.controls).forEach(field => {\n const { errors: controlErrors } = this.formGroup.get(field);\n if (controlErrors) errors[field] = controlErrors;\n });\n return errors;\n }\n\n private enableOrDisableFields(disabled: boolean): void {\n if(!this.formGroup) {\n return;\n }\n\n for(const controlName of Object.keys(this.formGroup.value)) {\n disabled ? this.formGroup.get(controlName).disable() : this.formGroup.get(controlName).enable();\n }\n }\n\n public cleanFields() {\n this.formGroup.reset();\n }\n\n\n private parseValuesForFields(values: any) {\n const parsedValues = { ...values };\n\n this.fields.forEach(field => {\n const { type, name } = field;\n const value = values && values[name];\n\n /**\n * Tratamento exclusivo para campos boolean que tem o status Empty\n * Essa condicional necessita estar antes do if (!value) return;\n * Pois ela tem um status que usa null no valor do campo radio boolean\n */\n if (type === FieldType.Boolean) {\n const isString = typeof value === \"string\";\n const notValid = !isString && typeof value !== \"boolean\";\n if (notValid) {\n parsedValues[name] = null;\n } else {\n // Condicional para campos que retornam string de boolen do backand\n if (isString) {\n parsedValues[name] = value === \"true\" ? true : false;\n } else {\n parsedValues[name] = value;\n }\n }\n }\n\n if (!value) return;\n\n switch (type) {\n case FieldType.Date:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.DateTime:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.LocalDateTime:\n parsedValues[name] = moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSS\").toDate();\n break;\n case FieldType.Time:\n parsedValues[name] = moment(value, \"HH:mm:ss\").toDate();\n break;\n }\n });\n\n return parsedValues;\n }\n\n /**\n * Algumas equipes só setam valor no formulário, após o carregamento da tela\n * Como é bem padrão isso, foi necessário criar esse método para gerar o file\n * após setar o valor no formulário\n */\n private createFilesIfSetFormValuesAfterInit() {\n if (!this.hasUploaded) {\n this.fields.filter((field: FormField) => field.type === FieldType.Blob).forEach(field => {\n if (this.formGroup.get(field.name).value) this.createBlobToFileUpload(field);\n });\n }\n }\n\n private parseFieldsValues() {\n const parsedValues: any = {};\n\n this.fields.forEach(field => {\n const { type, name, mask, scale } = field;\n let value = this.formGroup.get(name).value;\n\n if (value) {\n switch (type) {\n case FieldType.Number:\n if (mask) value = new BigNumber(value).toFixed(scale as number).toString();\n break;\n case FieldType.Date:\n value = moment(value).format(\"YYYY-MM-DD\");\n break;\n case FieldType.DateTime:\n value = moment(value).format();\n break;\n case FieldType.LocalDateTime:\n value = moment(value).format(\"YYYY-MM-DD[T]HH:mm:ss.SSS\");\n break;\n case FieldType.Time:\n value = moment(value).format(\"HH:mm:ss\");\n break;\n }\n }\n\n if (value !== null && !Number.isNaN(value)) {\n parsedValues[name] = value;\n } else if (this.isTypeNumberOrEnum(type)) {\n parsedValues[name] = field.multiple ? [] : null;\n }\n });\n\n if (this.hasBlob) parsedValues[\"fieldCustomization\"] = this.formGroup.get(\"fieldCustomization\").value;\n return parsedValues;\n }\n\n private isTypeNumberOrEnum(type: FieldType): boolean {\n const numberOrEnum = [\n FieldType.Number,\n FieldType.Enum\n ];\n return numberOrEnum.includes(type);\n }\n\n private getFormField(field: any, localeOptions: LocaleOptions): FormField {\n let parameters;\n\n switch (field.type) {\n case CustomFieldType.Blob:\n parameters = this.getBlobParameters();\n break;\n case CustomFieldType.Boolean:\n parameters = this.getBooleanParameters();\n break;\n case \"Enumeration\":\n case CustomFieldType.Enum:\n field.type = FieldType.Enum;\n parameters = this.getEnumParameters(field);\n break;\n case CustomFieldType.Money:\n parameters = {\n type: FieldType.Number,\n leftAddon: {\n label: localeOptions?.number?.currencySymbol ?? \"R$\",\n },\n };\n break;\n case CustomFieldType.Double:\n parameters = {\n type: FieldType.Number\n };\n break;\n case CustomFieldType.Integer:\n parameters = {\n type: FieldType.Number,\n scale: 0\n };\n break;\n default:\n parameters = {};\n break;\n }\n\n return new FormField({\n name: field.id,\n label: field.customization.label,\n tooltip: field.customization.tooltip,\n infoSign: field.customization.infoSign,\n type: field.type,\n mask: field.customization.mask,\n required: () => field.customization.mandatory,\n calendarOptions: localeOptions.calendar,\n currencyOptions: localeOptions.number,\n ...parameters,\n });\n }\n\n private getEnumParameters(field: any): object {\n return {\n showClear: true,\n multiple: field.customization.customEnumeration.multiple,\n options: field.customization.customEnumeration.values.map((e: any) => ({ label: e.value, value: e.key })),\n };\n }\n\n private getBooleanParameters(): object {\n return {\n optionsLabel: {\n true: this.getTranslateLabel(`true_label`),\n false: this.getTranslateLabel(`false_label`),\n empty: this.getTranslateLabel(`empty_label`),\n },\n };\n }\n\n private getBlobParameters(): object {\n return {\n size: {\n sm: 12,\n md: 12,\n lg: 12,\n xl: 12,\n },\n accept: \"image/*, application/*, text/*\",\n chooseLabel: this.getTranslateLabel(`choose_label`),\n removeLabel: this.getTranslateLabel(`remove_label`),\n cancelLabel: this.getTranslateLabel(`cancel_label`),\n successTooltip: this.getTranslateLabel(`success_tooltip`),\n multiple: false,\n onUploadFile: (event: { files: FileDto[] }, formfield: FormField) => {\n this.hasUploaded = true;\n this.uploadFile(event, formfield);\n },\n onRemoveFile: (event: { file: FileDto }, formfield: FormField) => {\n this.removeFile(event, formfield);\n },\n onCancelUpload: (event: number, formfield: FormField) => {\n this.cancelUpload(event, formfield);\n },\n onDownloadFile: (event: { index: number; anchor: ElementRef }, formfield: FormField) => {\n this.downloadFile(event, formfield);\n },\n showFileUploadDate: this.showFileUploadDate\n };\n }\n\n /**\n * É necessário criar o fieldCustomization quando há um Blob na entidade para gerar o\n * com os fields inseridos e deletados.\n */\n private createFieldCustomization(fields: any[]): void {\n this.hasBlob = !!fields.filter((field: any) => field.type === CustomFieldType.Blob).length;\n if (this.hasBlob) {\n this.formGroup.addControl(\n \"fieldCustomization\",\n new FormArray([\n new FormGroup({\n domain: new FormControl(this.domain),\n service: new FormControl(this.service),\n entity: new FormControl(this.entity),\n toDelete: new FormControl({ value: {}, disabled: false }),\n toInsert: new FormControl({ value: {}, disabled: false }),\n }),\n ])\n );\n }\n }\n\n private createBlobToFileUpload(field: FormField) {\n const objectId = this.value[field.name] ? this.value[field.name] : this.formGroup.get(field.name).value;\n const fileName = objectId.substring(objectId.lastIndexOf(\"/\") + 1);\n const file: Partial<FileDto> = { name: fileName, objectId, savedFile: true };\n field.files = [file as FileDto];\n }\n\n private downloadFile(event: { index: number; anchor: ElementRef }, field: FormField) {\n const { index, anchor } = event;\n const currentFile = field.files[index];\n if (currentFile.objectURL) {\n anchor.nativeElement.click();\n } else {\n this.customFieldsService\n .requestAccess(currentFile.objectId, this.requestAccessEndpoint)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((data: { fileName: string; uri: string }) => {\n const { fileName, uri } = data;\n this.customFieldsService\n .getFile(uri)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((blob: any) => {\n const newFile = <FileDto>new File([blob], fileName);\n newFile.objectURL = this.sanitizer.bypassSecurityTrustUrl(uri);\n anchor.nativeElement.setAttribute(\"href\", uri);\n newFile.objectId = currentFile.objectId;\n newFile.savedFile = true;\n field.files[index] = newFile;\n field.files = [...field.files];\n anchor.nativeElement.click();\n });\n });\n }\n }\n\n private uploadFile(event: { files: FileDto[] }, formField: any): void {\n const { files } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n\n // Se ocorrer um upload, já existindo um arquivo com upload feito. É necessário excluir o mesmo.\n if (field.files && field.files.length) {\n this.removeFile({ file: field.files[0] }, field);\n }\n field.files = files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (!file.savedFile && !file.progress) {\n file.isUploading = true;\n this.formGroup.get(field.name).setValidators(isUploading(file));\n this.formGroup.get(field.name).updateValueAndValidity();\n this.customFieldsService\n .getFileLocationUrl(\n {\n domain: this.domain,\n service: this.service,\n entityName: this.entity,\n field: field.name,\n fileName: file.name,\n },\n this.fileLocationEndpoint\n )\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i)))\n )\n .subscribe((data: any) => {\n const { location, version, objectId } = data;\n file.version = version;\n file.objectId = objectId;\n file[\"uploadSubscribe\"] = this.customFieldsService\n .uploadTempFile(location, file)\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i))),\n finalize(() => {\n file.isUploading = false;\n })\n )\n .subscribe((response: any) => {\n const { type } = response;\n if (!this.uploadCanceled) {\n if (type === HttpEventType.UploadProgress)\n file.progress = Math.round(response.loaded / response.total) * 100;\n else if (type === HttpEventType.Response) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\n\n const value = { objectId, name: file.name, version: file.version };\n const toInsert = this.formGroup.get(\"fieldCustomization\").value[0].toInsert;\n this.formGroup.get(\"fieldCustomization\").value[0].toInsert = {\n ...toInsert,\n [field.name]: value,\n };\n this.formGroup.get(field.name).setValue(`${file.objectId}/${file.name}`);\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).updateValueAndValidity();\n field.files = [file];\n }\n } else if (this.uploadCanceled && type === HttpEventType.Response) this.uploadCanceled = false;\n });\n field.files = [file];\n });\n }\n }\n }\n\n private removeFile(event: { file: FileDto }, formField: any): void {\n const { file } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files = [];\n if (file.objectId) {\n // Quando é um arquivo já salvo o objectId já é no formato \"objectId/name\"\n const value = file.savedFile ? `${file.objectId}` : `${file.objectId}/${file.name}`;\n const toDelete = this.formGroup.get(\"fieldCustomization\").value[0].toDelete;\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(\"fieldCustomization\").value[0].toDelete = {\n ...toDelete,\n [field.name]: [...(toDelete[field.name] || []), value],\n };\n }\n\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private cancelUpload(index: number, formField: any): void {\n this.uploadCanceled = true;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files[index][\"uploadSubscribe\"].unsubscribe();\n field.files = [];\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private defaltCatchError(field: FormField, err: HttpErrorResponse, index: number): Observable<never> {\n const { files } = field;\n files[index].error = err;\n files[index].isUploading = false;\n field.files = [...files];\n this.formGroup.get(field.name).setValidators([errorOnUpload(files[index])]);\n this.formGroup.get(field.name).updateValueAndValidity();\n return throwError(new Error(\"error in upload file. Details: \" + err.message));\n }\n\n private getTranslateLabel(label: string): string {\n return this.translateService.instant(`${this.domain}.${this.service}.${label}`);\n }\n}\n\nfunction isUploading(file: FileDto): ValidatorFn {\n return () => (file.isUploading ? { isUploading: true } : null);\n}\n\nfunction errorOnUpload(file: FileDto): ValidatorFn {\n return () => (file.error ? { uploadError: true } : null);\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicFormModule } from \"../dynamic-form/index\";\nimport { LocaleModule } from \"../locale/index\";\nimport { CustomFieldsComponent } from \"./custom-fields.component\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n LocaleModule,\n DynamicFormModule,\n TranslateModule\n ],\n declarations: [CustomFieldsComponent],\n exports: [CustomFieldsComponent],\n providers: [CustomFieldsService, TranslateService]\n})\nexport class CustomFieldsModule {\n}\n","import { AfterViewInit, Directive, Input } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Directive({\n selector: \"p-table[sEditableOverlay]\",\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n @Input()\n public table: any;\n\n constructor() {}\n\n ngAfterViewInit() {\n this.table.bindDocumentEditListener = this.bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"ng-trigger-overlayAnimation\"));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"s-lookup\"));\n }\n\n private bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, \"ui-editing-cell\");\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener(\"click\", this.table.documentEditListener);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { EditableOverlayDirective } from \"./editable-overlay.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","import * as moment_ from \"moment\";\n\nconst moment = moment_;\n\nconst YEAR = \"year\";\nconst MONTH = \"month\";\nconst DAY = \"day\";\nconst HOUR = \"hour\";\nconst MINUTE = \"minute\";\nconst SECOND = \"second\";\nconst MILLISECOND = \"millisecond\";\n\nexport abstract class DateUtils {\n public static parse(date: Date | string): Date {\n return moment(date).toDate();\n }\n\n public static toString(date: Date, with_time = false) {\n let result = with_time ? moment(date, \"YYYY-MM-DD hh:mm:ss.SSS\") : moment(date, \"YYYY-MM-DD\");\n\n return result.toString();\n }\n\n public static format(date: any, formatString: string = \"YYYY-MM-DD HH:mm:ss.SSS\", lang: string = \"en\"): string {\n const monthName = moment(date)\n .locale(lang)\n .startOf(\"month\")\n .format(\"MMMM\");\n \n const monthNameCapitalized = monthName.charAt(0).toUpperCase() + monthName.slice(1);\n const dateToFormat = moment(date);\n const format_map = {\n YYYY: dateToFormat.format(\"YYYY\"),\n MM: dateToFormat.format(\"MM\"),\n DD: dateToFormat.format(\"DD\"),\n HH: dateToFormat.format(\"HH\"),\n mm: dateToFormat.format(\"mm\"),\n ss: dateToFormat.format(\"ss\"),\n SSS: dateToFormat.format(\"SSS\"),\n D: dateToFormat.format(\"D\"),\n MMMM: monthNameCapitalized,\n MMM: monthNameCapitalized,\n };\n\n let str = formatString;\n const formattedValues: any[] = [];\n\n Object.keys(format_map)\n .sort((a, b) => b.length - a.length)\n .forEach(key => {\n if (str.includes(key)) {\n str = str.replace(key, `$${formattedValues.length}`);\n formattedValues.push(format_map[key]);\n }\n });\n\n formattedValues.forEach((value, i) => {\n str = str.replace(`$${i}`, value);\n });\n\n return str;\n }\n\n public static diff(fistDate: Date, secondDate: Date, scale: string) {\n const milliseconds = moment(fistDate).diff(secondDate, MILLISECOND);\n const seconds = moment(fistDate).diff(secondDate, SECOND);\n const minutes = moment(fistDate).diff(secondDate, MINUTE);\n const hours = moment(fistDate).diff(secondDate, HOUR);\n const days = moment(fistDate).diff(secondDate, DAY);\n const months = moment(fistDate).diff(secondDate, MONTH);\n const years = moment(fistDate).diff(secondDate, YEAR);\n \n if (!scale.endsWith(\"s\")) {\n scale += \"s\";\n }\n \n return Math.floor(\n {\n milliseconds,\n seconds,\n minutes,\n hours,\n days,\n months,\n years,\n }[scale]\n );\n }\n\n public static today(): Date {\n const dateStr = moment().format(\"YYY-MM-DD\");\n return new Date(dateStr);\n }\n\n public static now(): Date {\n return moment().toDate();\n }\n\n public static add(date: Date, quantity: any, scale: any): Date {\n return moment(date).add(quantity, scale).toDate();\n }\n\n public static startOf(date: Date, scale: string): Date {\n const scores = {\n [YEAR]: 6,\n [MONTH]: 5,\n [DAY]: 4,\n [HOUR]: 3,\n [MINUTE]: 2,\n [SECOND]: 1,\n [MILLISECOND]: 0,\n };\n\n function shouldReset(_scale: any) {\n const max_score = scores[scale];\n return scores[_scale] <= max_score;\n }\n\n const vals: any = [\n date.getFullYear(),\n shouldReset(YEAR) ? 0 : date.getMonth(),\n shouldReset(MONTH) ? 1 : date.getDate(),\n shouldReset(DAY) ? 0 : date.getHours(),\n shouldReset(HOUR) ? 0 : date.getMinutes(),\n shouldReset(MINUTE) ? 0 : date.getSeconds(),\n shouldReset(SECOND) ? 0 : date.getMilliseconds(),\n ];\n\n return new Date(vals[0], vals[1], vals[2], vals[3], vals[4], vals[5], vals[6]);\n }\n\n public static clone(date: Date): Date {\n return moment(date).toDate();\n }\n\n public static getDateValues(date: Date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n }\n\n public static getDaysInMonth(date: Date) {\n return moment(date, \"YYYY-MM\").daysInMonth();\n }\n}\n","\n\nexport const $ = (expr: any, con: any) => {\n return typeof expr === 'string'\n ? (con || document).querySelector(expr)\n : expr || null;\n}\n\nexport const createSVG = (tag: any, attrs: any) => {\n const elem = document.createElementNS(\"http://www.w3.org/2000/svg\", tag);\n for (let attr in attrs) {\n if (attr === \"append_to\") {\n const parent = attrs.append_to;\n parent.appendChild(elem);\n } else if (attr === \"innerHTML\") {\n elem.innerHTML = attrs.innerHTML;\n } else {\n elem.setAttribute(attr, attrs[attr]);\n }\n }\n return elem;\n}\n\nexport const animateSVG = (svgElement: any, attr: any, from: any, to: any) => {\n const animatedSvgElement = getAnimationElement(svgElement, attr, from, to);\n\n if (animatedSvgElement === svgElement) {\n // triggered 2nd time programmatically\n // trigger artificial click event\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"click\", true, true);\n // event.eventName = 'click'; TODO: Ver porque esta propriedade não existe\n animatedSvgElement.dispatchEvent(event);\n }\n}\n\nconst getAnimationElement = (svgElement: any, attr: any, from: any, to: any, dur = \"0.4s\", begin = \"0.1s\") => {\n const animEl = svgElement.querySelector(\"animate\");\n if (animEl) {\n $.attr(animEl, {\n attributeName: attr,\n from,\n to,\n dur,\n begin: \"click + \" + begin, // artificial click\n }, null);\n return svgElement;\n }\n\n const animateElement = createSVG(\"animate\", {\n attributeName: attr,\n from,\n to,\n dur,\n begin,\n calcMode: \"spline\",\n values: from + \";\" + to,\n keyTimes: \"0; 1\",\n keySplines: cubic_bezier(\"ease-out\"),\n });\n svgElement.appendChild(animateElement);\n\n return svgElement;\n}\n\nconst cubic_bezier = (name: any) => {\n return {\n ease: \".25 .1 .25 1\",\n linear: \"0 0 1 1\",\n \"ease-in\": \".42 0 1 1\",\n \"ease-out\": \"0 0 .58 1\",\n \"ease-in-out\": \".42 0 .58 1\",\n }[name];\n}\n\n$.on = (element: any, event: any, selector: any, callback: any) => {\n if (!callback) {\n callback = selector;\n $.bind(element, event, callback);\n } else {\n $.delegate(element, event, selector, callback);\n }\n};\n\n$.off = (element: any, event: any, handler: any) => {\n element.removeEventListener(event, handler);\n};\n\n$.bind = (element: any, event: any, callback: any) => {\n event.split(/\\s+/).forEach(function (event: any) {\n element.addEventListener(event, callback);\n });\n};\n\n$.delegate = (element: any, event: any, selector: any, callback: any) => {\n element.addEventListener(event, function (e: any) {\n const delegatedTarget = e.target.closest(selector);\n if (delegatedTarget) {\n e.delegatedTarget = delegatedTarget;\n callback.call(this, e, delegatedTarget);\n }\n });\n};\n\n$.closest = (selector: any, element: any) => {\n if (!element) { \n return null;\n }\n\n if (element.matches(selector)) {\n return element;\n }\n\n // TODO: Corrigir este problema\n // return $.closest(selector, element.parentNode);\n};\n\n$.attr = (element: any, attr: any, value: any) => {\n if (!value && typeof attr === \"string\") {\n return element.getAttribute(attr);\n }\n\n if (typeof attr === \"object\") {\n for (let key in attr) {\n $.attr(element, key, attr[key]);\n }\n return;\n }\n\n element.setAttribute(attr, value);\n};\n","export enum ViewMode {\n Hour = \"hour\",\n QuarterDay = \"quarterDay\",\n HalfDay = \"halfDay\",\n Day = \"day\",\n Week = \"week\",\n Month = \"month\",\n Year = \"year\",\n}\n","import { DateUtils } from './utils/date-utils';\nimport { $, createSVG, animateSVG } from './utils/svg-utils';\nimport { ViewMode } from \"../../models/view-mode\";\n\nimport { Gantt } from \"./gantt\";\nimport { EnrichedTask } from \"../../models/task\";\nimport { Arrow } from \"./arrow\";\n\nexport class Bar {\n private _actionCompleted: boolean;\n private _gantt: Gantt;\n private _invalid: boolean;\n private _height: number;\n private _x: number;\n private _y: number;\n private _cornerRadius: number;\n private _duration: number;\n private _width: number;\n private _barGroup: any;\n\n private _arrows: Arrow[];\n private _group: any;\n private _task: EnrichedTask;\n private _element: any;\n\n private _isPopUpOpen = false;\n\n public get arrows(): Arrow[] {\n return this._arrows;\n }\n\n public set arrows(arrows: Arrow[]) {\n this._arrows = arrows;\n }\n\n public get task(): EnrichedTask {\n return this._task;\n }\n\n public get element() {\n return this._element;\n }\n\n public get group() {\n return this._group;\n }\n\n constructor(gantt: any, task: any) {\n this._setDefaults(gantt, task);\n this._prepare();\n this._draw();\n this._bind();\n }\n\n public updateBarPosition({ x, width }: any): void {\n const bar = this.element;\n if (x) {\n // get all x values of parent task\n const xs = this.task.dependencies.map((dep: any) => {\n return this._gantt.get_bar(dep).element.getX();\n });\n // child task must not go before parent\n const valid_x = xs.reduce((prev: any, curr: any) => {\n return x >= curr;\n }, x);\n if (!valid_x) {\n width = null;\n return;\n }\n this._updateAttr(bar, \"x\", x);\n }\n if (width && width >= this._gantt.options.columnWidth) {\n this._updateAttr(bar, \"width\", width);\n }\n this._updateLabelPosition();\n this._updateArrowPosition();\n }\n\n public dateChanged(): void {\n let changed = false;\n const { newStartDate, newEndDate } = this._computeStartEndDate();\n\n if (this.task.start !== newStartDate) {\n changed = true;\n this.task.start = newStartDate;\n }\n\n if (this.task.end !== newEndDate) {\n changed = true;\n this.task.end = newEndDate;\n }\n\n if (changed) {\n this._gantt.trigger_event(\"onDateChange\", [\n this.task,\n newStartDate,\n DateUtils.add(newEndDate, -1, \"second\"),\n ]);\n };\n }\n\n public setActionCompleted(): void {\n this._actionCompleted = true;\n setTimeout(() => {\n this._actionCompleted = false;\n }, 1000);\n }\n\n private _setDefaults(gantt: any, task: any) {\n this._actionCompleted = false;\n this._gantt = gantt;\n this._task = task;\n }\n\n private _prepare() {\n this._prepareValues();\n this._prepareHelpers();\n }\n\n private _prepareValues(): void {\n this._invalid = this.task.invalid;\n this._height = this._gantt.options.barHeight;\n this._x = this._computeX();\n this._y = this._computeY();\n this._cornerRadius = this._gantt.options.barCornerRadius;\n this._duration = DateUtils.diff(this.task.end, this.task.start, \"minute\") / this._gantt.options.step / 60.0;\n this._width = this._gantt.options.columnWidth * this._duration;\n this._group = createSVG(\"g\", {\n class: \"bar-wrapper \" + (this.task.custom_class || \"\"),\n \"data-id\": this.task.id,\n });\n this._barGroup = createSVG(\"g\", {\n class: \"bar-group\",\n append_to: this.group,\n });\n }\n\n private _prepareHelpers(): void {\n (SVGElement.prototype as any).getX = function () {\n return +this.getAttribute(\"x\");\n };\n (SVGElement.prototype as any).getY = function () {\n return +this.getAttribute(\"y\");\n };\n (SVGElement.prototype as any).getWidth = function () {\n return +this.getAttribute(\"width\");\n };\n (SVGElement.prototype as any).getHeight = function () {\n return +this.getAttribute(\"height\");\n };\n (SVGElement.prototype as any).getEndX = function () {\n return this.getX() + this.getWidth();\n };\n }\n\n private _draw(): void {\n this._drawBar();\n this._drawLabel();\n }\n\n private _drawBar(): void {\n this._element = createSVG(\"rect\", {\n x: this._x,\n y: this._y,\n width: this._width,\n height: this._height,\n rx: this._cornerRadius,\n ry: this._cornerRadius,\n class: \"bar\",\n append_to: this._barGroup,\n fill: this.task.color,\n });\n\n animateSVG(this.element, \"width\", 0, this._width);\n\n if (this._invalid) {\n this.element.classList.add(\"bar-invalid\");\n }\n }\n\n private _drawLabel(): void {\n createSVG(\"text\", {\n x: this._x + this._width / 2,\n y: this._y + this._height / 2,\n innerHTML: this.task.showTaskName ? this.task.name : \"\",\n class: \"bar-label\",\n append_to: this._barGroup,\n });\n // labels get BBox in the next tick\n requestAnimationFrame(() => this._updateLabelPosition());\n }\n\n private _bind(): void {\n if (!this._invalid) {\n this._setupClickEvent();\n }\n }\n\n private _setupClickEvent(): void {\n //TODO\n\n if(this._gantt.options.hasPopup) {\n $.on(this.group, \"focus \" + this._gantt.options.popupTrigger, (e: any) => {\n // just finished a move action, wait for a few seconds\n if (!this._actionCompleted) {\n this._showPopup();\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n }\n }, null);\n\n $.on(this.group, \"dblclick\", (e: any) => {\n // just finished a move action, wait for a few seconds\n\n if (!this._actionCompleted) {\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n } else {\n $.on(this.group, \"mouseenter\", (e: any) => {\n if(!this._isPopUpOpen) {\n this._showPopup({\n x: e.clientX,\n y: this.group.getBoundingClientRect().top + 30,\n position: 'middle'\n });\n this._isPopUpOpen = true;\n }\n }, null);\n\n $.on(this.group, \"mouseleave\", (e: any) => {\n this._gantt.hide_popup();\n this._isPopUpOpen = false;\n }, null);\n\n\n $.on(this.group, \"focus click\", (e: any) => {\n if (!this._actionCompleted) {\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n }\n }\n\n private _showPopup(args?: any) {\n if (this._gantt.bar_being_dragged) {\n return;\n }\n\n const subtitle: any = {};\n\n if (!this._gantt.options.showOnlyHours) {\n subtitle.startDate = DateUtils.format(\n this.task.start,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n subtitle.endDate = DateUtils.format(\n this.task.end,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n }\n\n if (!this._gantt.options.showOnlyDays) {\n subtitle.startHour = DateUtils.format(\n this.task.start,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n subtitle.endHour = DateUtils.format(\n this.task.end,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n }\n\n this._gantt.show_popup({\n target_element: this.element,\n title: this.task.name,\n subtitle: subtitle,\n task: this.task,\n ...args\n });\n }\n\n private _computeStartEndDate(): { newStartDate: Date, newEndDate: Date } {\n const bar = this.element;\n const xInUnits = bar.getX() / this._gantt.options.columnWidth;\n const newStartDate = DateUtils.add(\n this._gantt.minDate,\n xInUnits * this._gantt.options.step,\n \"hour\"\n );\n const width_in_units = bar.getWidth() / this._gantt.options.columnWidth;\n const newEndDate = DateUtils.add(\n newStartDate,\n width_in_units * this._gantt.options.step,\n \"hour\"\n );\n\n return { newStartDate, newEndDate };\n }\n\n private _computeX() {\n const { step, columnWidth } = this._gantt.options;\n\n let x;\n if (this._gantt.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"minutes\");\n x = (diff / step) * (columnWidth / 60);\n } else {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"hour\");\n x = (diff / step) * (columnWidth);\n }\n\n return x;\n }\n\n private _computeY() {\n return (\n this._gantt.options.headerHeight +\n this._gantt.options.padding +\n this.task._index * (this._height + this._gantt.options.padding)\n );\n }\n\n private _updateAttr(element: any, attr: any, value: any) {\n value = +value;\n if (!isNaN(value)) {\n element.setAttribute(attr, value);\n }\n return element;\n }\n\n private _updateLabelPosition(): void {\n const bar = this.element,\n label = this.group.querySelector(\".bar-label\");\n\n if (label.getBBox().width > bar.getWidth()) {\n label.classList.add(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() + 5);\n } else {\n label.classList.remove(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() / 2);\n }\n }\n\n private _updateArrowPosition(): void {\n this._arrows = this._arrows || [];\n for (let arrow of this._arrows) {\n arrow.update();\n }\n }\n}\n","export class Popup {\n private parent: any;\n private customHtml: any;\n private title: any;\n private startDate: any;\n private startHour: any;\n private endDate: any;\n private endHour: any;\n\n private pointer: any;\n\n constructor(parent: any, customHtml: any) {\n this.parent = parent;\n this.customHtml = customHtml;\n this.make();\n }\n\n public show(options: any) {\n if (!options.target_element) {\n throw new Error(\"target_element is required to show popup\");\n }\n if (!options.position) {\n options.position = \"left\";\n }\n const target_element = options.target_element;\n this.parent.style.display = 'block';\n\n if (this.customHtml) {\n let html = this.customHtml(options.task);\n html += '<div class=\"pointer\"></div>';\n this.parent.innerHTML = html;\n this.pointer = this.parent.querySelector(\".pointer\");\n } else {\n // set data\n this.title.innerHTML = options.title;\n this.startDate.innerHTML = options.subtitle.startDate ?? '';\n this.startHour.innerHTML = options.subtitle.startHour ?? '';\n this.endDate.innerHTML = options.subtitle.endDate ?? '';\n this.endHour.innerHTML = options.subtitle.endHour ?? '';\n\n this.parent.style.width = this.parent.clientWidth + \"px\";\n }\n\n // set position\n let positionMeta;\n if (target_element instanceof HTMLElement) {\n positionMeta = target_element.getBoundingClientRect();\n } else if (target_element instanceof SVGElement) {\n positionMeta = options.target_element.getBBox();\n }\n\n if (options.position === 'middle') {\n this.parent.style.position = 'fixed';\n this.parent.style.top = options.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(180deg)\";\n this.pointer.style.top = \"-10px\";\n\n if ((options.x - 17) + this.parent.offsetWidth > window.innerWidth) {\n this.parent.style.left = (options.x - this.parent.offsetWidth + 17) + \"px\";\n this.pointer.style.right = \"16px\";\n this.pointer.style.left = \"auto\";\n\n } else {\n this.parent.style.left = (options.x - 17) + \"px\";\n this.pointer.style.left = \"16px\";\n this.pointer.style.right = \"auto\";\n }\n\n } else if (options.position === 'left') {\n this.parent.style.left = positionMeta.x + (positionMeta.width + 10) + \"px\";\n this.parent.style.top = positionMeta.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(90deg)\";\n this.pointer.style.left = \"-7px\";\n this.pointer.style.top = \"2px\";\n }\n\n // show\n this.parent.style.opacity = 1;\n }\n\n private make() {\n this.parent.innerHTML = `\n <div class=\"popup\">\n <div class=\"wrp-title\">\n <span class=\"title\"></span>\n </div>\n <div class=\"wrp-subtitle\">\n <span class=\"icon fas fa-calendar-alt\"></span>\n <div style=\"margin-right: 15px\">\n <p class=\"startDate\"></p>\n <p class=\"startHour\"></p>\n </div>\n <div>\n <p class=\"endDate\"></p>\n <p class=\"endHour\"></p>\n </div>\n </div>\n <div class=\"pointer\"></div>\n </div>\n `;\n\n this.hide();\n\n this.title = this.parent.querySelector(\".title\");\n this.startDate = this.parent.querySelector(\".startDate\");\n this.startHour = this.parent.querySelector(\".startHour\");\n this.endDate = this.parent.querySelector(\".endDate\");\n this.endHour = this.parent.querySelector(\".endHour\");\n\n this.pointer = this.parent.querySelector(\".pointer\");\n }\n\n private hide() {\n this.parent.style.opacity = 0;\n this.parent.style.display = 'none';\n this.parent.style.left = 0;\n }\n}\n","import { createSVG } from './utils/svg-utils';\nimport { Gantt } from \"./gantt\";\nimport { Bar } from \"./bar\";\n\nexport class Arrow {\n private _gantt: Gantt;\n private _fromTask: Bar;\n private _toTask: Bar;\n private _path: any;\n private _element: any;\n\n constructor(gantt: Gantt, fromTask: Bar, toTask: Bar) {\n this._gantt = gantt;\n this._fromTask = fromTask;\n this._toTask = toTask;\n\n this.calculatePath();\n this.draw();\n }\n\n public get fromTask(): Bar {\n return this._fromTask;\n }\n\n public get toTask(): Bar {\n return this._toTask;\n }\n\n public get element() {\n return this._element;\n }\n\n public update() {\n this.calculatePath();\n this._element.setAttribute(\"d\", this._path);\n }\n\n private calculatePath() {\n let startX = this.fromTask.element.getX() + this.fromTask.element.getWidth() / 2;\n\n const condition = () =>\n this.toTask.element.getX() < startX + this._gantt.options.padding &&\n startX > this.fromTask.element.getX() + this._gantt.options.padding;\n\n while (condition()) {\n startX -= 10;\n }\n\n const startY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.fromTask.task._index +\n this._gantt.options.padding;\n const endX = this.toTask.element.getX() - this._gantt.options.padding / 2;\n const endY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight / 2 +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.toTask.task._index +\n this._gantt.options.padding;\n const fromIsBelowTo = this.fromTask.task._index > this.toTask.task._index;\n const curve = this._gantt.options.arrowCurve;\n const clockwise = fromIsBelowTo ? 1 : 0;\n const curveY = fromIsBelowTo ? -curve : curve;\n const offset = fromIsBelowTo\n ? endY + this._gantt.options.arrowCurve\n : endY - this._gantt.options.arrowCurve;\n\n this._path = `\n M ${startX} ${startY}\n V ${offset}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n\n if (this.toTask.element.getX() < this.fromTask.element.getX() + this._gantt.options.padding) {\n const down1 = this._gantt.options.padding / 2 - curve;\n const down2 = this.toTask.element.getY() + this.toTask.element.getHeight() / 2 - curveY;\n const left = this.toTask.element.getX() - this._gantt.options.padding;\n\n this._path = `\n M ${startX} ${startY}\n v ${down1}\n a ${curve} ${curve} 0 0 1 -${curve} ${curve}\n H ${left}\n a ${curve} ${curve} 0 0 ${clockwise} -${curve} ${curveY}\n V ${down2}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n }\n }\n\n private draw() {\n this._element = createSVG(\"path\", {\n d: this._path,\n \"data-from\": this.fromTask.task.id,\n \"data-to\": this.toTask.task.id,\n });\n }\n}\n","import { Options } from \"../../models/options\";\nimport { ViewMode } from \"../../models/view-mode\";\n\nexport const defaultOptions: Options = {\n headerHeight: 94,\n columnWidth: 30,\n step: 24,\n barHeight: 20,\n barCornerRadius: 0,\n arrowCurve: 4,\n padding: 24,\n viewMode: ViewMode.Day,\n dateFormat: \"YYYY-MM-DD\",\n popupTrigger: \"click\",\n customPopupHtml: null,\n language: \"en\",\n allowMovement: true,\n hasPopup: true,\n showOnlyHours: false,\n showOnlyDays: false,\n};\n","import { DateUtils } from \"./utils/date-utils\";\nimport { $, createSVG } from \"./utils/svg-utils\";\nimport { Bar } from \"./bar\";\nimport { Popup } from \"./popup\";\nimport { Arrow } from \"./arrow\";\nimport { Options } from \"../../models/options\";\nimport { defaultOptions } from \"./gantt-options\";\nimport { ViewMode } from \"../../models/view-mode\";\nimport { Task, EnrichedTask } from \"../../models\";\n\nexport class Gantt {\n public options: Options;\n public tasks: EnrichedTask[];\n public dependency_map: any;\n\n private _minDate: Date;\n private _maxDate: Date;\n private _realMinDate: Date;\n private _realMaxDate: Date;\n\n public dates: any;\n public layers: any;\n public bars: Bar[];\n public arrows: Arrow[];\n public bar_being_dragged: any;\n public $svg: any;\n public $container: HTMLDivElement;\n public popup_wrapper: HTMLDivElement;\n public popup: any;\n\n public get minDate(): Date {\n return this._minDate;\n }\n\n public get maxDate(): Date {\n return this._maxDate;\n }\n\n constructor(wrapper: any, tasks: Task[], options?: Options) {\n this.setup_options(options);\n this.setup_wrapper(wrapper);\n this.setup_tasks(tasks);\n // initialize with default view mode\n this.change_view_mode();\n this.bind_events();\n }\n\n private setup_wrapper(element: any) {\n let svg_element, wrapper_element;\n\n // CSS Selector is passed\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n // get the SVGElement\n if (element instanceof HTMLElement) {\n wrapper_element = element;\n svg_element = element.querySelector(\"svg\");\n } else if (element instanceof SVGElement) {\n svg_element = element;\n } else {\n throw new TypeError(\n \"Frappé Gantt only supports usage of a string CSS selector, HTML DOM element or SVG DOM element for the \\'element\\' parameter\"\n );\n }\n\n // svg element\n if (!svg_element) {\n // create it\n this.$svg = createSVG(\"svg\", {\n append_to: wrapper_element,\n class: \"gantt\",\n });\n } else {\n this.$svg = svg_element;\n this.$svg.classList.add(\"gantt\");\n }\n\n // wrapper element\n this.$container = document.createElement(\"div\");\n this.$container.classList.add(\"gantt-container\");\n if(this.options.containerWidth) {\n this.$container.style.width = this.options.containerWidth + 'px';\n }\n\n const parent_element = this.$svg.parentElement;\n parent_element.appendChild(this.$container);\n this.$container.appendChild(this.$svg);\n\n // popup wrapper\n this.popup_wrapper = document.createElement(\"div\");\n this.popup_wrapper.classList.add(\"popup-wrapper\");\n this.$container.appendChild(this.popup_wrapper);\n }\n\n private setup_options(options: any) {\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n public setup_tasks(tasks: any) {\n // prepare tasks\n this.tasks = tasks.map((task: any, i: any) => {\n //standard colors if needed\n task.color = task.color || '#7892A1';\n\n // convert to Date objects\n task._start = DateUtils.parse(task.start);\n task._end = DateUtils.parse(task.end);\n\n // make task invalid if duration too large\n if (DateUtils.diff(task._end, task._start, \"year\") > 10) {\n task.end = null;\n }\n\n // cache index\n task._index = i;\n\n if (typeof task._row_id === \"number\") {\n task._index = task._row_id;\n }\n\n // invalid dates\n if (!task.start && !task.end) {\n const today = DateUtils.today();\n task._start = today;\n task._end = DateUtils.add(today, 2, \"day\");\n }\n\n if (!task.start && task.end) {\n task._start = DateUtils.add(task._end, -2, 'day');\n }\n\n if (task.start && !task.end) {\n task._end = DateUtils.add(task._start, 2, \"day\");\n }\n\n // if hours is not set, assume the last day is full day\n // e.g: 2018-09-09 becomes 2018-09-09 23:59:59\n const task_end_values = DateUtils.getDateValues(task._end);\n if (task_end_values.slice(3).every((d) => d === 0)) {\n task._end = DateUtils.add(task._end, 24, \"hour\");\n }\n\n // invalid flag\n if (!task.start || !task.end) {\n task.invalid = true;\n }\n\n // dependencies\n if (typeof task.dependencies === \"string\" || !task.dependencies) {\n let deps = [];\n if (task.dependencies) {\n deps = task.dependencies\n .split(',')\n .map((d: any) => d.trim())\n .filter((d: any) => d);\n }\n task.dependencies = deps;\n }\n\n // uids\n if (!task.id) {\n task.id = generate_id(task);\n }\n\n return task;\n });\n\n this.setup_dependencies();\n }\n\n private setup_dependencies() {\n this.dependency_map = {};\n for (let t of this.tasks) {\n for (let d of t.dependencies) {\n this.dependency_map[d] = this.dependency_map[d] || [];\n this.dependency_map[d].push(t.id);\n }\n }\n }\n\n public refresh(tasks: Task[]) {\n this.setup_tasks(tasks);\n this.change_view_mode();\n }\n\n public change_view_mode(mode = this.options.viewMode) {\n this.setup_gantt_dates();\n this.update_view_scale(mode);\n this.setup_dates();\n this.render();\n // fire viewmode_change event\n this.trigger_event(\"onViewChange\", [mode]);\n }\n\n private update_view_scale(view_mode: any) {\n this.options.viewMode = view_mode;\n // this.isHourView = false;\n if (view_mode === ViewMode.Hour) {\n this.options.step = 24 / 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Day) {\n this.options.step = 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.HalfDay) {\n this.options.step = 24 / 2;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.QuarterDay) {\n this.options.step = 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Week) {\n this.options.step = 24 * 7;\n this.options.columnWidth = 140;\n } else if (view_mode === ViewMode.Month) {\n this.options.step = 24 * 30;\n this.options.columnWidth = 120;\n } else if (view_mode === ViewMode.Year) {\n this.options.step = 24 * 365;\n this.options.columnWidth = 120;\n }\n }\n\n private setup_dates() {\n this.setup_date_values();\n }\n\n private setup_gantt_dates() {\n this._minDate = null;\n this._maxDate = null;\n\n for (let task of this.tasks) {\n // set global start and end date\n if (!this.minDate || task.start < this.minDate) {\n this._minDate = DateUtils.startOf(task.start, 'day');\n }\n if (!this.maxDate || task.end > this.maxDate) {\n this._maxDate = task.end;\n }\n }\n\n this._realMinDate = this.minDate;\n this._realMaxDate = this.maxDate;\n\n switch (this.options.viewMode) {\n case ViewMode.Hour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"hour\");\n break;\n case ViewMode.QuarterDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 6), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 6, \"hour\");\n break;\n case ViewMode.HalfDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 12), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 12, \"hour\");\n break;\n case ViewMode.Day:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"day\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"day\");\n break;\n case ViewMode.Week:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"week\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"week\");\n break;\n case ViewMode.Month:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"month\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"month\");\n break;\n case ViewMode.Year:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"year\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"year\");\n break;\n }\n }\n\n private setup_date_values() {\n this.dates = [];\n let cur_date = null;\n\n while (cur_date === null || cur_date < this.maxDate) {\n if (!cur_date) {\n cur_date = DateUtils.clone(this.minDate);\n } else {\n if (this.view_is(ViewMode.Year)) {\n cur_date = DateUtils.add(cur_date, 1, \"year\");\n } else if (this.view_is(ViewMode.Month)) {\n cur_date = DateUtils.add(cur_date, 1, \"month\");\n } else {\n cur_date = DateUtils.add(\n cur_date,\n this.options.step,\n 'hour'\n );\n }\n }\n this.dates.push(cur_date);\n }\n\n if (this.options.containerWidth) {\n const columnWidth = (this.options.containerWidth - 1) / this.dates.length\n this.options.columnWidth = columnWidth < 45 ? 45 : columnWidth;\n }\n\n console.log(\"cur_date\", cur_date);\n console.log(\"dates\", this.dates);\n }\n\n private bind_events() {\n this.bind_grid_click();\n this.bind_bar_events();\n }\n\n private render() {\n this.clear();\n this.setup_layers();\n this.make_grid();\n this.make_dates();\n this.make_bars();\n this.make_arrows();\n this.map_arrows_on_bars();\n this.set_width();\n this.set_scroll_position();\n }\n\n private setup_layers() {\n this.layers = {};\n const layers = [\"grid\", \"date\", \"arrow\", \"progress\", \"bar\", \"details\"];\n // make group layers\n for (let layer of layers) {\n this.layers[layer] = createSVG('g', {\n class: layer,\n append_to: this.$svg,\n });\n }\n }\n\n private make_grid() {\n this.make_grid_background();\n this.make_grid_rows();\n this.make_grid_header();\n this.make_grid_highlights();\n this.make_grid_ticks();\n }\n\n private make_grid_background() {\n let grid_width = this.dates.length * this.options.columnWidth;\n\n if (this.options.containerWidth) {\n grid_width = this.options.containerWidth;\n }\n\n const distinct_rows = [...new Set(this.tasks.map((x: any) => x._row_id))];\n const grid_height = this.options.headerHeight +\n this.options.padding / 2 +\n (this.options.barHeight + this.options.padding) *\n distinct_rows.length;\n\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: grid_width,\n height: grid_height,\n class: \"grid-background\",\n append_to: this.layers.grid,\n });\n\n $.attr(this.$svg, {\n height: grid_height,\n width: \"100%\",\n }, null);\n }\n\n private make_grid_rows() {\n const rows_layer = createSVG(\"g\", { append_to: this.layers.grid });\n const lines_layer = createSVG(\"g\", { append_to: this.layers.grid });\n\n const row_width = this.dates.length * this.options.columnWidth;\n const row_height = this.options.barHeight + this.options.padding;\n //TODO: ajustar o posicionamento das linhas\n let row_y = this.options.headerHeight + this.options.padding / 2;\n\n this.tasks.forEach(_ => {\n createSVG(\"rect\", {\n x: 0,\n y: row_y,\n width: row_width,\n height: row_height,\n class: \"grid-row\",\n append_to: rows_layer,\n });\n\n createSVG(\"line\", {\n x1: 0,\n y1: row_y + row_height,\n x2: row_width,\n y2: row_y + row_height,\n class: \"row-line\",\n append_to: lines_layer,\n });\n\n row_y += this.options.barHeight + this.options.padding;\n });\n }\n\n private make_grid_header() {\n // const addIsHourView = this.isHourView ? 25 : 10\n const header_width = this.dates.length * this.options.columnWidth;\n const header_height = this.options.headerHeight + 10;\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: header_width,\n height: header_height,\n class: \"grid-header\",\n append_to: this.layers.grid,\n });\n }\n\n private make_grid_ticks() {\n let tick_x = 0;\n let tick_y = this.options.headerHeight + this.options.padding / 2;\n let tick_height =\n (this.options.barHeight + this.options.padding) *\n this.tasks.length;\n\n for (let date of this.dates) {\n let tick_class = \"tick\";\n // thick tick for monday\n if (this.view_is(ViewMode.Day) && date.getDate() === 1) {\n tick_class += \" thick\";\n }\n // thick tick for first week\n if (\n this.view_is(ViewMode.Week) &&\n date.getDate() >= 1 &&\n date.getDate() < 8\n ) {\n tick_class += \" thick\";\n }\n // thick ticks for quarters\n if (this.view_is(ViewMode.Month) && date.getMonth() % 3 === 0) {\n tick_class += \" thick\";\n }\n // Thick ticks for hours\n if (\n this.view_is(ViewMode.Hour) &&\n date.getHours() == 0\n ) {\n tick_class += \" thick\";\n }\n\n createSVG(\"path\", {\n d: `M ${tick_x} ${tick_y} v ${tick_height}`,\n class: tick_class,\n append_to: this.layers.grid,\n });\n\n if (this.view_is(ViewMode.Month)) {\n tick_x +=\n (DateUtils.getDaysInMonth(date) *\n this.options.columnWidth) /\n 30;\n } else {\n tick_x += this.options.columnWidth;\n }\n }\n }\n\n make_grid_highlights() {\n if (this.view_is(ViewMode.Day)) {\n const width = this.options.columnWidth;\n const height = (this.options.barHeight + this.options.padding) *\n this.tasks.length +\n this.options.headerHeight +\n this.options.padding / 2;\n\n let x = 0;\n\n for (let date of this.dates) {\n\n let y = (this.options.headerHeight + this.options.padding) / 2;\n\n let isToday = date.toString() == DateUtils.today();\n let isWeekend = (date.getDay() == 0 || date.getDay() == 6);\n let className;\n\n if (isToday) {\n className = \"today-highlight\";\n y = (this.options.headerHeight + this.options.padding) / 2;\n } else if (isWeekend) {\n className = \"weekend-highlight\";\n }\n\n const rx = 3;\n const ry = 3;\n\n if (isToday || isWeekend) {\n createSVG(\"rect\", {\n x,\n y,\n rx,\n ry,\n width,\n height,\n class: className,\n append_to: this.layers.grid\n });\n }\n\n x += this.options.columnWidth;\n }\n }\n }\n\n private make_dates() {\n const dates = this.get_dates_to_draw();\n const isHourView = this.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay]);\n let counter = 0;\n\n for (let i = 0; i < dates.length; i++) {\n const date = dates[i];\n\n if (isHourView && date.date >= this._realMinDate && date.date <= this._realMaxDate) {\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y,\n innerHTML: `H${counter++ * this.options.step}`,\n class: \"title-1\",\n append_to: this.layers.date,\n });\n }\n\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y + 20,\n innerHTML: date.lower_text,\n class: \"title-2\",\n append_to: this.layers.date,\n });\n\n if (date.upper_text) {\n const $upper_text = createSVG(\"text\", {\n x: date.upper_x,\n y: date.upper_y,\n innerHTML: date.upper_text,\n class: \"upper-text\",\n append_to: this.layers.date,\n });\n\n // remove out-of-bound dates\n if (\n $upper_text.getBBox().x2 > this.layers.grid.getBBox().width\n ) {\n $upper_text.remove();\n }\n }\n }\n }\n\n private get_dates_to_draw() {\n let last_date: any = null;\n const dates = this.dates.map((date: any, i: any) => {\n const d = this.get_date_info(date, last_date, i);\n last_date = date;\n return d;\n });\n return dates;\n }\n\n private get_date_info(date: Date, last_date: Date, i: any) {\n if (!last_date) {\n last_date = DateUtils.add(date, 1, \"year\");\n }\n const date_text = {\n hourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n quarterDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n halfDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n dayLower: DateUtils.format(date, \"D\", this.options.language),\n\n weekLower: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language),\n\n monthLower: DateUtils.format(date, \"MMMM\", this.options.language),\n\n yearLower: DateUtils.format(date, \"YYYY\", this.options.language),\n\n quarterDayUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n halfDayUpper: (date.getDate() !== last_date.getDate())\n ? (((date.getMonth() !== last_date.getMonth()) || i < 2)\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language))\n : \"\",\n\n dayUpper: ((date.getMonth() !== last_date.getMonth()) || i === 0)\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n weekUpper: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n monthUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n yearUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n hourUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n };\n\n // Descontando 20 para adcionar uma segunda linha de informação no cabeçalho\n const base_pos = {\n x: i * this.options.columnWidth,\n lower_y: this.options.headerHeight - 20,\n upper_y: this.options.headerHeight - 20 - 25,\n };\ndebugger;\n const x_pos = {\n hourLower: this.options.columnWidth / 2,\n hourUpper: (this.dates.length < 14) ? (this.options.columnWidth) : (this.options.columnWidth * 24 / 2),\n quarterDayLower: this.options.columnWidth / 2,\n quarterDayUpper: this.options.columnWidth * 4 / 2,\n halfDayLower: this.options.columnWidth / 2,\n halfDayUpper: this.options.columnWidth * 2 / 2,\n dayLower: this.options.columnWidth / 2,\n dayUpper: (this.dates.length < 15) ? (this.options.columnWidth) : ((this.options.columnWidth * 30) / 2),\n weekLower: 0,\n weekUpper: (this.options.columnWidth * 4) / 2,\n monthLower: this.options.columnWidth / 2,\n monthUpper: (this.options.columnWidth * 12) / 2,\n yearLower: this.options.columnWidth / 2,\n yearUpper: (this.options.columnWidth * 30) / 2,\n };\n\n return {\n upper_text: date_text[`${this.options.viewMode}Upper`],\n lower_text: date_text[`${this.options.viewMode}Lower`],\n upper_x: base_pos.x + x_pos[`${this.options.viewMode}Upper`],\n upper_y: base_pos.upper_y,\n lower_x: base_pos.x + x_pos[`${this.options.viewMode}Lower`],\n lower_y: base_pos.lower_y,\n date,\n };\n }\n\n private make_bars() {\n this.bars = this.tasks.map((task: any) => {\n const bar = new Bar(this, task);\n this.layers.bar.appendChild(bar.group);\n return bar;\n });\n }\n\n private make_arrows() {\n this.arrows = [];\n for (let task of this.tasks) {\n let arrows = [];\n arrows = task.dependencies\n .map((task_id: any) => {\n const dependency = this.get_task(task_id);\n if (!dependency) return;\n const arrow = new Arrow(\n this,\n this.bars[dependency._index], // from_task\n this.bars[task._index] // to_task\n );\n this.layers.arrow.appendChild(arrow.element);\n return arrow;\n })\n .filter(Boolean); // filter falsy values\n this.arrows = this.arrows.concat(arrows);\n }\n }\n\n private map_arrows_on_bars() {\n for (let bar of this.bars) {\n bar.arrows = this.arrows.filter((arrow: Arrow) => {\n return (\n arrow.fromTask.task.id === bar.task.id ||\n arrow.toTask.task.id === bar.task.id\n );\n });\n }\n }\n\n private set_width() {\n const cur_width = this.$svg.getBoundingClientRect().width;\n const actual_width = this.$svg\n .querySelector(\".grid .grid-row\")\n .getAttribute(\"width\");\n if (cur_width < actual_width) {\n this.$svg.setAttribute(\"width\", actual_width);\n }\n }\n\n private set_scroll_position() {\n const parent_element = this.$svg.parentElement;\n if (!parent_element) return;\n\n const hours_before_first_task = DateUtils.diff(\n this.get_oldest_starting_date(),\n this.minDate,\n \"hour\"\n );\n\n const scroll_pos =\n (hours_before_first_task / this.options.step) *\n this.options.columnWidth -\n this.options.columnWidth;\n\n parent_element.scrollLeft = scroll_pos;\n }\n\n private bind_grid_click() {\n $.on(\n this.$svg,\n this.options.popupTrigger,\n \".grid-row, .grid-header\",\n () => {\n this.unselect_all();\n this.hide_popup();\n }\n );\n }\n\n private bind_bar_events() {\n let is_dragging = false;\n let x_on_start = 0;\n let is_resizing_left = false;\n let is_resizing_right = false;\n let parent_bar_id: any = null;\n let bars: Bar[] = [];\n this.bar_being_dragged = null;\n\n function action_in_progress() {\n return is_dragging || is_resizing_left || is_resizing_right;\n }\n\n $.on(this.$svg, \"mousedown\", \".bar-wrapper, .handle\", (e: any, element: any) => {\n const bar_wrapper = $.closest(\".bar-wrapper\", element);\n\n if (element.classList.contains(\"left\")) {\n is_resizing_left = true;\n } else if (element.classList.contains(\"right\")) {\n is_resizing_right = true;\n } else if (element.classList.contains(\"bar-wrapper\") && this.options.allowMovement) {\n is_dragging = true;\n }\n\n bar_wrapper.classList.add(\"active\");\n\n x_on_start = e.offsetX;\n\n parent_bar_id = bar_wrapper.getAttribute(\"data-id\");\n const ids = [\n parent_bar_id,\n ...this.get_all_dependent_tasks(parent_bar_id),\n ];\n bars = ids.map((id) => this.get_bar(id));\n\n this.bar_being_dragged = parent_bar_id;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.ox = $bar.getX();\n $bar.oy = $bar.getY();\n $bar.owidth = $bar.getWidth();\n $bar.finaldx = 0;\n });\n });\n\n\n $.on(this.$svg, \"mousemove\", (e: any) => {\n if (!action_in_progress()) {\n return;\n }\n\n const dx = e.offsetX - x_on_start;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.finaldx = this.get_snap_position(dx);\n this.hide_popup();\n if (is_resizing_left) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n width: $bar.owidth - $bar.finaldx,\n });\n } else {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n });\n }\n } else if (is_resizing_right) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n width: $bar.owidth + $bar.finaldx,\n });\n }\n } else if (is_dragging) {\n bar.updateBarPosition({ x: $bar.ox + $bar.finaldx });\n }\n });\n }, null);\n\n\n document.addEventListener(\"mouseup\", (e: any) => {\n if (is_dragging || is_resizing_left || is_resizing_right || !this.options.allowMovement) {\n bars.forEach((bar) => bar.group.classList.remove(\"active\"));\n }\n\n is_dragging = false;\n is_resizing_left = false;\n is_resizing_right = false;\n });\n\n $.on(this.$svg, \"mouseup\", (e: any) => {\n this.bar_being_dragged = null;\n bars.forEach((bar) => {\n const $bar = bar.element;\n if (!$bar.finaldx) return;\n bar.dateChanged();\n bar.setActionCompleted();\n });\n }, null);\n }\n\n private get_all_dependent_tasks(task_id: any) {\n let out: any[] = [];\n let to_process = [task_id];\n while (to_process.length) {\n const deps = to_process.reduce((acc, curr) => {\n acc = acc.concat(this.dependency_map[curr]);\n return acc;\n }, []);\n\n out = out.concat(deps);\n to_process = deps.filter((d: any) => !to_process.includes(d));\n }\n\n return out.filter(Boolean);\n }\n\n private get_snap_position(dx: any) {\n let odx = dx,\n rem,\n position;\n\n if (this.view_is(ViewMode.Hour)) {\n rem = dx % (this.options.columnWidth / 6);\n position = odx - rem + (rem < this.options.columnWidth / 12 ? 0 : this.options.columnWidth / 6);\n } else if (this.view_is(ViewMode.Week)) {\n rem = dx % (this.options.columnWidth / 7);\n position = odx - rem + (rem < this.options.columnWidth / 14 ? 0 : this.options.columnWidth / 7);\n } else if (this.view_is(ViewMode.Month)) {\n rem = dx % (this.options.columnWidth / 30);\n position = odx - rem + (rem < this.options.columnWidth / 60 ? 0 : this.options.columnWidth / 30);\n } else {\n rem = dx % this.options.columnWidth;\n position = odx - rem + (rem < this.options.columnWidth / 2 ? 0 : this.options.columnWidth);\n }\n return position;\n }\n\n public unselect_all() {\n [...this.$svg.querySelectorAll(\".bar-wrapper\")].forEach((el) => {\n el.classList.remove(\"active\");\n });\n }\n\n public view_is(modes: ViewMode | ViewMode[]) {\n if (Array.isArray(modes)) {\n return modes.some((mode) => this.options.viewMode === mode);\n }\n\n return this.options.viewMode === modes;\n }\n\n private get_task(id: any) {\n return this.tasks.find((task: any) => {\n return task.id === id;\n });\n }\n\n public get_bar(id: any): Bar {\n return this.bars.find((bar: any) => {\n return bar.task.id === id;\n });\n }\n\n public show_popup(options: any) {\n if (!this.popup) {\n this.popup = new Popup(\n this.popup_wrapper,\n this.options.customPopupHtml\n );\n }\n this.popup.show(options);\n }\n\n public hide_popup() {\n this.popup && this.popup.hide();\n }\n\n public trigger_event(event: string, args: any) {\n if (this.options[event]) {\n this.options[event].apply(null, args);\n }\n }\n\n private get_oldest_starting_date() {\n return this.tasks\n .map((task: any) => task._start)\n .reduce((prev_date: any, cur_date: any) =>\n cur_date <= prev_date ? cur_date : prev_date\n );\n }\n\n private clear() {\n this.$svg.innerHTML = '';\n }\n}\n\nfunction generate_id(task: any) {\n return task.name + \"_\" + Math.random().toString(36).slice(2, 12);\n}\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, Output, ViewEncapsulation, EventEmitter, SimpleChanges, ElementRef, ViewChild } from \"@angular/core\";\n\nimport { Gantt } from \"./components/gantt/gantt\";\nimport { TaskGroup, Task, EnrichedTask } from \"./models/task\"\nimport { ViewMode } from \"./models/view-mode\";\n\n@Component({\n selector: \"s-gantt\",\n templateUrl: \"./gantt.component.html\",\n styleUrls: [\n \"./gantt.component.scss\",\n \"./components/gantt/gantt.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GanttComponent implements AfterViewInit, OnChanges, OnInit {\n @Input()\n public columnTitle: string;\n\n @Input()\n public multipleTaskPerLine = false;\n\n @Input()\n public showSideTable = true;\n\n @Input()\n public viewMode = ViewMode.Day;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public marginBeforeStart?: number;\n\n @Input()\n public marginAfterEnd?: number;\n\n @Input()\n public allowMovement = true;\n\n @Input()\n public hasPopup = true;\n\n @Input()\n public containerWidth: number;\n\n @Input()\n public fullWidth = false;\n\n @Input()\n public showOnlyHours = false;\n\n @Input()\n public showOnlyDays = false;\n\n @Output()\n public taskClicked: EventEmitter<Task> = new EventEmitter();\n\n @Output()\n public taskDateChanged: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public viewChanged: EventEmitter<ViewMode> = new EventEmitter();\n\n private _gantt: Gantt;\n\n public ngOnInit(): void {\n this._validateViewMode();\n }\n\n @ViewChild('outer')\n outer: ElementRef;\n\n @ViewChild('side')\n side: ElementRef;\n\n public ngAfterViewInit(): void {\n if (this.fullWidth) {\n this.containerWidth = this.outer.nativeElement.offsetWidth - this.side.nativeElement.offsetWidth;\n }\n\n this._gantt = new Gantt(\"#gantt\", this._filterTask(this.tasks), {\n viewMode: this.viewMode,\n marginBeforeStart: this.marginBeforeStart,\n marginAfterEnd: this.marginAfterEnd,\n language: \"pt-BR\",\n allowMovement: this.allowMovement,\n hasPopup: this.hasPopup,\n containerWidth: this.containerWidth,\n showOnlyHours: this.showOnlyHours,\n showOnlyDays: this.showOnlyDays,\n onClick: (task: Task) => this.taskClicked.emit(task),\n onDateChange: (task: Task, start: any, end: any) => this.taskDateChanged.emit({ task, start, end }),\n onViewChange: (viewMode: ViewMode) => this.viewChanged.emit(viewMode),\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this._gantt) {\n return;\n }\n\n if (changes.viewMode) {\n this._gantt.options.viewMode = changes.viewMode.currentValue;\n this._gantt.change_view_mode();\n }\n\n if (changes.tasks) {\n this._gantt.refresh(this._filterTask(changes.tasks.currentValue));\n }\n }\n\n private _filterTask(tasksGroups: TaskGroup[]): Task[] {\n const tasks: Task[] = [];\n\n if (this.multipleTaskPerLine) {\n tasksGroups.forEach((group: any, index: number) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: index };\n }));\n }, []);\n } else {\n let i = 0;\n tasksGroups.forEach((group: any) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: i++ };\n }));\n }, []);\n }\n\n return tasks;\n }\n\n private _validateViewMode(): void {\n if (![\n ViewMode.Hour,\n ViewMode.QuarterDay,\n ViewMode.HalfDay,\n ViewMode.Day,\n ViewMode.Week,\n ViewMode.Month,\n ViewMode.Year,\n ].includes(this.viewMode)) {\n throw new Error(\"Invalid gantt view mode\");\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TaskGroup } from '../../models/task';\n\n@Component({\n selector: 'gantt-side-table',\n templateUrl: './side-table.component.html',\n styleUrls: ['./side-table.component.scss']\n})\nexport class SideTableComponent {\n public ROW_HEIGHT = 44;\n\n @Input()\n public columnTitle: string;\n\n @Input()\n public tasks : TaskGroup[];\n\n @Input()\n public multipleTaskPerLine = false;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GanttComponent } from \"./gantt.component\";\nimport { SideTableComponent } from \"./components/side-table/side-table.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [\n GanttComponent,\n SideTableComponent,\n ],\n exports: [GanttComponent],\n})\nexport class GanttModule { }\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-footer\",\n template: `<ng-content></ng-content>`,\n})\nexport class FooterComponent {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { HeaderComponent } from \"./header.component\";\nimport { FooterComponent } from \"./footer.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n ContentChild,\n} from \"@angular/core\";\nimport Cropper from \"cropperjs\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { FooterComponent } from \"../structure/footer.component\";\n\n@Component({\n selector: \"s-image-cropper\",\n templateUrl: \"./image-cropper.component.html\",\n styleUrls: [\"../../../../node_modules/cropperjs/dist/cropper.min.css\", \"./image-cropper.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ImageCropperComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public id = `s-image-cropper-${ImageCropperComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header = \"Recortar imagem\";\n\n @Input()\n public cropLabel = \"Recortar\";\n\n @Input()\n public selectAnotherLabel = \"Trocar\";\n\n @Input()\n public removeLabel = \"Remover\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public emptyStateTitle = \"Selecione uma foto, em seguida você poderá ajustá-la\";\n\n @Input()\n public emptyStateActionLabel = \"Escolher imagem\";\n\n @Input()\n public emptyStateIconClass = \"fa fa-picture-o\";\n\n @Input()\n public aspectRatio = NaN;\n\n @Input()\n public rounded = false;\n\n @Input()\n public allowSelectAnother = true;\n\n @Input()\n public allowRemove = true;\n\n @Input()\n public allowCancel = true;\n\n @Input()\n public imageSource?: string;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @Output()\n public changeImage = new EventEmitter();\n\n @Output()\n public croppedImage = new EventEmitter<string>();\n\n @Output()\n public croppedCanvas = new EventEmitter<HTMLCanvasElement>();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public cancel = new EventEmitter();\n\n @ViewChild(\"image\", { static: true })\n public image: ElementRef;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n public cropper: Cropper;\n\n public ngOnInit() {\n if (this.imageSource) this.initCropper();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.imageSource && changes.imageSource.currentValue) {\n this.initCropper();\n }\n }\n\n private initCropper() {\n if (this.cropper) this.cropper.destroy();\n this.image.nativeElement.src = this.imageSource;\n this.cropper = new Cropper(this.image.nativeElement, {\n aspectRatio: this.rounded ? 1 : this.aspectRatio,\n guides: false,\n dragMode: \"move\" as Cropper.DragMode,\n minCropBoxHeight: 2,\n minCropBoxWidth: 2,\n toggleDragModeOnDblclick: false,\n });\n }\n\n public getRoundedCanvas(sourceCanvas: HTMLCanvasElement) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const width = sourceCanvas.width;\n const height = sourceCanvas.height;\n canvas.width = width;\n canvas.height = height;\n context.imageSmoothingEnabled = true;\n context.drawImage(sourceCanvas, 0, 0, width, height);\n context.globalCompositeOperation = \"destination-in\";\n context.beginPath();\n context.arc(width / 2, height / 2, Math.min(width, height) / 2, 0, 2 * Math.PI, true);\n context.fill();\n return canvas;\n }\n\n public onCropImage() {\n if (!this.imageSource) {\n this.croppedImage.emit();\n this.croppedCanvas.emit();\n } else {\n const _croppedCanvas = this.rounded\n ? this.getRoundedCanvas(this.cropper.getCroppedCanvas())\n : this.cropper.getCroppedCanvas();\n\n this.croppedCanvas.emit(_croppedCanvas);\n this.croppedImage.emit(_croppedCanvas.toDataURL());\n }\n\n this.visibleChange.emit(false);\n }\n\n public onChangeImage() {\n this.changeImage.emit();\n }\n\n public onRemoveImage() {\n this.imageSource = undefined;\n this.removedImage.emit();\n }\n\n public onCancel() {\n this.visibleChange.emit(false);\n this.cancel.emit();\n }\n\n public onModalVisibleChange(visible: boolean) {\n if (!visible) this.onCancel();\n this.visibleChange.emit(visible);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { DialogModule } from \"primeng/dialog\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, DialogModule, ButtonModule, EmptyStateModule, StructureModule],\n declarations: [ImageCropperComponent],\n exports: [ImageCropperComponent, StructureModule],\n entryComponents: [ImageCropperComponent],\n})\nexport class ImageCropperModule {}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef } from \"@angular/core\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, delay } from \"rxjs/operators\";\n\n@Injectable()\nexport class ImageCropperService {\n public activeCropper: ActiveCropper;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n public show(config?: ImageCropperConfig) {\n if (this.activeCropper) this.destroy(this.activeCropper);\n\n const activeCropper = {\n componentRef: this.componentFactoryResolver.resolveComponentFactory(ImageCropperComponent).create(this.injector),\n ngUnsubscribe: new Subject(),\n };\n\n this.activeCropper = activeCropper;\n\n this.appRef.attachView(activeCropper.componentRef.hostView);\n const domElem = (activeCropper.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n this.configureInstance(activeCropper, config);\n activeCropper.componentRef.instance.visible = true;\n\n activeCropper.componentRef.instance.visibleChange\n .pipe(\n takeUntil(this.activeCropper.ngUnsubscribe),\n delay(1000)\n )\n .subscribe(visible => {\n if (!visible) this.destroy(activeCropper);\n });\n }\n\n private configureInstance(activeCropper: ActiveCropper, config?: ImageCropperConfig) {\n const instance = activeCropper.componentRef.instance;\n\n if (config) {\n Object.keys(config).forEach(key => {\n const value = config[key];\n if (typeof value !== \"function\") instance[key] = value;\n else if (typeof value === \"function\") {\n instance[key].pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe((...param: any[]) => config[key](...param));\n }\n });\n }\n\n instance.visibleChange.pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe(visible => (instance.visible = visible));\n }\n\n private destroy(activeCropper: ActiveCropper) {\n activeCropper.ngUnsubscribe.next();\n activeCropper.ngUnsubscribe.complete();\n\n this.appRef.detachView(activeCropper.componentRef.hostView);\n activeCropper.componentRef.destroy();\n }\n}\n\nexport interface ActiveCropper {\n componentRef?: ComponentRef<ImageCropperComponent>;\n ngUnsubscribe?: Subject<any>;\n}\n\nexport interface ImageCropperConfig {\n id?: any;\n header?: string;\n cropLabel?: string;\n selectAnotherLabel?: string;\n removeLabel?: string;\n cancelLabel?: string;\n emptyStateTitle?: string;\n emptyStateActionLabel?: string;\n emptyStateIconClass?: string;\n aspectRatio?: number;\n rounded?: boolean;\n allowSelectAnother?: boolean;\n allowRemove?: boolean;\n allowCancel?: boolean;\n imageSource?: string;\n\n cancel?: () => any;\n changeImage?: () => any;\n removedImage?: () => any;\n croppedImage?: (imageSource: string) => any;\n croppedCanvas?: (imageSource: HTMLCanvasElement) => any;\n}\n","export enum ThumbnailSize {\n Small = \"small\",\n Medium = \"medium\",\n Large = \"large\",\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ThumbnailService {\n public getBinaryFile(img: HTMLImageElement) {\n return new Promise(resolve => {\n const getOrientation = this.getOrientation.bind(this);\n\n let http = new XMLHttpRequest();\n http.addEventListener(\"load\", () => {\n if (http.readyState === 4 && (http.status == 200 || http.status === 0)) {\n const orientation = getOrientation(http.response);\n http = null;\n resolve(orientation);\n }\n });\n\n http.addEventListener(\"error\", () => {\n http = null;\n throw new Error(\"Não foi possível carregar a imagem\");\n });\n\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n });\n }\n\n /**\n * Retorna a tag da orientação EXIF {-1} Não definido, {-2} Não é formato JPEG, {1, 2, 3, 4, 5, 6, 7, 8} valores da orientação.\n */\n private getOrientation(file: ArrayBuffer): number {\n const view = new DataView(file);\n\n if (view.getUint16(0, false) != 0xffd8) return -2; // not jpeg\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker == 0xffe1) {\n if (view.getUint32((offset += 2), false) != 0x45786966) {\n return -1; // not defined\n }\n const little = view.getUint16((offset += 6), false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let i = 0; i < tags; i++)\n if (view.getUint16(offset + i * 12, little) == 0x0112) return view.getUint16(offset + i * 12 + 8, little);\n // tslint:disable-next-line: no-bitwise\n } else if ((marker & 0xff00) != 0xff00) break;\n else offset += view.getUint16(offset, false);\n }\n return -1; // not defined\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n} from \"@angular/core\";\n\nimport { from, Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { ThumbnailSize } from \"./thumbnail-size\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@Component({\n selector: \"s-thumbnail\",\n templateUrl: \"./thumbnail.component.html\",\n styleUrls: [\"./thumbnail.component.scss\"],\n})\nexport class ThumbnailComponent implements AfterViewInit, OnDestroy {\n public static nextId = 0;\n public fallback = false;\n public orientation: number;\n\n @ViewChild(\"img\", { static: false })\n public imgEl: ElementRef;\n\n @Input()\n public id = `s-thumbnail-${ThumbnailComponent.nextId++}`;\n\n @Input()\n public size: ThumbnailSize = ThumbnailSize.Medium;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public iconClass = \"far fa-image\";\n\n @Input()\n public hasAction = false;\n\n @Input()\n public actionIconClass = \"fas fa-camera\";\n\n @Input()\n public isTile = false;\n\n @Input()\n public isBrand = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private thumbnailService: ThumbnailService) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit(): void {\n if (this.imgEl) {\n this.imgEl.nativeElement.addEventListener(\"load\", () => {\n from(this.thumbnailService.getBinaryFile(this.imgEl.nativeElement))\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((orientation: number) => (this.orientation = orientation));\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"./thumbnail.component\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThumbnailComponent],\n exports: [ThumbnailComponent],\n providers: [ThumbnailService],\n})\nexport class ThumbnailModule {}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\n\n@Component({\n selector: \"s-object-card-field\",\n templateUrl: \"./object-card-field.component.html\",\n styleUrls: [\"./object-card-field.component.scss\"],\n})\nexport class ObjectCardFieldComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n}\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailSize } from \"../../../thumbnail/thumbnail-size\";\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { Breakpoints } from \"../../../utils\";\n\n@Component({\n selector: \"s-object-card-main\",\n templateUrl: \"./object-card-main.component.html\",\n styleUrls: [\"./object-card-main.component.scss\"],\n})\nexport class ObjectCardMainComponent implements AfterContentInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-main-${ObjectCardMainComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass = \"fa fa-picture-o\";\n\n @Input()\n public hasThumbnail = true;\n\n @Input()\n public hasDescription = true;\n\n @Input()\n public isBrand = false;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n private _thumbnailSize = ThumbnailSize.Medium;\n\n public set thumbnailSize(value: ThumbnailSize) {\n this._thumbnailSize = value;\n if (this.thumbnailComponent) this.thumbnailComponent.size = value;\n }\n\n public get thumbnailSize() {\n return this._thumbnailSize;\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n public update() {\n const windowWidth = window.innerWidth;\n\n if (windowWidth <= Breakpoints.SM_MAX) this.thumbnailSize = ThumbnailSize.Small;\n else this.thumbnailSize = ThumbnailSize.Medium;\n }\n}\n","export enum EnumSeverity {\n Default = \"Default\",\n Info = \"Info\",\n Warn = \"Warn\",\n Error = \"Error\",\n Success = \"Success\",\n}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from \"@angular/core\";\nimport * as elementResizeDetectorMaker_ from \"element-resize-detector\";\n\nimport { Breakpoints } from \"../utils/breakpoints\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\nconst elementResizeDetectorMaker = elementResizeDetectorMaker_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-object-card\",\n templateUrl: \"./object-card.component.html\",\n styleUrls: [\"./object-card.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class ObjectCardComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-${ObjectCardComponent.nextId++}`;\n\n @Input()\n public expanded = false;\n\n @Input()\n public expandTooltip = \"Abrir painel\";\n\n @Input()\n public collapseTooltip = \"Fechar painel\";\n\n @Input()\n public fieldsMinWidth = 200;\n\n @Output()\n public expandedChange = new EventEmitter<boolean>();\n\n @ContentChild(ObjectCardMainComponent, { static: true })\n public main: ObjectCardMainComponent;\n\n @ContentChildren(ObjectCardFieldComponent, { descendants: true })\n public fields?: QueryList<ObjectCardFieldComponent>;\n\n public maxVisibleFields = 0;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n\n constructor(private cdr: ChangeDetectorRef, private elementRef: ElementRef) {}\n\n public ngAfterViewInit() {\n this.update();\n this.cdr.detectChanges();\n this.fields.changes.subscribe(() => {\n this.update();\n });\n\n const erd = elementResizeDetectorMaker({\n strategy: \"scroll\",\n });\n\n erd.listenTo(this.elementRef.nativeElement, () => this.update());\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n const mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;\n const fieldsMinWidth = this.fieldsMinWidth;\n const expandIconWidth = 50;\n const fieldElementList = this.elementRef.nativeElement.getElementsByClassName(\"s-object-card-field\");\n for (const element of fieldElementList) {\n element.style.minWidth = `${this.fieldsMinWidth}px`;\n }\n\n let maxFieldQtd;\n\n if (windowWidth <= Breakpoints.SM_MAX) maxFieldQtd = 0;\n else maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);\n\n if (maxFieldQtd && maxFieldQtd < this.fields.length) {\n maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);\n }\n\n this.maxVisibleFields = maxFieldQtd;\n\n if (maxFieldQtd >= this.fields.length && this.expanded) this.collapse();\n }\n\n public toggle() {\n this.expanded ? this.collapse() : this.expand();\n }\n\n public expand() {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n }\n\n public collapse() {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n }\n\n public getExpandedFieldWidth() {\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n\n let fieldsPerRow;\n if (containerWidth <= Breakpoints.SM_MAX) fieldsPerRow = 1;\n else if (containerWidth <= Breakpoints.MD_MAX) fieldsPerRow = 2;\n else if (containerWidth <= Breakpoints.LG_MAX) fieldsPerRow = 4;\n else fieldsPerRow = 6;\n\n return 12 / fieldsPerRow;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../models/border-button-options\";\nimport { EnumSeverity } from \"../models/enum-severity\";\nimport { TooltipPosition } from \"../../tooltip/models/tooltip-position\";\n\n@Component({\n selector: \"s-border-button\",\n templateUrl: \"./border-button.component.html\",\n styleUrls: [\"./border-button.component.scss\"],\n})\nexport class BorderButtonComponent {\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n options: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n readonly TooltipPosition = TooltipPosition;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../../tooltip/tooltip.module\";\nimport { BorderButtonComponent } from \"./border-button.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ObjectCardComponent } from \"./object-card.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule, ButtonModule, BorderButtonModule],\n declarations: [ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n})\nexport class ObjectCardModule {}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-product-header\",\n templateUrl: \"./product-header.component.html\",\n styleUrls: [\"./product-header.component.scss\"],\n})\nexport class ProductHeaderComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-product-header-${ProductHeaderComponent.nextId++}`;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public isHeaderFrame = true;\n\n @ViewChild(\"headerContainer\", { static: false })\n public container: ElementRef;\n\n public ngAfterViewInit() {\n this.container.nativeElement.style.zIndex = String(this.baseZIndex + ++DomHandler.zindex);\n if (this.isHeaderFrame) {\n this.container.nativeElement.style.borderBottom = \"1px solid $default-secondary-color\";\n } else {\n this.container.nativeElement.style.borderTop = \"1px solid $default-secondary-color\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ProductHeaderComponent } from \"./product-header.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule],\n declarations: [ProductHeaderComponent],\n exports: [ProductHeaderComponent, ThumbnailModule],\n})\nexport class ProductHeaderModule {}\n","import { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport { Component, ContentChild, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { Sidebar } from \"primeng/sidebar\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SidebarComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-sidebar-${SidebarComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public largeSized = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @ViewChild(Sidebar, { static: true })\n public innerSidebar: Sidebar;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n constructor(private focusTrapFactory: FocusTrapFactory) {}\n\n public onShow() {\n DomHandler.addClass(document.body, \"ui-overflow-hidden-sidebar\");\n const focusTrap = this.focusTrapFactory.create(this.innerSidebar.containerViewChild.nativeElement, false);\n focusTrap.focusInitialElementWhenReady();\n }\n\n public onHide() {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n }\n\n public close(event: Event) {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n this.visibleChange.emit(false);\n event.preventDefault();\n }\n}\n","import { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ScrollPanelModule } from \"primeng/scrollpanel\";\nimport { SidebarModule as PrimeSidebar } from \"primeng/sidebar\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { SidebarComponent } from \"./sidebar.component\";\n\n@NgModule({\n imports: [CommonModule, A11yModule, PrimeSidebar, ScrollPanelModule, StructureModule],\n declarations: [SidebarComponent],\n exports: [StructureModule, SidebarComponent],\n})\nexport class SidebarModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n AfterViewChecked,\n Output,\n ViewChild,\n} from \"@angular/core\";\n\nconst SMALL_DEVICE_BREAKPOINT = 420;\n\n@Component({\n selector: \"s-slide-panel\",\n templateUrl: \"./slide-panel.component.html\",\n styleUrls: [\"./slide-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [\n style({ width: \"0\" }),\n animate(\"200ms linear\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [\n style({ width: \"*\" }),\n animate(\"200ms linear\", style({ width: \"0\" })),\n ]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ width: \"*\", padding: '0 16px' })),\n state(\"false\", style({ width: '0px', padding: '0' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class SlidePanelComponent implements OnInit, AfterViewChecked {\n @Input()\n public openIcon = \"fas fa-chevron-right\";\n\n @Input()\n public closeIcon = \"fas fa-chevron-left\";\n\n @Input()\n public cache = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n @ViewChild(\"mainContainer\")\n public mainContainer: ElementRef;\n\n @ViewChild(\"sideContent\")\n public sideContent: ElementRef;\n\n public slideHeight = 0;\n\n public isOpen = false;\n public isSlideOver = false;\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._checkOverBehavior();\n }\n\n public ngOnInit(): void {\n this._checkOverBehavior();\n }\n\n public ngAfterViewChecked() {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this._calculateSlideHeight();\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onClickButton() {\n if (this.isAnimating) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n }\n\n private _checkOverBehavior() {\n this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;\n }\n\n private _calculateSlideHeight() {\n this.slideHeight = this.sideContent.nativeElement.clientHeight;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\n\nimport { SlidePanelComponent } from \"./slide-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n ],\n declarations: [SlidePanelComponent],\n exports: [SlidePanelComponent],\n})\nexport class SlidePanelModule { }","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from \"@angular/core\";\nimport { BigNumber } from \"bignumber.js\";\n\n@Component({\n selector: \"s-stats-card\",\n templateUrl: \"./stats-card.component.html\",\n styleUrls: [\"./stats-card.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public alwaysWithBorder = false;\n\n @Input()\n public lightVersion = false;\n\n @Input()\n public lightMode = true;\n\n @Input()\n public iconClass = \"fa fa-bar-chart\";\n\n @Input()\n public color = \"#339966\";\n\n @Input()\n public animateNumbers = true;\n\n @Input()\n public clickable = false;\n\n @Input()\n public set value(value: string) {\n this.previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this.updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n @Input()\n public tooltip = \"\";\n\n public get value() {\n return this._value;\n }\n\n @Output()\n public onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n public displayValue: string;\n\n private ANIMATION_DURATION_MS = 200;\n private STEP_DURATION_MS = 20;\n private previousValue = \"0\";\n private intervalId: any;\n private _value = \"0\";\n\n private updateDisplayValue() {\n const animationDuration = new BigNumber(this.ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this.STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this.previousValue.replace(/\\D/g, \"\"));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, \"\"));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this.intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this.intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this.intervalId);\n }\n }, this.STEP_DURATION_MS);\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, \"\");\n const newValueString = newValue ? newValue.toString() : \"\";\n const formattedNewValue = newValueString\n .toString()\n .replace(/\\D/g, \"\")\n .padStart(rawValue.length, \"0\");\n let newValueIndex = 0;\n\n return value\n .split(\"\")\n .map(char => {\n const number = Number(char);\n if (number || char === \"0\") return formattedNewValue[newValueIndex++];\n return char;\n })\n .join(\"\");\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StatsCardComponent } from \"./stats-card.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [\n StatsCardComponent,\n ],\n exports: [\n StatsCardComponent,\n ],\n})\nexport class StatsCardModule { }\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport enum StepState {\n Default = \"default\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport interface Step {\n id: any;\n label: string;\n ariaLabel?: string;\n ariaControls?: string;\n /**\n * @deprecated\n * @todo remover propriedade deprecada\n */\n description?: string;\n state?: StepState;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n}\n\nexport interface StepSelectionEvent {\n step: Step;\n index: number;\n event: any;\n}\n\n@Component({\n selector: \"s-steps\",\n templateUrl: \"./steps.component.html\",\n styleUrls: [\"./steps.component.scss\"],\n host: {\n \"aria-orientation\": \"horizontal\",\n role: \"tablist\",\n \"tab-index\": \"0\",\n },\n animations: [\n trigger(\"beforeActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 100ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 250ms linear\")]),\n ]),\n trigger(\"activeDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"100ms 150ms linear\")]),\n transition(\"desactive => active\", [animate(\"100ms 150ms linear\")]),\n ]),\n trigger(\"afterActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 250ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 100ms linear\")]),\n ]),\n ],\n})\nexport class StepsComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-steps-${StepsComponent.nextId++}`;\n @Input()\n public steps: Step[];\n @Input()\n public activeIndex = 0;\n\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index == this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public get stepState() {\n return StepState;\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n\n get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StepsComponent } from \"./steps.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import { Component, HostListener, Input, OnInit } from \"@angular/core\";\n\nimport { TimelineItem } from \"./models/timeline-item\";\n\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\nconst MIN_ITEM_SIZE = 200;\n\n@Component({\n selector: \"s-timeline\",\n templateUrl: \"./timeline.component.html\",\n})\nexport class TimelineComponent implements OnInit {\n private _innerWidth: number;\n private _items: TimelineItem[];\n\n public get items(): TimelineItem[] {\n return this._items;\n }\n\n @Input()\n public set items(items: TimelineItem[]) {\n this._items = items;\n this.checkDuplicateIds();\n }\n\n @Input()\n public activeIndex: number;\n\n @Input()\n public direction: typeof HORIZONTAL | typeof VERTICAL = HORIZONTAL;\n\n @Input()\n public collapsable = true;\n\n @Input()\n public counterLabel = \"items\";\n\n public ngOnInit(): void {\n this._innerWidth = window.innerWidth;\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n public onResize(_: any): void {\n this._innerWidth = window.innerWidth;\n }\n\n public changeToVertical(): boolean {\n return this.direction === VERTICAL || this._innerWidth / this.items.length < MIN_ITEM_SIZE;\n }\n\n public checkDuplicateIds(): void {\n const ids = this.items.map(item => {\n return item.id;\n });\n\n if ((new Set(ids)).size !== ids.length) {\n throw new Error(\"A duplicate id was found in the items list\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models\";\n\n@Component({\n selector: \"s-timeline-icon-item\",\n templateUrl: \"./timeline-icon-item.component.html\",\n styleUrls: [\"./timeline-icon-item.component.scss\"],\n})\nexport class TimelineIconItemComponent {\n @Input()\n public item: TimelineItem;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public isComplete: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineIconItemComponent } from \"./timeline-icon-item.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [TimelineIconItemComponent],\n exports: [TimelineIconItemComponent],\n})\nexport class TimelineItemModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-horizontal-timeline\",\n templateUrl: \"./horizontal-timeline.component.html\",\n styleUrls: [\"./horizontal-timeline.component.scss\"],\n})\nexport class HorizontalTimelineComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public activeIndex = 0;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineComponent } from \"./horizontal-timeline.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TimelineItemModule,\n ],\n declarations: [HorizontalTimelineComponent],\n exports: [HorizontalTimelineComponent],\n})\nexport class HorizontalTimelineModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-timeline\",\n templateUrl: \"./vertical-timeline.component.html\",\n styleUrls: [\"./vertical-timeline.component.scss\"],\n})\nexport class VerticalTimelineComponent {\n public static nextId = 0;\n private _activeIndex: number;\n public isG1Collapsed = true;\n public isG2Collapsed = true;\n\n public firstItem: TimelineItem[];\n public g1Items: TimelineItem[];\n public activeItem: TimelineItem[];\n public g2Items: TimelineItem[];\n public lastItem: TimelineItem[];\n\n @Input()\n public set activeIndex(index: number) {\n this._activeIndex = index;\n this.groupItems();\n }\n\n public get activeIndex() {\n return this._activeIndex;\n }\n\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public counterLabel: string;\n\n @Input()\n public collapsable: boolean;\n\n public onChangeG1(event: boolean) {\n this.isG1Collapsed = event;\n }\n\n public onChangeG2(event: boolean) {\n this.isG2Collapsed = event;\n }\n\n public groupItems() {\n this.firstItem = this.activeIndex === 0 ? [] : [this.items[0]];\n this.g1Items = this.items.slice(1, this.activeIndex);\n this.activeItem = [this.items[this.activeIndex]];\n this.g2Items = this.items.slice(this.activeIndex + 1, this.items.length - 1);\n this.lastItem = this.activeIndex === this.items.length - 1 ? [] : [this.items[this.items.length - 1]];\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-range-line\",\n templateUrl: \"./range-line.component.html\",\n styleUrls: [\"./range-line.component.scss\"],\n})\nexport class RangeLineComponent { }\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-option\",\n templateUrl: \"./collapse-option.component.html\",\n styleUrls: [\"./collapse-option.component.scss\"],\n})\nexport class CollapseOptionComponent {\n @Input()\n public isCollapsed = false;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public onClick(): void {\n this.change.emit(!this.isCollapsed);\n }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-collapsed-items\",\n templateUrl: \"./collapsed-items.component.html\",\n styleUrls: [\"./collapsed-items.component.scss\"],\n})\nexport class CollapsedItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isCollapsed: boolean;\n\n @Input()\n public isCompleted: boolean;\n\n @Input()\n public counterLabel: string;\n\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n public onChange(event: boolean) {\n this.isCollapsed = !this.isCollapsed;\n this.isCollapsedChange.emit(this.isCollapsed);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-items\",\n templateUrl: \"./vertical-items.component.html\",\n styleUrls: [\"./vertical-items.component.scss\"],\n})\nexport class VerticalItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isLast: boolean;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public isCompleted: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { VerticalTimelineComponent } from \"./vertical-timeline.component\";\nimport { RangeLineComponent } from \"./components/range-line/range-line.component\";\nimport { CollapseOptionComponent } from \"./components/collapse-option/collapse-option.component\";\nimport { CollapsedItemsComponent } from \"./components/collapsed-items/collapsed-items.component\";\nimport { VerticalItemsComponent } from \"./components/vertical-items/vertical-items.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n ],\n declarations: [\n VerticalTimelineComponent,\n RangeLineComponent,\n CollapseOptionComponent,\n CollapsedItemsComponent,\n VerticalItemsComponent,\n ],\n exports: [VerticalTimelineComponent],\n})\nexport class VerticalTimelineModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineComponent } from \"./timeline.component\";\nimport { TimelineItemModule } from \"./components/timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineModule } from \"./components/horizontal-timeline/horizontal-timeline.module\";\nimport { VerticalTimelineModule } from \"./components/vertical-timeline/vertical-timeline.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n HorizontalTimelineModule,\n VerticalTimelineModule,\n ],\n declarations: [\n TimelineComponent,\n ],\n exports: [\n TimelineComponent,\n ],\n})\nexport class TimelineModule { }\n","export enum TimelineItemSeverity {\n Normal = \"normal\",\n Warning = \"warning\",\n Error = \"error\",\n}\n","export enum TimelineItemSize {\n Normal = \"normal\",\n Small = \"small\",\n}\n","import { TimelineItemSeverity } from \"./timeline-item-severity\";\nimport { TimelineItemSize } from \"./timeline-item-size\";\n\nconst LABEL_MAX_LENGTH = 2; \n\nexport class TimelineItem {\n public id: string;\n public title: string;\n public description: string;\n public icon?: string;\n public label?: string;\n public tooltip?: string;\n public size: TimelineItemSize;\n public severity: TimelineItemSeverity;\n public color?: string;\n\n constructor(params: {\n id: string,\n title: string,\n description: string,\n icon?: string,\n label?: string,\n size?: TimelineItemSize,\n severity?: TimelineItemSeverity,\n tooltip?: string,\n color?: string,\n }) {\n this.id = params.id;\n this.title = params.title;\n this.description = params.description;\n this.icon = params.icon;\n this.label = params.label;\n this.tooltip = params.tooltip;\n this.size = params.size || TimelineItemSize.Normal;\n this.severity = params.severity || TimelineItemSeverity.Normal;\n this.color = params.color;\n\n this.checkItemIconContent();\n }\n\n public checkItemIconContent() {\n if (!this.icon && !this.label) {\n throw new Error(\"No icon or label string was passed for the item. Enter an icon or label text\");\n }\n\n if (this.icon && this.label) {\n throw new Error(\"An icon and label string were passed to the item. Enter an icon or label text\");\n }\n\n if (this.label?.length > LABEL_MAX_LENGTH) {\n throw new Error(\"Label text is expected to be a maximum of two characters long\");\n }\n }\n\n public testSize(value: string) {\n return this.size.valueOf() === value;\n }\n\n public testSeverity(value: string) {\n return this.severity?.valueOf() === value;\n }\n}\n","import { Component, EventEmitter, Input, Output, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-tile\",\n templateUrl: \"./tile.component.html\",\n styleUrls: [\"./tile.component.scss\"],\n})\nexport class TileComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-tile-${TileComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public description: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabIndex = 0;\n\n @Output()\n public onClick = new EventEmitter();\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.label) {\n const words = this.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: any) {\n if (!this.disabled && [13, 32].includes(event.keyCode)) {\n this.onClick.emit();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { TileComponent } from \"./tile.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ThumbnailModule,\n ],\n declarations: [TileComponent],\n exports: [\n TileComponent,\n ThumbnailModule,\n ],\n})\nexport class TileModule { }\n","export interface FileValidationErrors {\n file: File;\n validation: FileValidation,\n}\n\nexport enum FileValidation {\n MaxFileSize = \"maxFileSize\",\n MaxFileLimit = \"maxFileLimit\",\n TypeInvalid = \"typeInvalid\",\n UnsupportedExtension = \"unsupportedExtension\",\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\n\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { CropperLabelsConfig, FileValidationErrors, FileValidation, ConfirmationTexts } from \"./models/index\";\nimport { ImageCropperService } from \"../image-cropper/image-cropper.service\";\n\n@Component({\n selector: \"s-profile-picture-picker\",\n templateUrl: \"profile-picture-picker.component.html\",\n styleUrls: [\"profile-picture-picker.component.scss\"],\n})\nexport class ProfilePicturePickerComponent implements OnInit {\n @Input()\n public simpleTitle: string;\n\n @Input()\n public actionTitle: string;\n\n @Input()\n public subtitle: string;\n\n @Input()\n public aspectRatio = 1;\n\n @Input()\n public cropperLabelsConfig: CropperLabelsConfig;\n\n @Input()\n public removeButtonLabel = \"Remover\";\n\n @Input()\n public changeButtonLabel = \"Alterar foto\";\n\n @Input()\n public confirmationTexts: ConfirmationTexts = {\n removalHeader: \"Remover foto de perfil\",\n removalMessage: \"Deseja remover sua foto de perfil? Não pode ser revertida.\",\n removalAcceptLabel: \"Remover\",\n removalRejectLabel: \"Cancelar\",\n };\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public image: string;\n\n @ViewChild(\"uploadPicture\")\n public uploadPicture: ElementRef;\n\n @ViewChild(\"info\")\n public info: ElementRef;\n\n @ViewChild(\"thumbnail\", { read: ElementRef })\n public thumbnail: ElementRef;\n\n @ViewChild(\"fileInput\", { read: ElementRef })\n public fileInput: ElementRef;\n\n @Output()\n public changedImage: EventEmitter<string> = new EventEmitter();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public invalidFile: EventEmitter<FileValidationErrors> = new EventEmitter();\n\n constructor(\n private imageCropperService: ImageCropperService,\n private confirmationService: ConfirmationService,\n ) { }\n\n public ngOnInit(): void {\n this._normalizeSuportedExtensions();\n }\n\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"drop\", [\"$event\"])\n public onDrop(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const files: File[] = [];\n const dataTransferFiles = event.dataTransfer.files;\n\n for (let i = 0; i < dataTransferFiles.length; i++) {\n files.push(dataTransferFiles.item(i));\n }\n\n this._showImageCropper(files);\n }\n\n // Verificando o redimensionamento para ajustar o design para ficar responsivo.\n @HostListener(\"window:resize\")\n public onResize(): void {\n if (this.uploadPicture && this.info && this.thumbnail) {\n const uploadPictureWidth = this._getWidthElement(this.uploadPicture);\n const infoWidth = this._getWidthElement(this.info);\n const thumbnailWidth = this._getWidthElement(this.thumbnail);\n\n if (thumbnailWidth + infoWidth > uploadPictureWidth) {\n this.uploadPicture.nativeElement.classList.add(\"upload-picture--small\");\n } else {\n this.uploadPicture.nativeElement.classList.remove(\"upload-picture--small\");\n }\n }\n }\n\n public selectPhoto(): void {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n fileInputElement.click();\n }\n\n public removePhoto(): void {\n this.confirmationService.confirm({\n message: this.confirmationTexts.removalMessage,\n acceptLabel: this.confirmationTexts.removalAcceptLabel,\n rejectLabel: this.confirmationTexts.removalRejectLabel,\n header: this.confirmationTexts.removalHeader,\n accept: () => {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n this.image = \"\";\n this.removedImage.emit();\n },\n });\n }\n\n public photoSelected(event: any) {\n this._showImageCropper(event.srcElement.files);\n }\n\n private _showImageCropper(files: File[]) {\n if (!this._validateData(files)) {\n return;\n }\n\n const file = files[0];\n\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onloadend = (fileEvent: any) => {\n this.imageCropperService.show({\n imageSource: fileEvent.target.result,\n croppedImage: image => {\n this.image = image;\n this.changedImage.emit(image);\n },\n changeImage: () => this.selectPhoto(),\n allowSelectAnother: false,\n aspectRatio: this.aspectRatio,\n ...this.cropperLabelsConfig,\n });\n };\n }\n\n private _normalizeSuportedExtensions() {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLocaleLowerCase());\n }\n\n private _validateData(files: File[]) {\n if (!files.length) {\n return false;\n }\n\n if (files.length > 1) {\n this.invalidFile.emit({ file: null, validation: FileValidation.MaxFileLimit });\n return false;\n }\n\n const file = files[0];\n\n if (!file.type.includes(\"image\")) {\n this.invalidFile.emit({ file, validation: FileValidation.TypeInvalid });\n return false;\n }\n\n if (!this._validateFileExtension(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.UnsupportedExtension });\n return false;\n }\n\n if (!this._validateFileSize(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.MaxFileSize });\n return false;\n }\n\n return true;\n }\n\n private _validateFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return this.supportedExtensions.includes(extension);\n }\n return true;\n }\n\n private _validateFileSize(file: File) {\n if (this.maxFileSize) {\n return file.size > this.maxFileSize;\n }\n return true;\n }\n\n private _getWidthElement(element: ElementRef): number {\n const { left, right } = element.nativeElement.getBoundingClientRect();\n return right - left;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { ButtonModule } from '../button/button.module';\nimport { ThumbnailModule } from '../thumbnail/thumbnail.module';\nimport { ImageCropperModule } from '../image-cropper/image-cropper.module';\nimport { ImageCropperService } from '../image-cropper/image-cropper.service';\nimport { ProfilePicturePickerComponent } from \"./profile-picture-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n ThumbnailModule,\n ImageCropperModule,\n ConfirmDialogModule,\n ],\n declarations: [ProfilePicturePickerComponent],\n exports: [ProfilePicturePickerComponent],\n providers: [\n ImageCropperService,\n ConfirmationService,\n ],\n})\nexport class ProfilePicturePickerModule { }","export enum GlobalSearchSizeEnum {\n STANDARD = \"STANDARD\",\n MEDIUM = \"MEDIUM\",\n SMALL = \"SMALL\"\n}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef\n} from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { GlobalSearchSizeEnum } from \"../../global-search-size.enum\";\n\n@Component({\n selector: \"s-global-search-dropdown-item\",\n templateUrl: \"./global-search-dropdown-item.component.html\",\n styleUrls: [\"./global-search-dropdown-item.component.scss\"]\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel: string;\n\n @Input()\n public secondaryEmptyLabel: string;\n\n @Input()\n public tertiaryEmptyLabel: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size = GlobalSearchSizeEnum.STANDARD;\n\n @Input()\n public template: ElementRef;\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n private isStandardSize() {\n return this.size === GlobalSearchSizeEnum.STANDARD;\n }\n\n public isMediumSize() {\n return this.size === GlobalSearchSizeEnum.MEDIUM;\n }\n\n public isSmallSize() {\n return this.size === GlobalSearchSizeEnum.SMALL;\n }\n\n public getImageSize() {\n return this.isStandardSize() ? \"medium\" : \"small\";\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n ChangeDetectorRef\n} from \"@angular/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nimport { ExportUtils } from \"../utils\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\n\n@Component({\n selector: \"s-global-search\",\n templateUrl: \"./global-search.component.html\",\n styleUrls: [\"./global-search.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n ]\n})\nexport class GlobalSearchComponent {\n\n public static nextId = 0;\n\n @ViewChild(\"globalSearch\", { static: false }) globalSearch: ElementRef;\n\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public delay = 500;\n\n @Input()\n public totalItensLabel: string;\n\n @Input()\n public showMoreLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public isLoading = false;\n\n @Input()\n public totalElements: number;\n\n @Input()\n public emptyTitle: string;\n\n @Input()\n public emptyDescription: string;\n\n @Input()\n public emptyIcon: string;\n\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent>;\n\n @Output() onSearch = new EventEmitter<string>();\n @Output() onFocus = new EventEmitter<boolean>();\n @Output() onShowMore = new EventEmitter();\n\n public search: string;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this.canShowGlobalSearchActive();\n this.onSearch.emit(this.search);\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.onFocus.emit(true);\n }\n\n public focusOut() {\n this.onFocus.emit(false);\n }\n\n public showMore() {\n this.onShowMore.emit();\n }\n\n private removeActiveClassByGlobalSearch() {\n ExportUtils.removeClass(this.globalSearch, \"global-search__input-active\");\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this.removeActiveClassByGlobalSearch();\n }\n\n private canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n ExportUtils.addClass(this.globalSearch, \"global-search__input-active\");\n } else {\n this.removeActiveClassByGlobalSearch();\n this.close();\n }\n this.cdr.detectChanges();\n }\n\n}\n","import {\n ElementRef,\n EventEmitter,\n Directive,\n HostListener\n} from \"@angular/core\";\nimport { Output } from \"@angular/core\";\n\n@Directive({\n selector: \"[sInfiniteScroll]\"\n})\nexport class InfiniteScrollDirective {\n\n @Output() onScroll = new EventEmitter<number>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"scroll\")\n scroll() {\n if (this.el.nativeElement.scrollTop > (this.el.nativeElement.scrollHeight - this.el.nativeElement.offsetHeight - 2)) {\n this.onScroll.emit();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { InfiniteScrollDirective } from \"./infinite-scroll.directive\";\n\n@NgModule({\n declarations: [\n InfiniteScrollDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { GlobalSearchComponent } from \"./global-search.component\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { InfiniteScrollModule } from \"../infinite-scroll/infinite-scroll.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ],\n entryComponents: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ]\n})\nexport class GlobalSearchModule { }\n","export enum Languages {\n TaxCalculation = \"TaxCalculation\"\n}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/editor-options\";\n\n/* Enums */\nexport * from \"./enums/languages\";\nexport * from \"./enums/themes\";\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade; \n\nexport class CoreLinters {\n\n private static _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) return languageLinterFactory();\n }\n}\n","import {\n Observable,\n ReplaySubject,\n Subject\n} from \"rxjs\";\n\nimport {\n EditorOptions,\n Languages,\n Themes\n} from \"../../models\";\nimport { Marker } from \"../models\";\nimport { CoreLinters } from \"../use-cases/core-linters\";\nimport { LinterFacade } from \"./linter-facade\";\n\nexport abstract class CoreFacade {\n\n private $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private $onCodeChange: Subject<string> = new Subject();\n private $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = \"\";\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== \"object\") throw new Error(\"Editor's options must be an EditorOptions object\");\n\n this.validateLanguage(options.language);\n this.validateTheme(options.theme);\n this.setLinter(options.language);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language);\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) throw new Error(`The informed language \"${language}\" is not supported`);\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n\n private getSafeCode(code: string): string {\n return typeof code === \"string\" ? code : \"\";\n }\n}\n","import {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport {\n take,\n takeUntil\n} from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../core/facades/core-facade\";\nimport { EditorOptions } from \"../models\";\n\n@Component({\n selector: \"s-code-editor\",\n template: `<div #coreWrapper class=\"core-wrapper\"></div>`,\n styleUrls: [\"./code-editor-component.scss\"]\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n\n private _ngUnsubscribe: Subject<void> = new Subject();\n\n @ViewChild(\"coreWrapper\") private coreWrapperElement: ElementRef;\n\n @Input() public set editorOptions(options: EditorOptions) {\n this.coreFacade.changeEditorOptions(options);\n }\n\n @Input() public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n @Output() public codeChange: EventEmitter<string> = new EventEmitter();\n\n @Input() public isCodeValid: boolean;\n\n @Output() public isCodeValidChange: EventEmitter<boolean> = new EventEmitter();\n\n @Output() public onCodeChange: EventEmitter<string> = new EventEmitter();\n\n @Output() public onComponentFinishLoad: EventEmitter<void> = new EventEmitter();\n\n constructor(private readonly coreFacade: CoreFacade) {}\n\n public ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(code => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(validity => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","/* Interfaces */\nexport * from \"./interfaces/tax-calculation-configs\";\nexport * from \"./interfaces/fields-order-by\";\nexport * from \"./interfaces/rec-page-request\";\nexport * from \"./interfaces/list-facade-metadata-names\";\nexport * from \"./interfaces/facade-metadata-name\";\nexport * from \"./interfaces/rec-front-context-metadata\";\nexport * from \"./interfaces/list-context-metadata-by-id\";\nexport * from \"./interfaces/rec-expression-metadata\";\nexport * from \"./interfaces/list-expression-metadata\";\nexport * from \"./interfaces/rec-front-field-metadata\";\nexport * from \"./interfaces/rec-front-facade-metadata\";\nexport * from \"./interfaces/get-facade-metadata-by-path\";\nexport * from \"./interfaces/safe-http-communication\";\nexport * from \"./interfaces/completion-Item\";\n\n/* Enums */\nexport * from \"./enums/enum-type-order\";\nexport * from \"./enums/meta-type\";\nexport * from \"./enums/request-types\";\nexport * from \"./enums/completion-types\";\nexport * from \"./enums/keywords\";\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","/* Interfaces */\nexport * from \"./interfaces/marker\";\n\n/* Enums */\nexport * from \"./enums/marker-severity\";\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from \"@codemirror/state\";\nimport { showTooltip, Tooltip } from \"@codemirror/tooltip\";\n\nimport { CodeMirror6Core } from \"../../../../../../codemirror-6-core\";\nimport { style } from \"./autocomplete-state-wrapper-style\";\n\nlet htmlElementToBeWrapped: HTMLElement = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\n export function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field) {\n return showTooltip.compute([field], state => state.field(field));\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip {\n if (!htmlElementToBeWrapped) return;\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement(\"div\");\n wrapperDiv.className = \"cm-tooltip-autocomplete cm-tooltip\";\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from \"../models\";\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {}\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion\n} from \"@codemirror/autocomplete\";\n\nimport { CustomTranslationsService } from \"../../../../../../utils\";\nimport { CodeMirror6Core } from \"../../../../codemirror-6-core\";\nimport { isCurrentPositionInsideString } from \"../../../../utils\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState\n} from \"./autocomplete-states\";\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from \"../../models\";\nimport {\n getLanguageConfigs,\n getSafeResponse\n} from \"../../utils\";\nimport { style } from \"./autocomplete-style\";\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete (): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = \"core_language_tax_calculation\";\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) return;\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength\n ? codeLength\n : finalCompletionResults.from;\n completionResults = null;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n}\n\nlet cancelLastCompletionSearch: () => void = () => {};\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either pressing the\n * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the isSearchCanceled on token object\n * to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener(\"click\", cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener(\"click\", cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search was not cancelled\n * by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? \"\";\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise\n .all(requests)\n .then(responses => {\n if (!token.signal.aborted) {\n const completions = [].concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses),\n getExpressionsCompletions(responses),\n getEntitiesCompletions(responses)\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions\n };\n startCompletion(CodeMirror6Core.getEditorView());\n\n } else {\n showAutocompleteEmptyState();\n }\n\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) return \"\";\n\n const filter = string.match(/(#|\\.|)\\w*$/)?.[0] ?? \"\";\n return filter.replace(\".\", \"\").trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) return \"\";\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const path = stringWithoutPath.match(/(\\w*\\.)*$/)?.[0] ?? \"\";\n return path.replace(/\\.$/, \"\");\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === \"\") {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal\n )\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20\n }\n },\n abortSignal\n )\n });\n\n } else if (path.includes(\".\")) {\n const splittedPath = path.split(\".\");\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2)\n },\n abortSignal\n )\n });\n\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30\n }\n },\n abortSignal\n )\n });\n }\n\n return requests.map(request => getSafeResponse(request));\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== \"\") return [];\n\n const completions = [\n {\n label: Keywords.SE,\n apply: \"SE ()\\nENTAO\\n\\tacao\\nFIM_SE\",\n },\n {\n label: Keywords.SENAO,\n apply: \"SENAO\\n\\tacao\",\n },\n {\n label: Keywords.CONTENHA,\n apply: \"CONTENHA(condicao)\",\n },\n {\n label: Keywords.ENTAO,\n apply: \"ENTAO\\n\\tacao\",\n },\n {\n label: Keywords.FIM_SE,\n apply: \"FIM_SE \",\n },\n {\n label: Keywords.NAO,\n apply: \"NAO \",\n },\n {\n label: Keywords.E,\n apply: \"E \",\n },\n {\n label: Keywords.OU,\n apply: \"OU \"\n },\n ];\n\n return completions.map(completionItem => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword\n }));\n}\n\nfunction getContextsCompletions(responses: Response<any>[]): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListContextMetadataById\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? [])\n .map(contextMetadata => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response<any>[]): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListExpressionMetadata\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? [])\n .map(expressionMetadata => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? \"senior_expression\"\n : \"user_expression\"\n }`),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? CompletionTypes.Expression : CompletionTypes.UserExpression\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response<any>[]): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListFacadeMetadataNames\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> = responses.find(response =>\n response?.requestType === RequestTypes.GetFacadeMetadataByPath\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n facade.type === MetaType.ENTITY\n ? \"entity\"\n : \"field\"\n }`),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .filter(completionItem =>\n completionItem\n .label\n .toLowerCase()\n .startsWith(filter.toLowerCase()));\n}\n\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire completion's apply \n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .map(completionItem => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`)\n }));\n}\n\nfunction getCompletionApply(filter: string, oldApplyText: string): ((view: EditorView, completion: Completion, from: number, to: number) => void) {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n \n view.dispatch({\n changes: {\n from: newFrom,\n to,\n insert: oldApplyText\n },\n selection: {\n anchor: newFrom + oldApplyText.length\n },\n userEvent: \"input.complete\",\n annotations: pickedCompletion.of(completion)\n });\n } \n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","import { EditorView } from \"@codemirror/view\";\nimport {\n EditorState,\n StateEffect,\n Extension,\n TransactionSpec\n} from \"@codemirror/state\";\nimport { setDiagnostics } from \"@codemirror/lint\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../../../core/facades/core-facade\";\nimport { Marker } from \"../../../core/models\";\nimport { EditorOptions } from \"../../../models\";\nimport { EditorLanguages } from \"./languages/editor-languages\";\nimport { EditorThemes } from \"./themes/editor-themes\";\nimport { convertMarkersToDiagnostics } from \"./utils\";\n\nexport class CodeMirror6Core extends CoreFacade {\n\n public static $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = \"\";\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = \"\";\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language);\n const theme = EditorThemes.getTheme(options.theme);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([\n language,\n theme,\n this.getCodeChangeListenerExtension()\n ])\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(markers, CodeMirror6Core._editorView.state.doc.length);\n CodeMirror6Core.updateEditorView(setDiagnostics(CodeMirror6Core._editorView.state, diagnostics));\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe(items => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [\n this._editorOptionsReceivedBeforeViewCreation,\n this.getCodeChangeListenerExtension()\n ]\n })\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(update => update.docChanged && this.notifyCodeChange(update.state.doc.toString()));\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code\n }\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor-component\";\nimport { CoreFacade } from \"../core/facades/core-facade\";\nimport { CodeMirror6Core } from \"../infra/cores/codemirror-6/codemirror-6-core\";\nimport {\n CustomTranslationsModule\n} from \"../infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n CustomTranslationsModule,\n ],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core\n }\n ]\n})\nexport class CodeEditorModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n} from \"@angular/core\";\n\nimport { Workspace } from \"./models/workspace\";\n\n@Component({\n selector: \"s-workspace-switch\",\n templateUrl: \"./workspace-switch.component.html\",\n styleUrls: [\"./workspace-switch.component.scss\"],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n @Input()\n public workspaces: Workspace[];\n\n @Input()\n public footerButtonLabel = \"Adicionar\";\n\n @Input()\n public showFooterButton = true;\n\n @Input()\n public disabled = false;\n\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n public open = false;\n\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n }\n } else if (event.key === \"ArrowUp\") {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations() {\n if (!this.workspaces.length) {\n throw new Error(\"Workspaces list is empty.\");\n }\n }\n\n public buttonOnBlur() {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace) {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick() {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { WorkspaceSwitchComponent } from \"./workspace-switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule { }\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"./models\";\n\n@Component({\n selector: \"s-progressbar\",\n templateUrl: \"./progressbar.component.html\",\n styleUrls: [\"./progressbar.component.scss\"],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n public ngOnInit() {\n this.validateValues();\n }\n\n private validateValues() {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ProgressBarComponent } from \"./progressbar.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ProgressBarComponent],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule { }","export enum ProgressBarColors {\n Blue = \"blue\",\n Green = \"green\",\n Red = \"red\",\n Yellow = \"yellow\",\n}","import { Component, Input, forwardRef } from \"@angular/core\";\n\nimport { RatingScaleNode } from \"./models/rating-scale-node\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-rating-scale\",\n templateUrl: \"./rating-scale.component.html\",\n styleUrls: [\"./rating-scale.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingScaleComponent),\n multi: true,\n }],\n})\nexport class RatingScaleComponent implements ControlValueAccessor {\n @Input()\n public nodes: RatingScaleNode[];\n\n @Input()\n public startLabel: string;\n\n @Input()\n public endLabel: string;\n\n @Input()\n public disabled = false;\n\n public value: RatingScaleNode;\n private _onChange: (value: RatingScaleNode) => void;\n private _onTouched: (value: RatingScaleNode) => void;\n\n public writeValue(value: RatingScaleNode): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n public registerOnChange(onChange: (value: RatingScaleNode) => void): void {\n this._onChange = onChange;\n }\n public registerOnTouched(onTouched: (value: RatingScaleNode) => void): void {\n this._onTouched = onTouched;\n }\n\n public onSelect(rating: RatingScaleNode) {\n this.value = rating;\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { RatingScaleComponent } from \"./rating-scale.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ],\n declarations: [RatingScaleComponent],\n exports: [RatingScaleComponent],\n})\nexport class RatingScaleModule { }\n","export enum SplitButtonType {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Default = \"default\",\n}","import { Component, Input, Output, EventEmitter, HostListener, ElementRef } from \"@angular/core\";\n\nimport { SplitButtonOption } from \"./models/split-button-option\";\nimport { SplitButtonType } from \"./models/split-button-type\";\n\n@Component({\n selector: \"s-split-button\",\n templateUrl: \"./split-button.component.html\",\n styleUrls: [\"./split-button.component.scss\"],\n})\nexport class SplitButtonComponent {\n @Input()\n public disabled = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public label: string;\n\n @Input()\n public type = SplitButtonType.Primary;\n\n @Input()\n public options: SplitButtonOption[];\n\n @Output()\n public buttonClicked = new EventEmitter();\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeDropdown();\n }\n }\n\n public open = false;\n\n public onButtonClick() {\n if (!this.disabled) {\n this.buttonClicked.emit();\n this.closeDropdown();\n }\n }\n\n public onDropdownClick() {\n if (!this.disabled) {\n this.open = !this.open;\n }\n }\n\n public onOptionClick(option: SplitButtonOption) {\n option.action && option.action();\n this.closeDropdown();\n }\n\n private closeDropdown() {\n this.open = false;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SplitButtonComponent } from \"./split-button.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SplitButtonComponent],\n exports: [SplitButtonComponent],\n})\nexport class SplitButtonModule { }","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\n@Component({\n selector: \"s-panel\",\n templateUrl: \"./panel.component.html\",\n styleUrls: [\"./panel.component.scss\"],\n animations: [\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class PanelComponent {\n @Input()\n header: string;\n\n @Input()\n toggleable = true;\n\n @Input()\n collapsed = false;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n onCollapsedChange(collapsed: boolean): void {\n this.collapsed = collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n readonly EnumSeverity = EnumSeverity;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { PanelModule as PrimengPanelModule } from \"primeng/panel\";\n\nimport { PanelComponent } from \"./panel.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, PrimengPanelModule, BorderButtonModule],\n declarations: [PanelComponent],\n exports: [PanelComponent],\n})\nexport class PanelModule {}\n","export const fallback: any = {\n \"platform.angular_components.country_name_br\": \"Brasil\",\n \"platform.angular_components.country_name_us\": \"Estados Unidos\",\n \"platform.angular_components.country_name_co\": \"Colômbia\",\n \"platform.angular_components.country_name_ar\": \"Argentina\",\n \"platform.angular_components.country_name_cl\": \"Chile\",\n \"platform.angular_components.country_name_py\": \"Paraguai\",\n \"platform.angular_components.country_name_uy\": \"Uruguai\",\n \"platform.angular_components.country_name_cn\": \"China\",\n \"platform.angular_components.country_name_ca\": \"Canadá\",\n \"platform.angular_components.country_name_as\": \"Samoa Americana\",\n \"platform.angular_components.country_name_ai\": \"Anguilla\",\n \"platform.angular_components.country_name_ag\": \"Antígua e Barbuda\",\n \"platform.angular_components.country_name_bs\": \"Bahamas\",\n \"platform.angular_components.country_name_bb\": \"Barbados\",\n \"platform.angular_components.country_name_bm\": \"Bermuda\",\n \"platform.angular_components.country_name_vg\": \"Ilhas Virgens Britânicas\",\n \"platform.angular_components.country_name_ky\": \"Ilhas Cayman\",\n \"platform.angular_components.country_name_dm\": \"Dominica\",\n \"platform.angular_components.country_name_do\": \"República Dominicana\",\n \"platform.angular_components.country_name_gd\": \"Granada\",\n \"platform.angular_components.country_name_gu\": \"Guam\",\n \"platform.angular_components.country_name_jm\": \"Jamaica\",\n \"platform.angular_components.country_name_ms\": \"Montserrat\",\n \"platform.angular_components.country_name_mp\": \"Ilhas Mariana do Norte\",\n \"platform.angular_components.country_name_pr\": \"Porto Rico\",\n \"platform.angular_components.country_name_kn\": \"Saint Kitts and Nevis\",\n \"platform.angular_components.country_name_lc\": \"Saint Lucia\",\n \"platform.angular_components.country_name_vc\": \"Saint Vincent and the Grenadines\",\n \"platform.angular_components.country_name_tt\": \"Trinidad e Tobago\",\n \"platform.angular_components.country_name_tc\": \"Ilhas Turcas e Caicos\",\n \"platform.angular_components.country_name_fi\": \"Finlândia\",\n \"platform.angular_components.country_name_rs\": \"Sérvia\",\n \"platform.angular_components.country_name_zm\": \"Zâmbia\",\n \"platform.angular_components.country_name_af\": \"Afghanistão\",\n \"platform.angular_components.country_name_al\": \"Albânia\",\n \"platform.angular_components.country_name_hr\": \"Croácia\",\n \"platform.angular_components.country_name_ec\": \"Equador\",\n \"platform.angular_components.country_name_et\": \"Etiópia\",\n \"platform.angular_components.country_name_gh\": \"Gana\",\n \"platform.angular_components.country_name_gr\": \"Grécia\",\n \"platform.angular_components.country_name_ie\": \"Irlanda\",\n \"platform.angular_components.country_name_it\": \"Itália\",\n \"platform.angular_components.country_name_lr\": \"Libéria\",\n \"platform.angular_components.country_name_na\": \"Namíbia\",\n \"platform.angular_components.country_name_nz\": \"Nova Zelândia\",\n \"platform.angular_components.country_name_sa\": \"Arábia Saudita\",\n \"platform.angular_components.country_name_za\": \"África do Sul\",\n \"platform.angular_components.country_name_lk\": \"Sri Lanka\",\n \"platform.angular_components.country_name_sd\": \"Sudão\",\n \"platform.angular_components.country_name_th\": \"Tailândia\",\n \"platform.angular_components.country_name_ua\": \"Ucrânia\",\n \"platform.angular_components.country_name_ae\": \"Emirados Árabes Unidos\",\n \"platform.angular_components.country_name_va\": \"Vaticano\",\n \"platform.angular_components.country_name_zw\": \"Zimbábue\",\n \"platform.angular_components.country_name_dz\": \"Argélia\",\n \"platform.angular_components.country_name_be\": \"Bélgica\",\n \"platform.angular_components.country_name_yt\": \"Mayotte\",\n \"platform.angular_components.country_name_bl\": \"Saint Barthelemy\",\n \"platform.angular_components.country_name_mf\": \"Saint Martin\",\n \"platform.angular_components.country_name_ad\": \"Andora\",\n \"platform.angular_components.country_name_ao\": \"Angola\",\n \"platform.angular_components.country_name_ba\": \"Bósnia e Herzegovina\",\n \"platform.angular_components.country_name_bg\": \"Bulgária\",\n \"platform.angular_components.country_name_kh\": \"Camboja\",\n \"platform.angular_components.country_name_cz\": \"República Checa\",\n \"platform.angular_components.country_name_gq\": \"Guiné Equatorial\",\n \"platform.angular_components.country_name_gw\": \"Guiné-Bissau\",\n \"platform.angular_components.country_name_li\": \"Liechtenstein\",\n \"platform.angular_components.country_name_lu\": \"Luxemburgo\",\n \"platform.angular_components.country_name_mk\": \"Macedónia\",\n \"platform.angular_components.country_name_me\": \"Montenegro\",\n \"platform.angular_components.country_name_pe\": \"Peru\",\n \"platform.angular_components.country_name_pl\": \"Polónia\",\n \"platform.angular_components.country_name_pt\": \"Portugal\",\n \"platform.angular_components.country_name_si\": \"Slovenia\",\n \"platform.angular_components.country_name_am\": \"Arménia\",\n \"platform.angular_components.country_name_aw\": \"Aruba\",\n \"platform.angular_components.country_name_bn\": \"Brunei\",\n \"platform.angular_components.country_name_fj\": \"Fiji\",\n \"platform.angular_components.country_name_gm\": \"Gâmbia\",\n \"platform.angular_components.country_name_gy\": \"Guiana\",\n \"platform.angular_components.country_name_is\": \"Islândia\",\n \"platform.angular_components.country_name_fm\": \"Micronésia\",\n \"platform.angular_components.country_name_nr\": \"Nauru\",\n \"platform.angular_components.country_name_nu\": \"Niue\",\n \"platform.angular_components.country_name_pw\": \"Palau\",\n \"platform.angular_components.country_name_st\": \"Sao Tome e Principe\",\n \"platform.angular_components.country_name_to\": \"Tonga\",\n \"platform.angular_components.country_name_vu\": \"Vanuatu\",\n \"platform.angular_components.country_name_fk\": \"Ilhas Falkland (Malvinas)\",\n \"platform.angular_components.country_name_fo\": \"Ilhas Feroé\",\n \"platform.angular_components.country_name_sh\": \"Saint Helena\",\n \"platform.angular_components.country_name_au\": \"Austrália\",\n \"platform.angular_components.country_name_cx\": \"Christmas Island\",\n \"platform.angular_components.country_name_cc\": \"Ilhas Cocos (Keeling)\",\n \"platform.angular_components.country_name_cd\": \"República Democrática do Congo\",\n \"platform.angular_components.country_name_kg\": \"Quirguistão\",\n \"platform.angular_components.country_name_ro\": \"Roménia\",\n \"platform.angular_components.country_name_rw\": \"Ruanda\",\n \"platform.angular_components.country_name_sk\": \"Slovakia\",\n \"platform.angular_components.country_name_sy\": \"Syria\",\n \"platform.angular_components.country_name_tw\": \"Taiwan\",\n \"platform.angular_components.country_name_tz\": \"Tanzânia\",\n \"platform.angular_components.country_name_ye\": \"Iémen (Iémen, Yemen)\",\n \"platform.angular_components.country_name_at\": \"Áustria\",\n \"platform.angular_components.country_name_ke\": \"Quénia (Kenya)\",\n \"platform.angular_components.country_name_ug\": \"Uganda\",\n \"platform.angular_components.country_name_az\": \"Azerbaijão\",\n \"platform.angular_components.country_name_ch\": \"Suiça\",\n \"platform.angular_components.country_name_vn\": \"Vietnã (Vietname)\",\n \"platform.angular_components.country_name_bh\": \"Bahrein\",\n \"platform.angular_components.country_name_cr\": \"Costa Rica\",\n \"platform.angular_components.country_name_sv\": \"El Salvador\",\n \"platform.angular_components.country_name_ee\": \"Estónia\",\n \"platform.angular_components.country_name_sz\": \"Suazilândia\",\n \"platform.angular_components.country_name_gt\": \"Guatemala\",\n \"platform.angular_components.country_name_hk\": \"Hong Kong\",\n \"platform.angular_components.country_name_ls\": \"Lesoto\",\n \"platform.angular_components.country_name_mo\": \"Macau\",\n \"platform.angular_components.country_name_mt\": \"Malta\",\n \"platform.angular_components.country_name_mu\": \"Maurícia\",\n \"platform.angular_components.country_name_mn\": \"Mongólia\",\n \"platform.angular_components.country_name_ni\": \"Nicaragua\",\n \"platform.angular_components.country_name_om\": \"Omã\",\n \"platform.angular_components.country_name_pg\": \"Papua-Nova Guiné\",\n \"platform.angular_components.country_name_qa\": \"Catar\",\n \"platform.angular_components.country_name_sg\": \"Cingapura\",\n \"platform.angular_components.country_name_tl\": \"Timor-Leste\",\n \"platform.angular_components.country_name_bd\": \"Bangladesh\",\n \"platform.angular_components.country_name_im\": \"Ilha de Man\",\n \"platform.angular_components.country_name_by\": \"Bielorrússia\",\n \"platform.angular_components.country_name_bz\": \"Belize\",\n \"platform.angular_components.country_name_mv\": \"Maldivas\",\n \"platform.angular_components.country_name_mh\": \"Ilhas Marshall\",\n \"platform.angular_components.country_name_sr\": \"Suriname\",\n \"platform.angular_components.country_name_bj\": \"Benim\",\n \"platform.angular_components.country_name_bt\": \"Butão\",\n \"platform.angular_components.country_name_bf\": \"Burkina Faso\",\n \"platform.angular_components.country_name_bi\": \"Burundi\",\n \"platform.angular_components.country_name_cf\": \"República Centro-Africana\",\n \"platform.angular_components.country_name_td\": \"Chad\",\n \"platform.angular_components.country_name_ci\": \"Costa do Marfim\",\n \"platform.angular_components.country_name_dk\": \"Dinamarca\",\n \"platform.angular_components.country_name_dj\": \"Djibouti\",\n \"platform.angular_components.country_name_fr\": \"França\",\n \"platform.angular_components.country_name_pf\": \"Polinésia Francesa\",\n \"platform.angular_components.country_name_ga\": \"Gabão\",\n \"platform.angular_components.country_name_ml\": \"Mali\",\n \"platform.angular_components.country_name_mr\": \"Mauritânia\",\n \"platform.angular_components.country_name_ne\": \"Níger\",\n \"platform.angular_components.country_name_sm\": \"San Marino\",\n \"platform.angular_components.country_name_tg\": \"Togo\",\n \"platform.angular_components.country_name_bo\": \"Bolívia\",\n \"platform.angular_components.country_name_gi\": \"Gibraltar\",\n \"platform.angular_components.country_name_ki\": \"Kiribati\",\n \"platform.angular_components.country_name_tv\": \"Tuvalu\",\n \"platform.angular_components.country_name_bw\": \"Botswana\",\n \"platform.angular_components.country_name_er\": \"Eritreia\",\n \"platform.angular_components.country_name_lv\": \"Letônia\",\n \"platform.angular_components.country_name_lb\": \"Líbano\",\n \"platform.angular_components.country_name_tn\": \"Tunísia\",\n \"platform.angular_components.country_name_cm\": \"Camarões\",\n \"platform.angular_components.country_name_cv\": \"Cabo Verde\",\n \"platform.angular_components.country_name_km\": \"Comores\",\n \"platform.angular_components.country_name_pm\": \"Saint Pierre and Miquelon\",\n \"platform.angular_components.country_name_cg\": \"República do Congo\",\n \"platform.angular_components.country_name_mz\": \"Moçambique\",\n \"platform.angular_components.country_name_mm\": \"Myanmar (Burma)\",\n \"platform.angular_components.country_name_ck\": \"Ilhas Cook\",\n \"platform.angular_components.country_name_cu\": \"Cuba\",\n \"platform.angular_components.country_name_cy\": \"Chipre\",\n \"platform.angular_components.country_name_eg\": \"Egito\",\n \"platform.angular_components.country_name_ir\": \"Irã\",\n \"platform.angular_components.country_name_iq\": \"Iraque\",\n \"platform.angular_components.country_name_ng\": \"Nigéria\",\n \"platform.angular_components.country_name_kp\": \"Coreia do Norte\",\n \"platform.angular_components.country_name_ph\": \"Filipinas\",\n \"platform.angular_components.country_name_ge\": \"Geórgia\",\n \"platform.angular_components.country_name_gn\": \"Guiné\",\n \"platform.angular_components.country_name_es\": \"Espanha\",\n \"platform.angular_components.country_name_de\": \"Alemanha\",\n \"platform.angular_components.country_name_gl\": \"Groelândia\",\n \"platform.angular_components.country_name_wf\": \"Wallis e Futuna\",\n \"platform.angular_components.country_name_ht\": \"Haiti\",\n \"platform.angular_components.country_name_hn\": \"Honduras\",\n \"platform.angular_components.country_name_pa\": \"Panamá\",\n \"platform.angular_components.country_name_hu\": \"Hungria\",\n \"platform.angular_components.country_name_in\": \"India\",\n \"platform.angular_components.country_name_id\": \"Indonésia\",\n \"platform.angular_components.country_name_il\": \"Israel\",\n \"platform.angular_components.country_name_jp\": \"Japão\",\n \"platform.angular_components.country_name_jo\": \"Jordânia\",\n \"platform.angular_components.country_name_kz\": \"Cazaquistão\",\n \"platform.angular_components.country_name_kw\": \"Kuwait\",\n \"platform.angular_components.country_name_la\": \"Laos\",\n \"platform.angular_components.country_name_ly\": \"Líbia\",\n \"platform.angular_components.country_name_lt\": \"Lituânia\",\n \"platform.angular_components.country_name_np\": \"Nepal\",\n \"platform.angular_components.country_name_mg\": \"Madagáscar\",\n \"platform.angular_components.country_name_mw\": \"Malawi\",\n \"platform.angular_components.country_name_my\": \"Malásia\",\n \"platform.angular_components.country_name_mx\": \"México\",\n \"platform.angular_components.country_name_md\": \"Moldávia\",\n \"platform.angular_components.country_name_mc\": \"Monaco\",\n \"platform.angular_components.country_name_ma\": \"Marrocos\",\n \"platform.angular_components.country_name_nl\": \"Países Baixos\",\n \"platform.angular_components.country_name_nc\": \"Nova Caledônia\",\n \"platform.angular_components.country_name_no\": \"Noruega\",\n \"platform.angular_components.country_name_pk\": \"Paquistão\",\n \"platform.angular_components.country_name_ru\": \"Rússia\",\n \"platform.angular_components.country_name_ws\": \"Samoa\",\n \"platform.angular_components.country_name_sb\": \"Ilhas Salomão\",\n \"platform.angular_components.country_name_sn\": \"Senegal\",\n \"platform.angular_components.country_name_sc\": \"Seychelles\",\n \"platform.angular_components.country_name_sl\": \"Serra Leoa\",\n \"platform.angular_components.country_name_so\": \"Somalia\",\n \"platform.angular_components.country_name_kr\": \"Coreia do Sul\",\n \"platform.angular_components.country_name_se\": \"Suécia\",\n \"platform.angular_components.country_name_tj\": \"Tajiquistão\",\n \"platform.angular_components.country_name_tk\": \"Tokelau\",\n \"platform.angular_components.country_name_tr\": \"Turquia\",\n \"platform.angular_components.country_name_tm\": \"Turquemenistão\",\n \"platform.angular_components.country_name_uz\": \"Uzbequistão\",\n \"platform.angular_components.country_name_ve\": \"Venezuela\",\n \"platform.angular_components.date_modified_custom_blob\": \"Enviado às {{hour}}:{{minutes}} de {{day}}/{{month}}/{{fullYear}}\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {CoreFacade as ɵce} from './components/code-editor/core/facades/core-facade';\nexport {CodeMirror6Core as ɵcf} from './components/code-editor/infra/cores/codemirror-6/codemirror-6-core';\nexport {CustomTranslationsModule as ɵcc} from './components/code-editor/infra/utils/custom-translations/custom-translations.module';\nexport {CodeEditorComponent as ɵcd} from './components/code-editor/presentation/code-editor-component';\nexport {CountryPhonePickerService as ɵc} from './components/country-phone-picker/country-phone-picker.service';\nexport {DynamicFieldComponent as ɵq} from './components/dynamic-form/components/dynamic-field/dynamic-field.component';\nexport {AutocompleteFieldComponent as ɵl} from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';\nexport {BignumberFieldComponent as ɵw} from './components/dynamic-form/components/fields/bignumber/number-field.component';\nexport {BooleanFieldComponent as ɵm} from './components/dynamic-form/components/fields/boolean/boolean-field.component';\nexport {BooleanSwitchFieldComponent as ɵbd} from './components/dynamic-form/components/fields/boolean/boolean-switch-field.component';\nexport {CalendarFieldComponent as ɵn} from './components/dynamic-form/components/fields/calendar/calendar-field.component';\nexport {ChipsFieldComponent as ɵo} from './components/dynamic-form/components/fields/chips/chips-field.component';\nexport {CurrencyFieldComponent as ɵp} from './components/dynamic-form/components/fields/currency/currency-field.component';\nexport {FileUploadComponent as ɵt} from './components/dynamic-form/components/fields/file-upload/file-upload.component';\nexport {LookupFieldComponent as ɵu} from './components/dynamic-form/components/fields/lookup/lookup-field.component';\nexport {NumberFieldComponent as ɵv} from './components/dynamic-form/components/fields/number/number-field.component';\nexport {PasswordFieldComponent as ɵbe} from './components/dynamic-form/components/fields/password/password-field.component';\nexport {RadioButtonComponent as ɵx} from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';\nexport {SelectFieldComponent as ɵba} from './components/dynamic-form/components/fields/select/select-field.component';\nexport {SliderFieldComponent as ɵbf} from './components/dynamic-form/components/fields/slider/slider-field.component';\nexport {TextAreaFieldComponent as ɵbb} from './components/dynamic-form/components/fields/text-area/text-area-field.component';\nexport {TextFieldComponent as ɵbc} from './components/dynamic-form/components/fields/text/text-field.component';\nexport {RowComponent as ɵy} from './components/dynamic-form/components/grid/row/row.component';\nexport {FieldsetComponent as ɵs} from './components/dynamic-form/components/structure/fieldset/fieldset.component';\nexport {SectionComponent as ɵz} from './components/dynamic-form/components/structure/section/section.component';\nexport {DecimalField as ɵbh,DecimalFieldConfig as ɵbg} from './components/dynamic-form/configurations/fields/decimal-field';\nexport {DynamicFormDirective as ɵr} from './components/dynamic-form/dynamic-form.directive';\nexport {EmptyStateGoBackComponent as ɵg} from './components/empty-state/go-back/go-back.component';\nexport {FileUploadService as ɵh} from './components/file-upload/file-upload.service';\nexport {SideTableComponent as ɵbi} from './components/gantt/components/side-table/side-table.component';\nexport {InfiniteScrollDirective as ɵcb} from './components/infinite-scroll/infinite-scroll.directive';\nexport {InfiniteScrollModule as ɵca} from './components/infinite-scroll/infinite-scroll.module';\nexport {InfoSignComponent as ɵi} from './components/info-sign/info-sign.component';\nexport {NumberLocaleOptions as ɵbm} from './components/locale/options';\nexport {LocalizedBignumberImpurePipe as ɵf} from './components/locale/pipes/localized-bignumber-impure.pipe';\nexport {LocalizedBignumberPipe as ɵe} from './components/locale/pipes/localized-bignumber.pipe';\nexport {LocalizedCurrencyImpurePipe as ɵd} from './components/locale/pipes/localized-currency-impure.pipe';\nexport {BorderButtonComponent as ɵbp} from './components/shared/border-button/border-button.component';\nexport {BorderButtonModule as ɵbo} from './components/shared/border-button/border-button.module';\nexport {FooterComponent as ɵbl} from './components/structure/footer.component';\nexport {HeaderComponent as ɵbk} from './components/structure/header.component';\nexport {StructureModule as ɵbj} from './components/structure/structure.module';\nexport {TableColumnsComponent as ɵj} from './components/table/table-column/table-columns.component';\nexport {TablePagingComponent as ɵk} from './components/table/table-paging/table-paging.component';\nexport {ThumbnailService as ɵbn} from './components/thumbnail/thumbnail.service';\nexport {HorizontalTimelineComponent as ɵbt} from './components/timeline/components/horizontal-timeline/horizontal-timeline.component';\nexport {HorizontalTimelineModule as ɵbs} from './components/timeline/components/horizontal-timeline/horizontal-timeline.module';\nexport {TimelineIconItemComponent as ɵbr} from './components/timeline/components/timeline-icon-item/timeline-icon-item.component';\nexport {TimelineItemModule as ɵbq} from './components/timeline/components/timeline-icon-item/timeline-icon-item.module';\nexport {CollapseOptionComponent as ɵbx} from './components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component';\nexport {CollapsedItemsComponent as ɵby} from './components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component';\nexport {RangeLineComponent as ɵbw} from './components/timeline/components/vertical-timeline/components/range-line/range-line.component';\nexport {VerticalItemsComponent as ɵbz} from './components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component';\nexport {VerticalTimelineComponent as ɵbv} from './components/timeline/components/vertical-timeline/vertical-timeline.component';\nexport {VerticalTimelineModule as ɵbu} from './components/timeline/components/vertical-timeline/vertical-timeline.module';\nexport {TooltipComponent as ɵa} from './components/tooltip/tooltip.component';\nexport {TooltipDirective as ɵb} from './components/tooltip/tooltip.directive';"],"names":["style","PrimeBreadcrumbModule","TooltipModule","moment","ProgressBarModule","CurrencyMaskDirective","FileUploadComponent","PrimeButtonModule","PanelModule","PrimeNGTableModule","PrimeSidebar","BigNumber","PrimengPanelModule"],"mappings":"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,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;IAC/C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MA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EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE;IAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE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"}