spiderly 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/esm2022/lib/components/auth/auth.module.mjs +65 -0
- package/esm2022/lib/components/auth/login/login.component.mjs +60 -0
- package/esm2022/lib/components/auth/partials/auth.component.mjs +53 -0
- package/esm2022/lib/components/auth/partials/login-verification.component.mjs +39 -0
- package/esm2022/lib/components/auth/partials/registration-verification.component.mjs +37 -0
- package/esm2022/lib/components/auth/partials/verification-wrapper.component.mjs +74 -0
- package/esm2022/lib/components/auth/registration/registration.component.mjs +59 -0
- package/esm2022/lib/components/base-details/role-base-details.component.mjs +171 -0
- package/esm2022/lib/components/base-form/base-form copy.mjs +247 -0
- package/esm2022/lib/components/card-skeleton/card-skeleton.component.mjs +25 -0
- package/esm2022/lib/components/footer/footer.component.mjs +16 -0
- package/esm2022/lib/components/index-card/index-card.component.mjs +57 -0
- package/esm2022/lib/components/info-card/info-card.component.mjs +29 -0
- package/esm2022/lib/components/layout/layout-base.component.mjs +120 -0
- package/esm2022/lib/components/layout/sidebar/menuitem.component.mjs +161 -0
- package/esm2022/lib/components/layout/sidebar/sidebar-menu.component.mjs +34 -0
- package/esm2022/lib/components/layout/sidebar/sidebar-menu.service.mjs +26 -0
- package/esm2022/lib/components/layout/sidebar/sidebar.component.mjs +21 -0
- package/esm2022/lib/components/layout/topbar/topbar.component.mjs +115 -0
- package/esm2022/lib/components/not-found/not-found.component.mjs +20 -0
- package/esm2022/lib/components/required/required.component.mjs +12 -0
- package/esm2022/lib/components/spiderly-buttons/google-button/google-button.component.mjs +43 -0
- package/esm2022/lib/components/spiderly-buttons/return-button/return-button.component.mjs +37 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.mjs +20 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.mjs +68 -0
- package/esm2022/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.mjs +22 -0
- package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +502 -0
- package/esm2022/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.mjs +42 -0
- package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +36 -0
- package/esm2022/lib/components/spiderly-panels/panel-body/panel-body.component.mjs +19 -0
- package/esm2022/lib/components/spiderly-panels/panel-footer/panel-footer.component.mjs +14 -0
- package/esm2022/lib/components/spiderly-panels/panel-header/panel-header.component.mjs +49 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.mjs +20 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.mjs +63 -0
- package/esm2022/lib/components/spiderly-panels/spiderly-panels.module.mjs +49 -0
- package/esm2022/lib/controls/base-autocomplete-control.mjs +18 -0
- package/esm2022/lib/controls/base-control.mjs +62 -0
- package/esm2022/lib/controls/base-dropdown-control.mjs +37 -0
- package/esm2022/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.mjs +60 -0
- package/esm2022/lib/controls/spiderly-calendar/spiderly-calendar.component.mjs +39 -0
- package/esm2022/lib/controls/spiderly-checkbox/spiderly-checkbox.component.mjs +45 -0
- package/esm2022/lib/controls/spiderly-colorpick/spiderly-colorpick.component.mjs +40 -0
- package/esm2022/lib/controls/spiderly-controls.module.mjs +112 -0
- package/esm2022/lib/controls/spiderly-dropdown/spiderly-dropdown.component.mjs +40 -0
- package/esm2022/lib/controls/spiderly-editor/spiderly-editor.component.mjs +59 -0
- package/esm2022/lib/controls/spiderly-file/spiderly-file.component.mjs +106 -0
- package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs +38 -0
- package/esm2022/lib/controls/spiderly-multiselect/spiderly-multiselect.component.mjs +34 -0
- package/esm2022/lib/controls/spiderly-number/spiderly-number.component.mjs +44 -0
- package/esm2022/lib/controls/spiderly-password/spiderly-password.component.mjs +37 -0
- package/esm2022/lib/controls/spiderly-textarea/spiderly-textarea.component.mjs +34 -0
- package/esm2022/lib/controls/spiderly-textbox/spiderly-textbox.component.mjs +45 -0
- package/esm2022/lib/entities/base-entity.mjs +18 -0
- package/esm2022/lib/entities/codebook.mjs +10 -0
- package/esm2022/lib/entities/init-company-auth-dialog-details.mjs +9 -0
- package/esm2022/lib/entities/init-top-bar-data.mjs +12 -0
- package/esm2022/lib/entities/is-authorized-for-save-event.mjs +9 -0
- package/esm2022/lib/entities/last-menu-icon-index-clicked.mjs +8 -0
- package/esm2022/lib/entities/lazy-load-selected-ids-result.mjs +11 -0
- package/esm2022/lib/entities/menuchangeevent.mjs +3 -0
- package/esm2022/lib/entities/mime-type.mjs +15 -0
- package/esm2022/lib/entities/namebook.mjs +9 -0
- package/esm2022/lib/entities/primeng-option.mjs +9 -0
- package/esm2022/lib/entities/security-entities.mjs +169 -0
- package/esm2022/lib/entities/simple-save-result.mjs +9 -0
- package/esm2022/lib/entities/spiderly-button.mjs +11 -0
- package/esm2022/lib/entities/table-filter-context.mjs +3 -0
- package/esm2022/lib/entities/table-filter-sort-meta.mjs +3 -0
- package/esm2022/lib/entities/table-filter.mjs +15 -0
- package/esm2022/lib/entities/table-response.mjs +3 -0
- package/esm2022/lib/enums/security-enums.mjs +26 -0
- package/esm2022/lib/enums/verification-type-codes.mjs +6 -0
- package/esm2022/lib/guards/auth.guard.mjs +40 -0
- package/esm2022/lib/guards/not-auth.guard.mjs +32 -0
- package/esm2022/lib/handlers/spiderly-error-handler.mjs +30 -0
- package/esm2022/lib/handlers/spiderly-transloco-fallback-strategy.mjs +24 -0
- package/esm2022/lib/interceptors/http-loading.interceptor.mjs +27 -0
- package/esm2022/lib/interceptors/json-parser.interceptor.mjs +47 -0
- package/esm2022/lib/interceptors/jwt.interceptor.mjs +27 -0
- package/esm2022/lib/interceptors/unauthorized.interceptor.mjs +64 -0
- package/esm2022/lib/modules/core.module.mjs +140 -0
- package/esm2022/lib/modules/primeng.module.mjs +278 -0
- package/esm2022/lib/modules/spiderly-transloco.module.mjs +44 -0
- package/esm2022/lib/services/api.service.security.mjs +86 -0
- package/esm2022/lib/services/app-initializer.mjs +6 -0
- package/esm2022/lib/services/app-layout-base.service.mjs +132 -0
- package/esm2022/lib/services/auth-base.service.mjs +220 -0
- package/esm2022/lib/services/base-form.service.mjs +124 -0
- package/esm2022/lib/services/config-base.service.mjs +33 -0
- package/esm2022/lib/services/helper-functions.mjs +229 -0
- package/esm2022/lib/services/spiderly-message.service.mjs +64 -0
- package/esm2022/lib/services/spiderly-transloco-loader.mjs +20 -0
- package/esm2022/lib/services/translate-labels-abstract.service.mjs +15 -0
- package/esm2022/lib/services/validator-abstract.service.mjs +51 -0
- package/esm2022/public-api.mjs +94 -0
- package/esm2022/spiderly.mjs +5 -0
- package/fesm2022/spiderly.mjs +4807 -0
- package/fesm2022/spiderly.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/auth/auth.module.d.ts +17 -0
- package/lib/components/auth/login/login.component.d.ts +35 -0
- package/lib/components/auth/partials/auth.component.d.ts +21 -0
- package/lib/components/auth/partials/login-verification.component.d.ts +18 -0
- package/lib/components/auth/partials/registration-verification.component.d.ts +17 -0
- package/lib/components/auth/partials/verification-wrapper.component.d.ts +31 -0
- package/lib/components/auth/registration/registration.component.d.ts +34 -0
- package/lib/components/base-details/role-base-details.component.d.ts +50 -0
- package/lib/components/base-form/base-form copy.d.ts +54 -0
- package/lib/components/card-skeleton/card-skeleton.component.d.ts +12 -0
- package/lib/components/footer/footer.component.d.ts +9 -0
- package/lib/components/index-card/index-card.component.d.ts +22 -0
- package/lib/components/info-card/info-card.component.d.ts +11 -0
- package/lib/components/layout/layout-base.component.d.ts +37 -0
- package/lib/components/layout/sidebar/menuitem.component.d.ts +43 -0
- package/lib/components/layout/sidebar/sidebar-menu.component.d.ts +23 -0
- package/lib/components/layout/sidebar/sidebar-menu.service.d.ts +12 -0
- package/lib/components/layout/sidebar/sidebar.component.d.ts +11 -0
- package/lib/components/layout/topbar/topbar.component.d.ts +45 -0
- package/lib/components/not-found/not-found.component.d.ts +9 -0
- package/lib/components/required/required.component.d.ts +6 -0
- package/lib/components/spiderly-buttons/google-button/google-button.component.d.ts +17 -0
- package/lib/components/spiderly-buttons/return-button/return-button.component.d.ts +10 -0
- package/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.d.ts +6 -0
- package/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.d.ts +27 -0
- package/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.d.ts +8 -0
- package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +157 -0
- package/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.d.ts +11 -0
- package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +37 -0
- package/lib/components/spiderly-panels/panel-body/panel-body.component.d.ts +9 -0
- package/lib/components/spiderly-panels/panel-footer/panel-footer.component.d.ts +8 -0
- package/lib/components/spiderly-panels/panel-header/panel-header.component.d.ts +29 -0
- package/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.d.ts +10 -0
- package/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.d.ts +25 -0
- package/lib/components/spiderly-panels/spiderly-panels.module.d.ts +13 -0
- package/lib/controls/base-autocomplete-control.d.ts +9 -0
- package/lib/controls/base-control.d.ts +23 -0
- package/lib/controls/base-dropdown-control.d.ts +18 -0
- package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +18 -0
- package/lib/controls/spiderly-calendar/spiderly-calendar.component.d.ts +13 -0
- package/lib/controls/spiderly-checkbox/spiderly-checkbox.component.d.ts +14 -0
- package/lib/controls/spiderly-colorpick/spiderly-colorpick.component.d.ts +11 -0
- package/lib/controls/spiderly-controls.module.d.ts +22 -0
- package/lib/controls/spiderly-dropdown/spiderly-dropdown.component.d.ts +14 -0
- package/lib/controls/spiderly-editor/spiderly-editor.component.d.ts +16 -0
- package/lib/controls/spiderly-file/spiderly-file.component.d.ts +36 -0
- package/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.d.ts +13 -0
- package/lib/controls/spiderly-multiselect/spiderly-multiselect.component.d.ts +11 -0
- package/lib/controls/spiderly-number/spiderly-number.component.d.ts +15 -0
- package/lib/controls/spiderly-password/spiderly-password.component.d.ts +12 -0
- package/lib/controls/spiderly-textarea/spiderly-textarea.component.d.ts +11 -0
- package/lib/controls/spiderly-textbox/spiderly-textbox.component.d.ts +15 -0
- package/lib/entities/base-entity.d.ts +14 -0
- package/lib/entities/codebook.d.ts +9 -0
- package/lib/entities/init-company-auth-dialog-details.d.ts +9 -0
- package/lib/entities/init-top-bar-data.d.ts +16 -0
- package/lib/entities/is-authorized-for-save-event.d.ts +9 -0
- package/lib/entities/last-menu-icon-index-clicked.d.ts +7 -0
- package/lib/entities/lazy-load-selected-ids-result.d.ts +9 -0
- package/lib/entities/menuchangeevent.d.ts +4 -0
- package/lib/entities/mime-type.d.ts +11 -0
- package/lib/entities/namebook.d.ts +9 -0
- package/lib/entities/primeng-option.d.ts +9 -0
- package/lib/entities/security-entities.d.ts +211 -0
- package/lib/entities/simple-save-result.d.ts +7 -0
- package/lib/entities/spiderly-button.d.ts +13 -0
- package/lib/entities/table-filter-context.d.ts +5 -0
- package/lib/entities/table-filter-sort-meta.d.ts +4 -0
- package/lib/entities/table-filter.d.ts +23 -0
- package/lib/entities/table-response.d.ts +4 -0
- package/lib/enums/security-enums.d.ts +22 -0
- package/lib/enums/verification-type-codes.d.ts +4 -0
- package/lib/guards/auth.guard.d.ts +15 -0
- package/lib/guards/not-auth.guard.d.ts +12 -0
- package/lib/handlers/spiderly-error-handler.d.ts +14 -0
- package/lib/handlers/spiderly-transloco-fallback-strategy.d.ts +13 -0
- package/lib/interceptors/http-loading.interceptor.d.ts +11 -0
- package/lib/interceptors/json-parser.interceptor.d.ts +11 -0
- package/lib/interceptors/jwt.interceptor.d.ts +11 -0
- package/lib/interceptors/unauthorized.interceptor.d.ts +16 -0
- package/lib/modules/core.module.d.ts +13 -0
- package/lib/modules/primeng.module.d.ts +42 -0
- package/lib/modules/spiderly-transloco.module.d.ts +9 -0
- package/lib/services/api.service.security.d.ts +35 -0
- package/lib/services/app-initializer.d.ts +4 -0
- package/lib/services/app-layout-base.service.d.ts +60 -0
- package/lib/services/auth-base.service.d.ts +55 -0
- package/lib/services/base-form.service.d.ts +27 -0
- package/lib/services/config-base.service.d.ts +24 -0
- package/lib/services/helper-functions.d.ts +37 -0
- package/lib/services/spiderly-message.service.d.ts +17 -0
- package/lib/services/spiderly-transloco-loader.d.ts +10 -0
- package/lib/services/translate-labels-abstract.service.d.ts +7 -0
- package/lib/services/validator-abstract.service.d.ts +13 -0
- package/package.json +60 -0
- package/public-api.d.ts +90 -0
- package/styles/components/spiderly-data-table/spiderly-data-table.component.scss +34 -0
- package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +10 -0
- package/styles/styles/layout/_config.scss +42 -0
- package/styles/styles/layout/_content.scss +12 -0
- package/styles/styles/layout/_footer.scss +9 -0
- package/styles/styles/layout/_main.scss +28 -0
- package/styles/styles/layout/_menu.scss +135 -0
- package/styles/styles/layout/_mixins.scss +13 -0
- package/styles/styles/layout/_preloading.scss +47 -0
- package/styles/styles/layout/_responsive.scss +100 -0
- package/styles/styles/layout/_spiderly-controls.scss +12 -0
- package/styles/styles/layout/_topbar.scss +231 -0
- package/styles/styles/layout/_typography.scss +63 -0
- package/styles/styles/layout/_utils.scss +20 -0
- package/styles/styles/layout/_variables.scss +903 -0
- package/styles/styles/layout/layout.scss +13 -0
- package/styles/styles/shared.scss +519 -0
- package/styles/styles/styles.scss +6 -0
- package/styles/styles/theme/base/_colors.scss +18 -0
- package/styles/styles/theme/base/_common.scss +75 -0
- package/styles/styles/theme/base/_components.scss +106 -0
- package/styles/styles/theme/base/_mixins.scss +343 -0
- package/styles/styles/theme/base/components/button/_button.scss +564 -0
- package/styles/styles/theme/base/components/button/_speeddial.scss +96 -0
- package/styles/styles/theme/base/components/button/_splitbutton.scss +381 -0
- package/styles/styles/theme/base/components/data/_carousel.scss +37 -0
- package/styles/styles/theme/base/components/data/_datatable.scss +338 -0
- package/styles/styles/theme/base/components/data/_dataview.scss +55 -0
- package/styles/styles/theme/base/components/data/_filter.scss +138 -0
- package/styles/styles/theme/base/components/data/_orderlist.scss +103 -0
- package/styles/styles/theme/base/components/data/_organizationchart.scss +50 -0
- package/styles/styles/theme/base/components/data/_paginator.scss +92 -0
- package/styles/styles/theme/base/components/data/_picklist.scss +103 -0
- package/styles/styles/theme/base/components/data/_timeline.scss +81 -0
- package/styles/styles/theme/base/components/data/_tree.scss +149 -0
- package/styles/styles/theme/base/components/data/_treetable.scss +256 -0
- package/styles/styles/theme/base/components/data/_virtualscroller.scss +28 -0
- package/styles/styles/theme/base/components/file/_fileupload.scss +64 -0
- package/styles/styles/theme/base/components/input/_autocomplete.scss +118 -0
- package/styles/styles/theme/base/components/input/_calendar.scss +263 -0
- package/styles/styles/theme/base/components/input/_cascadeselect.scss +130 -0
- package/styles/styles/theme/base/components/input/_checkbox.scss +90 -0
- package/styles/styles/theme/base/components/input/_chips.scss +55 -0
- package/styles/styles/theme/base/components/input/_colorpicker.scss +26 -0
- package/styles/styles/theme/base/components/input/_dropdown.scss +152 -0
- package/styles/styles/theme/base/components/input/_editor.scss +122 -0
- package/styles/styles/theme/base/components/input/_inputgroup.scss +75 -0
- package/styles/styles/theme/base/components/input/_inputmask.scss +16 -0
- package/styles/styles/theme/base/components/input/_inputnumber.scss +28 -0
- package/styles/styles/theme/base/components/input/_inputswitch.scss +60 -0
- package/styles/styles/theme/base/components/input/_inputtext.scss +100 -0
- package/styles/styles/theme/base/components/input/_listbox.scss +82 -0
- package/styles/styles/theme/base/components/input/_multiselect.scss +173 -0
- package/styles/styles/theme/base/components/input/_password.scss +52 -0
- package/styles/styles/theme/base/components/input/_radiobutton.scss +78 -0
- package/styles/styles/theme/base/components/input/_rating.scss +55 -0
- package/styles/styles/theme/base/components/input/_selectbutton.scss +50 -0
- package/styles/styles/theme/base/components/input/_slider.scss +71 -0
- package/styles/styles/theme/base/components/input/_togglebutton.scss +48 -0
- package/styles/styles/theme/base/components/input/_treeselect.scss +139 -0
- package/styles/styles/theme/base/components/menu/_breadcrumb.scss +42 -0
- package/styles/styles/theme/base/components/menu/_contextmenu.scss +39 -0
- package/styles/styles/theme/base/components/menu/_dock.scss +95 -0
- package/styles/styles/theme/base/components/menu/_megamenu.scss +55 -0
- package/styles/styles/theme/base/components/menu/_menu.scss +37 -0
- package/styles/styles/theme/base/components/menu/_menubar.scss +141 -0
- package/styles/styles/theme/base/components/menu/_panelmenu.scss +153 -0
- package/styles/styles/theme/base/components/menu/_slidemenu.scss +59 -0
- package/styles/styles/theme/base/components/menu/_steps.scss +56 -0
- package/styles/styles/theme/base/components/menu/_tabmenu.scss +74 -0
- package/styles/styles/theme/base/components/menu/_tieredmenu.scss +43 -0
- package/styles/styles/theme/base/components/messages/_inlinemessage.scss +69 -0
- package/styles/styles/theme/base/components/messages/_message.scss +107 -0
- package/styles/styles/theme/base/components/messages/_toast.scss +103 -0
- package/styles/styles/theme/base/components/misc/_avatar.scss +30 -0
- package/styles/styles/theme/base/components/misc/_badge.scss +48 -0
- package/styles/styles/theme/base/components/misc/_blockui.scss +0 -0
- package/styles/styles/theme/base/components/misc/_chip.scss +42 -0
- package/styles/styles/theme/base/components/misc/_inplace.scss +17 -0
- package/styles/styles/theme/base/components/misc/_progressbar.scss +17 -0
- package/styles/styles/theme/base/components/misc/_scrolltop.scss +25 -0
- package/styles/styles/theme/base/components/misc/_skeleton.scss +8 -0
- package/styles/styles/theme/base/components/misc/_tag.scss +40 -0
- package/styles/styles/theme/base/components/misc/_terminal.scss +12 -0
- package/styles/styles/theme/base/components/multimedia/_galleria.scss +155 -0
- package/styles/styles/theme/base/components/multimedia/_image.scss +49 -0
- package/styles/styles/theme/base/components/overlay/_confirmpopup.scss +72 -0
- package/styles/styles/theme/base/components/overlay/_dialog.scss +73 -0
- package/styles/styles/theme/base/components/overlay/_overlaypanel.scss +64 -0
- package/styles/styles/theme/base/components/overlay/_sidebar.scss +27 -0
- package/styles/styles/theme/base/components/overlay/_tooltip.scss +33 -0
- package/styles/styles/theme/base/components/panel/_accordion.scss +119 -0
- package/styles/styles/theme/base/components/panel/_card.scss +30 -0
- package/styles/styles/theme/base/components/panel/_divider.scss +31 -0
- package/styles/styles/theme/base/components/panel/_fieldset.scss +47 -0
- package/styles/styles/theme/base/components/panel/_panel.scss +58 -0
- package/styles/styles/theme/base/components/panel/_scrollpanel.scss +6 -0
- package/styles/styles/theme/base/components/panel/_splitter.scss +19 -0
- package/styles/styles/theme/base/components/panel/_tabview.scss +82 -0
- package/styles/styles/theme/base/components/panel/_toolbar.scss +11 -0
- package/styles/styles/theme/saga/_extensions.scss +27 -0
- package/styles/styles/theme/saga/_variables.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/_extensions.scss +2 -0
- package/styles/styles/theme/saga/saga-blue/_fonts.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/_variables.scss +1 -0
- package/styles/styles/theme/saga/saga-blue/theme.scss +4 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BaseControl } from '../base-control';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { getMimeTypeForFileName, isExcelFileType, isImageFileType } from '../../services/helper-functions';
|
|
7
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
8
|
+
import { BaseEntity } from '../../entities/base-entity';
|
|
9
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
10
|
+
import { SpiderlyButtonComponent } from '../../components/spiderly-buttons/spiderly-button/spiderly-button.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@jsverse/transloco";
|
|
13
|
+
import * as i2 from "@angular/common";
|
|
14
|
+
import * as i3 from "primeng/api";
|
|
15
|
+
import * as i4 from "primeng/fileupload";
|
|
16
|
+
export class SpiderlyFileComponent extends BaseControl {
|
|
17
|
+
constructor(translocoService) {
|
|
18
|
+
super(translocoService);
|
|
19
|
+
this.translocoService = translocoService;
|
|
20
|
+
this.onFileSelected = new EventEmitter();
|
|
21
|
+
this.onFileRemoved = new EventEmitter();
|
|
22
|
+
this.acceptedFileTypes = ['image/*'];
|
|
23
|
+
this.multiple = false;
|
|
24
|
+
this.files = [];
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
if (this.control?.value != null && this.fileData != null) {
|
|
28
|
+
const file = this.base64ToFile(this.fileData);
|
|
29
|
+
this.files.push(file);
|
|
30
|
+
}
|
|
31
|
+
this.acceptedFileTypesCommaSeparated = this.acceptedFileTypes.join(',');
|
|
32
|
+
super.ngOnInit();
|
|
33
|
+
}
|
|
34
|
+
filesSelected(event) {
|
|
35
|
+
const file = event.files[0];
|
|
36
|
+
const formData = new FormData();
|
|
37
|
+
formData.append('file', file, `${this.objectId}-${file.name}`);
|
|
38
|
+
this.onFileSelected.next(new SpiderlyFileSelectEvent({ file: file, formData: formData }));
|
|
39
|
+
}
|
|
40
|
+
choose(event, chooseCallback) {
|
|
41
|
+
chooseCallback();
|
|
42
|
+
}
|
|
43
|
+
fileRemoved(removeFileCallback, index) {
|
|
44
|
+
removeFileCallback(index);
|
|
45
|
+
this.control?.setValue(null);
|
|
46
|
+
this.onFileRemoved.next(null);
|
|
47
|
+
}
|
|
48
|
+
// FT: Put inside global functions if you need it
|
|
49
|
+
base64ToFile(base64String) {
|
|
50
|
+
const [header, base64Content] = base64String.split(';base64,');
|
|
51
|
+
const fileName = header.split('=')[1];
|
|
52
|
+
const mimeType = getMimeTypeForFileName(fileName);
|
|
53
|
+
const byteCharacters = atob(base64Content);
|
|
54
|
+
const byteNumbers = new Uint8Array(byteCharacters.length);
|
|
55
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
56
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
57
|
+
}
|
|
58
|
+
const blob = new Blob([byteNumbers], { type: mimeType });
|
|
59
|
+
const file = new File([blob], fileName, { type: mimeType });
|
|
60
|
+
return file;
|
|
61
|
+
}
|
|
62
|
+
isImageFileType(mimeType) {
|
|
63
|
+
return isImageFileType(mimeType);
|
|
64
|
+
}
|
|
65
|
+
isExcelFileType(mimeType) {
|
|
66
|
+
return isExcelFileType(mimeType);
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyFileComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyFileComponent, isStandalone: true, selector: "spiderly-file", inputs: { objectId: "objectId", fileData: "fileData", acceptedFileTypes: "acceptedFileTypes", required: "required", multiple: "multiple", files: "files" }, outputs: { onFileSelected: "onFileSelected", onFileRemoved: "onFileRemoved" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- FT: It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n <!-- <p-button (onClick)=\"clearCallback()\" icon=\"pi pi-times\" [rounded]=\"true\" [outlined]=\"true\" severity=\"danger\" [disabled]=\"!files || files.length === 0\" /> -->\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: RequiredComponent, selector: "required" }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyFileComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'spiderly-file', standalone: true, imports: [
|
|
74
|
+
CommonModule,
|
|
75
|
+
ReactiveFormsModule,
|
|
76
|
+
FormsModule,
|
|
77
|
+
PrimengModule,
|
|
78
|
+
RequiredComponent,
|
|
79
|
+
SpiderlyButtonComponent,
|
|
80
|
+
TranslocoDirective
|
|
81
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- FT: It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n <!-- <p-button (onClick)=\"clearCallback()\" icon=\"pi pi-times\" [rounded]=\"true\" [outlined]=\"true\" severity=\"danger\" [disabled]=\"!files || files.length === 0\" /> -->\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>" }]
|
|
82
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { onFileSelected: [{
|
|
83
|
+
type: Output
|
|
84
|
+
}], onFileRemoved: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}], objectId: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], fileData: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], acceptedFileTypes: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], required: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], multiple: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], files: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] } });
|
|
99
|
+
export class SpiderlyFileSelectEvent extends BaseEntity {
|
|
100
|
+
constructor({ file, formData, } = {}) {
|
|
101
|
+
super('SpiderlyFileSelectEvent');
|
|
102
|
+
this.file = file;
|
|
103
|
+
this.formData = formData;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LWZpbGUvc3BpZGVybHktZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LWZpbGUvc3BpZGVybHktZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7OztBQWlCdEgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQVc7SUFZbEQsWUFDdUIsZ0JBQWtDO1FBRXJELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVovQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUcxQyxzQkFBaUIsR0FBMkksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV4SyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFNNUIsQ0FBQztJQUVRLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXNCO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUIsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsY0FBYztRQUN4QixjQUFjLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEtBQWE7UUFDekMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQjtRQUM1QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXpFUSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyVUMzQmxDLDBtSEFxRGUsMkNEbkNQLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixXQUFXLDhCQUNYLGFBQWEsdTlCQUNiLGlCQUFpQixxREFDakIsdUJBQXVCLDREQUN2QixrQkFBa0I7OzRGQUdiLHFCQUFxQjtrQkFmakMsU0FBUzsrQkFDSSxlQUFlLGNBR2IsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjtxQkFDckI7cUZBR1MsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSzs7QUFtRVYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQVU7SUFLbkQsWUFDQSxFQUNJLElBQUksRUFDSixRQUFRLE1BSVIsRUFBRTtRQUVGLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlcXVpcmVkL3JlcXVpcmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZpbGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IGdldE1pbWVUeXBlRm9yRmlsZU5hbWUsIGlzRXhjZWxGaWxlVHlwZSwgaXNJbWFnZUZpbGVUeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscGVyLWZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9iYXNlLWVudGl0eSc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgU3BpZGVybHlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwaWRlcmx5LWJ1dHRvbnMvc3BpZGVybHktYnV0dG9uL3NwaWRlcmx5LWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NwaWRlcmx5LWZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudCxcclxuICAgICAgICBTcGlkZXJseUJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5RmlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSBvbkZpbGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U3BpZGVybHlGaWxlU2VsZWN0RXZlbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25GaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuICAgIEBJbnB1dCgpIG9iamVjdElkOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBmaWxlRGF0YTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYWNjZXB0ZWRGaWxlVHlwZXM6IEFycmF5PCdpbWFnZS8qJyB8ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcgfCAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyB8ICcueGxzeCcgfCAnLnhscyc+ID0gWydpbWFnZS8qJ107XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjsgLy8gRlQ6IEl0J3Mgb2theSBmb3IgdGhpcyBjb250cm9sLCBiZWNhdXNlIGZvciB0aGUgY3VzdG9tIHVwbG9hZHMgd2hlcmUgd2UgYXJlIG5vdCBpbml0aWFsaXppbmcgdGhlIGNvbnRyb2wgZnJvbSB0aGUgYmFja2VuZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZm9ybUNvbnRyb2wuXHJcbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBhY2NlcHRlZEZpbGVUeXBlc0NvbW1hU2VwYXJhdGVkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBmaWxlczogRmlsZVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcbiAgICApIHsgXHJcbiAgICAgICAgc3VwZXIodHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sPy52YWx1ZSAhPSBudWxsICYmIHRoaXMuZmlsZURhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5iYXNlNjRUb0ZpbGUodGhpcy5maWxlRGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWNjZXB0ZWRGaWxlVHlwZXNDb21tYVNlcGFyYXRlZCA9IHRoaXMuYWNjZXB0ZWRGaWxlVHlwZXMuam9pbignLCcpO1xyXG5cclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbGVzU2VsZWN0ZWQoZXZlbnQ6IEZpbGVTZWxlY3RFdmVudCl7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBgJHt0aGlzLm9iamVjdElkfS0ke2ZpbGUubmFtZX1gKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9uRmlsZVNlbGVjdGVkLm5leHQobmV3IFNwaWRlcmx5RmlsZVNlbGVjdEV2ZW50KHtmaWxlOiBmaWxlLCBmb3JtRGF0YTogZm9ybURhdGF9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hvb3NlKGV2ZW50LCBjaG9vc2VDYWxsYmFjayl7XHJcbiAgICAgICAgY2hvb3NlQ2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZmlsZVJlbW92ZWQocmVtb3ZlRmlsZUNhbGxiYWNrLCBpbmRleDogbnVtYmVyKXtcclxuICAgICAgICByZW1vdmVGaWxlQ2FsbGJhY2soaW5kZXgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgdGhpcy5vbkZpbGVSZW1vdmVkLm5leHQobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRlQ6IFB1dCBpbnNpZGUgZ2xvYmFsIGZ1bmN0aW9ucyBpZiB5b3UgbmVlZCBpdFxyXG4gICAgYmFzZTY0VG9GaWxlKGJhc2U2NFN0cmluZzogc3RyaW5nKXtcclxuICAgICAgICBjb25zdCBbaGVhZGVyLCBiYXNlNjRDb250ZW50XSA9IGJhc2U2NFN0cmluZy5zcGxpdCgnO2Jhc2U2NCwnKTtcclxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlci5zcGxpdCgnPScpWzFdO1xyXG4gICAgICAgIGNvbnN0IG1pbWVUeXBlID0gZ2V0TWltZVR5cGVGb3JGaWxlTmFtZShmaWxlTmFtZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjRDb250ZW50KTtcclxuICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBVaW50OEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlTnVtYmVyc10sIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZU5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSW1hZ2VGaWxlVHlwZShtaW1lVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlzSW1hZ2VGaWxlVHlwZShtaW1lVHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFeGNlbEZpbGVUeXBlKG1pbWVUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaXNFeGNlbEZpbGVUeXBlKG1pbWVUeXBlKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseUZpbGVTZWxlY3RFdmVudCBleHRlbmRzIEJhc2VFbnRpdHlcclxue1xyXG4gICAgZmlsZT86IEZpbGU7XHJcbiAgICBmb3JtRGF0YT86IEZvcm1EYXRhO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGZpbGUsXHJcbiAgICAgICAgZm9ybURhdGEsXHJcbiAgICB9OntcclxuICAgICAgICBmaWxlPzogRmlsZTtcclxuICAgICAgICBmb3JtRGF0YT86IEZvcm1EYXRhO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignU3BpZGVybHlGaWxlU2VsZWN0RXZlbnQnKTsgXHJcblxyXG4gICAgICAgIHRoaXMuZmlsZSA9IGZpbGU7XHJcbiAgICAgICAgdGhpcy5mb3JtRGF0YSA9IGZvcm1EYXRhO1xyXG4gICAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImdldFRyYW5zbGF0ZWRMYWJlbCgpICE9ICcnICYmIGdldFRyYW5zbGF0ZWRMYWJlbCgpICE9IG51bGxcIj5cclxuICAgICAgICAgICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwhLS0gRlQ6IEl0J3Mgb2theSBmb3IgdGhpcyBjb250cm9sLCBiZWNhdXNlIGZvciB0aGUgY3VzdG9tIHVwbG9hZHMgd2hlcmUgd2UgYXJlIG5vdCBpbml0aWFsaXppbmcgdGhlIGNvbnRyb2wgZnJvbSB0aGUgYmFja2VuZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZm9ybUNvbnRyb2wuIC0tPlxyXG4gICAgICAgICAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZCB8fCByZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwLWZpbGVVcGxvYWQgXHJcbiAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCIgXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbD8ubGFiZWwgPz8gbGFiZWxcIiBcclxuICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBcclxuICAgICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRmlsZVR5cGVzQ29tbWFTZXBhcmF0ZWRcIiBcclxuICAgICAgICBbbWF4RmlsZVNpemVdPVwiMTAwMDAwMFwiIFxyXG4gICAgICAgIChvblNlbGVjdCk9XCJmaWxlc1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgIFtjbGFzc109XCJjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LmRpcnR5ID8gJ2NvbnRyb2wtZXJyb3ItYm9yZGVyJyA6ICcnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtZmlsZXMgbGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIiBsZXQtY2xlYXJDYWxsYmFjaz1cImNsZWFyQ2FsbGJhY2tcIiBsZXQtdXBsb2FkQ2FsbGJhY2s9XCJ1cGxvYWRDYWxsYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LTEgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BpZGVybHktYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChvbkNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiIGljb249XCJwaSBwaS11cGxvYWRcIiBbcm91bmRlZF09XCJ0cnVlXCIgW291dGxpbmVkXT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwLWJ1dHRvbiAob25DbGljayk9XCJjbGVhckNhbGxiYWNrKClcIiBpY29uPVwicGkgcGktdGltZXNcIiBbcm91bmRlZF09XCJ0cnVlXCIgW291dGxpbmVkXT1cInRydWVcIiBzZXZlcml0eT1cImRhbmdlclwiIFtkaXNhYmxlZF09XCIhZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwXCIgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZmlsZXMgbGV0LXJlbW92ZUZpbGVDYWxsYmFjaz1cInJlbW92ZUZpbGVDYWxsYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTAgZ2FwLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZGV4ID0gaW5kZXhcIiBjbGFzcz1cImNhcmQgbS0wIHB4LTMgcHktMyBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG92ZXJmbG93OiBoaWRkZW47XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbWFnZUZpbGVUeXBlKGZpbGUudHlwZSlcIiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgcm9sZT1cInByZXNlbnRhdGlvblwiIFtzcmNdPVwiZmlsZS5vYmplY3RVUkxcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0V4Y2VsRmlsZVR5cGUoZmlsZS50eXBlKVwiIGNsYXNzPVwiZXhjZWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4Y2VsLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1maWxlLWV4Y2VsXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW47IG1hcmdpbi1yaWdodDogNHB4O1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgKG9uQ2xpY2spPVwiZmlsZVJlbW92ZWQocmVtb3ZlRmlsZUNhbGxiYWNrLCBpbmRleClcIiBbb3V0bGluZWRdPVwidHJ1ZVwiIFtyb3VuZGVkXT1cInRydWVcIiBzZXZlcml0eT1cImRhbmdlclwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWxlXCI+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNsb3VkLXVwbG9hZCBib3JkZXItMiBib3JkZXItY2lyY2xlIHAtNSB0ZXh0LTh4bCB0ZXh0LTQwMCBib3JkZXItNDAwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCBtYi0wXCI+e3t0KCdEcmFnQW5kRHJvcEZpbGVzSGVyZVRvVXBsb2FkJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC1maWxlVXBsb2FkPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BaseAutocompleteControl } from '../base-autocomplete-control';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
5
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "primeng/tooltip";
|
|
11
|
+
import * as i4 from "primeng/autocomplete";
|
|
12
|
+
import * as i5 from "@angular/common";
|
|
13
|
+
export class SpiderlyMultiAutocompleteComponent extends BaseAutocompleteControl {
|
|
14
|
+
// @Input() required: boolean = true; // TODO FT: delete if you don't need through whole app
|
|
15
|
+
constructor(translocoService) {
|
|
16
|
+
super(translocoService);
|
|
17
|
+
this.translocoService = translocoService;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
super.ngOnInit();
|
|
21
|
+
}
|
|
22
|
+
search(event) {
|
|
23
|
+
this.onTextInput.next(event);
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyMultiAutocompleteComponent, isStandalone: true, selector: "spiderly-multiautocomplete", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <p-autoComplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\" \r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n <span *ngIf=\"showAddon\" (click)=\"addonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{addonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'spiderly-multiautocomplete', standalone: true, imports: [
|
|
31
|
+
ReactiveFormsModule,
|
|
32
|
+
FormsModule,
|
|
33
|
+
PrimengModule,
|
|
34
|
+
CommonModule,
|
|
35
|
+
RequiredComponent
|
|
36
|
+
], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <p-autoComplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\" \r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n <span *ngIf=\"showAddon\" (click)=\"addonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{addonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>" }]
|
|
37
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbXVsdGlhdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlL3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSx1QkFBdUI7SUFDM0UsNEZBQTRGO0lBRTVGLFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFHekQsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWZRLGtDQUFrQzttR0FBbEMsa0NBQWtDLDZHQ3RCL0MsZ3dDQTRCTSwyQ0RiRSxtQkFBbUIseVRBQ25CLFdBQVcsOEJBQ1gsYUFBYSxvaURBQ2IsWUFBWSxtSUFDWixpQkFBaUI7OzRGQUdaLGtDQUFrQztrQkFiOUMsU0FBUzsrQkFDSSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQmFzZUF1dG9jb21wbGV0ZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWF1dG9jb21wbGV0ZS1jb250cm9sJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlcXVpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZXF1aXJlZC9yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgUHJpbWVuZ01vZHVsZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlcXVpcmVkQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseU11bHRpQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUF1dG9jb21wbGV0ZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLy8gQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlOyAvLyBUT0RPIEZUOiBkZWxldGUgaWYgeW91IGRvbid0IG5lZWQgdGhyb3VnaCB3aG9sZSBhcHBcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcbiAgICApIHsgXHJcbiAgICAgICAgc3VwZXIodHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaChldmVudDogQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCl7XHJcbiAgICAgICAgdGhpcy5vblRleHRJbnB1dC5uZXh0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwIHAtZmx1aWRcIj5cclxuICAgICAgPHAtYXV0b0NvbXBsZXRlIFxyXG4gICAgICAqbmdJZj1cImNvbnRyb2xcIlxyXG4gICAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgICAgW2lkXT1cImxhYmVsXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbc3VnZ2VzdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcclxuICAgICAgW211bHRpcGxlXT1cInRydWVcIiBcclxuICAgICAgW2Ryb3Bkb3duXT1cImZhbHNlXCJcclxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcclxuICAgICAgKG9uSGlkZSk9XCJkcm9wZG93bk1hcmtBc0RpcnR5KClcIlxyXG4gICAgICBbY29tcGxldGVPbkZvY3VzXT1cInRydWVcIlxyXG4gICAgICBkcm9wZG93bkljb249XCJwaSBwaS1wbHVzXCJcclxuICAgICAgW3N0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgICBbaW5wdXRTdHlsZV09XCJ7J3dpZHRoJzonMTAwJSd9XCJcclxuICAgICAgLz5cclxuICAgIDxzcGFuICpuZ0lmPVwic2hvd0FkZG9uXCIgKGNsaWNrKT1cImFkZG9uQ2xpY2soKVwiIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpOyBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1wiPlxyXG4gICAgICA8aSBjbGFzcz1cInBpIHt7YWRkb25JY29ufX1cIiBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPjwvaT5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { BaseDropdownControl } from '../base-dropdown-control';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "primeng/multiselect";
|
|
12
|
+
import * as i5 from "primeng/tooltip";
|
|
13
|
+
export class SpiderlyMultiSelectComponent extends BaseDropdownControl {
|
|
14
|
+
constructor(translocoService) {
|
|
15
|
+
super(translocoService);
|
|
16
|
+
this.translocoService = translocoService;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
super.ngOnInit();
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiSelectComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyMultiSelectComponent, isStandalone: true, selector: "spiderly-multiselect", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <span class=\"p-fluid\">\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n </span>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiSelectComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'spiderly-multiselect', standalone: true, imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
FormsModule,
|
|
30
|
+
PrimengModule,
|
|
31
|
+
RequiredComponent
|
|
32
|
+
], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <span class=\"p-fluid\">\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n </span>\r\n</div>" }]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1tdWx0aXNlbGVjdC9zcGlkZXJseS1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW11bHRpc2VsZWN0L3NwaWRlcmx5LW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFnQjdELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFFakUsWUFDdUIsZ0JBQWtDO1FBRXJELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUd6RCxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQVZRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHVHQ3RCekMsbWpDQXNCTSwyQ0RQRSxZQUFZLGtJQUNaLG1CQUFtQix5VEFDbkIsV0FBVyw4QkFDWCxhQUFhLDRxREFDYixpQkFBaUI7OzRGQUdaLDRCQUE0QjtrQkFkeEMsU0FBUzsrQkFDSSxzQkFBc0IsY0FJcEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZURyb3Bkb3duQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtZHJvcGRvd24tY29udHJvbCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3BpZGVybHktbXVsdGlzZWxlY3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW1xyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlNdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VEcm9wZG93bkNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgKm5nSWY9XCJjb250cm9sXCJcclxuICAgIFtwVG9vbHRpcF09XCJnZXRWYWxpZGF0aW9uRXJycm9yTWVzc2FnZXMoKVwiIFt0b29sdGlwRXZlbnRdPVwiZXJyb3JNZXNzYWdlVG9vbHRpcEV2ZW50XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW3Rvb2x0aXBEaXNhYmxlZF09XCJjb250cm9sLnZhbGlkXCIgdG9vbHRpcFN0eWxlQ2xhc3M9XCJzcGlkZXJseS10b29sdGlwLWludmFsaWRcIlxyXG4gICAgW2lkXT1cImxhYmVsXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgb3B0aW9uTGFiZWw9XCJsYWJlbFwiXHJcbiAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgIGRpc3BsYXk9XCJjaGlwXCJcclxuICAgIFttYXhTZWxlY3RlZExhYmVsc109XCIyMFwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgLz5cclxuICAgIDwhLS0gW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiIEZUOiBJIHRoaW5rIHRoYXQgdGhpcyBpcyBub3QgZG9pbmcgYW55dGhpbmcsIGNoZWNrIC0tPlxyXG4gICAgPCEtLSAob25GaWx0ZXIpPVwic2VhcmNoKCRldmVudClcIiBGVDogV2hpbGUgdGhleSBkb24ndCBpbXBsZW1lbnQgbGF6eSBsb2FkIGxpa2UgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3llbGhvdXRpL3ByaW1lbmcvYmxvYi84LjAuMC1yYzIvc3JjL2FwcC9jb21wb25lbnRzL211bHRpc2VsZWN0L211bHRpc2VsZWN0LnRzXHJcbiAgICAgd2UgbmVlZCB0byB1c2UgdGhpcyBhbmQgZHJvcGRvd24gY29udHJvbCBvbmx5IG9uIHRoZSBjbGllbnQgLS0+XHJcbiAgPC9zcGFuPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { BaseControl } from '../base-control';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "primeng/tooltip";
|
|
12
|
+
import * as i5 from "primeng/inputnumber";
|
|
13
|
+
export class SpiderlyNumberComponent extends BaseControl {
|
|
14
|
+
constructor(translocoService) {
|
|
15
|
+
super(translocoService);
|
|
16
|
+
this.translocoService = translocoService;
|
|
17
|
+
this.showButtons = true;
|
|
18
|
+
this.maxFractionDigits = 0;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
super.ngOnInit();
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyNumberComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyNumberComponent, isStandalone: true, selector: "spiderly-number", inputs: { prefix: "prefix", showButtons: "showButtons", decimal: "decimal", maxFractionDigits: "maxFractionDigits" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyNumberComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'spiderly-number', standalone: true, imports: [
|
|
29
|
+
CommonModule,
|
|
30
|
+
ReactiveFormsModule,
|
|
31
|
+
FormsModule,
|
|
32
|
+
PrimengModule,
|
|
33
|
+
RequiredComponent
|
|
34
|
+
], template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>" }]
|
|
35
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { prefix: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], showButtons: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], decimal: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], maxFractionDigits: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29udHJvbHMvc3BpZGVybHktbnVtYmVyL3NwaWRlcmx5LW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW51bWJlci9zcGlkZXJseS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFXO0lBTXBELFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFMaEQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBTXZDLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBZFEsdUJBQXVCO21HQUF2Qix1QkFBdUIsd05DckJwQyxzeEJBa0JRLDJDREpBLFlBQVksa0lBQ1osbUJBQW1CLHlUQUNuQixXQUFXLDhCQUNYLGFBQWEsaWxDQUNiLGlCQUFpQjs7NEZBR1osdUJBQXVCO2tCQWJuQyxTQUFTOytCQUNJLGlCQUFpQixjQUdmLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGlCQUFpQjtxQkFDcEI7cUZBR1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS1udW1iZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LW51bWJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBQcmltZW5nTW9kdWxlLFxyXG4gICAgICAgIFJlcXVpcmVkQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseU51bWJlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc2hvd0J1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZGVjaW1hbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG1heEZyYWN0aW9uRGlnaXRzOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICAgIHN1cGVyKHRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuICAgIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dMYWJlbFwiPlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHAtaW5wdXROdW1iZXJcclxuICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtpZF09XCJjb250cm9sLmxhYmVsXCJcclxuICAgIChvbkJsdXIpPVwiY29udHJvbC5tYXJrQXNEaXJ0eSgpXCJcclxuICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICAgIFtzdHlsZV09XCJ7J3dpZHRoJzonMTAwJSd9XCJcclxuICAgIFtpbnB1dFN0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgW3Nob3dCdXR0b25zXT1cInNob3dCdXR0b25zXCJcclxuICAgIGJ1dHRvbkxheW91dD1cImhvcml6b250YWxcIlxyXG4gICAgW21heEZyYWN0aW9uRGlnaXRzXT1cIm1heEZyYWN0aW9uRGlnaXRzXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+Il19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { BaseControl } from '../base-control';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "primeng/tooltip";
|
|
12
|
+
import * as i5 from "primeng/password";
|
|
13
|
+
export class SpiderlyPasswordComponent extends BaseControl {
|
|
14
|
+
constructor(translocoService) {
|
|
15
|
+
super(translocoService);
|
|
16
|
+
this.translocoService = translocoService;
|
|
17
|
+
this.showPasswordStrength = false;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
super.ngOnInit();
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyPasswordComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyPasswordComponent, isStandalone: true, selector: "spiderly-password", inputs: { showPasswordStrength: "showPasswordStrength" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Password, selector: "p-password", inputs: ["ariaLabel", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyPasswordComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'spiderly-password', standalone: true, imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
ReactiveFormsModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
PrimengModule,
|
|
32
|
+
RequiredComponent
|
|
33
|
+
], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n" }]
|
|
34
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { showPasswordStrength: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1wYXNzd29yZC9zcGlkZXJseS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXBhc3N3b3JkL3NwaWRlcmx5LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQWU3RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsV0FBVztJQUd0RCxZQUN1QixnQkFBa0M7UUFFckQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSGhELHlCQUFvQixHQUFZLEtBQUssQ0FBQztJQU0vQyxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQVhRLHlCQUF5QjttR0FBekIseUJBQXlCLDhKQ3JCdEMseXJCQWlCQSwyQ0RIUSxZQUFZLGtJQUNaLG1CQUFtQix5VEFDbkIsV0FBVyw4QkFDWCxhQUFhLHEyQkFDYixpQkFBaUI7OzRGQUdaLHlCQUF5QjtrQkFickMsU0FBUzsrQkFDSSxtQkFBbUIsY0FHakIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQjtxRkFHUSxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlcXVpcmVkL3JlcXVpcmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3BpZGVybHktcGFzc3dvcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgUmVxdWlyZWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5UGFzc3dvcmRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBzaG93UGFzc3dvcmRTdHJlbmd0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICAgIHN1cGVyKHRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHAtcGFzc3dvcmRcclxuICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtpZF09XCJjb250cm9sPy5sYWJlbFwiXHJcbiAgICBbdG9nZ2xlTWFza109XCJ0cnVlXCJcclxuICAgIFtmZWVkYmFja109XCJzaG93UGFzc3dvcmRTdHJlbmd0aFwiXHJcbiAgICAob25CbHVyKT1cImNvbnRyb2w/Lm1hcmtBc0RpcnR5KClcIlxyXG4gICAgW3N0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgW2lucHV0U3R5bGVdPVwieyd3aWR0aCc6JzEwMCUnfVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BaseControl } from '../base-control';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "primeng/inputtextarea";
|
|
12
|
+
import * as i5 from "primeng/tooltip";
|
|
13
|
+
export class SpiderlyTextareaComponent extends BaseControl {
|
|
14
|
+
constructor(translocoService) {
|
|
15
|
+
super(translocoService);
|
|
16
|
+
this.translocoService = translocoService;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
super.ngOnInit();
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextareaComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyTextareaComponent, isStandalone: true, selector: "spiderly-textarea", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextareaComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'spiderly-textarea', standalone: true, imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
FormsModule,
|
|
30
|
+
PrimengModule,
|
|
31
|
+
RequiredComponent
|
|
32
|
+
], template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>" }]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS10ZXh0YXJlYS9zcGlkZXJseS10ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRhcmVhL3NwaWRlcmx5LXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUFXO0lBRXRELFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFHekQsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0FWUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixvR0NyQnRDLGdzQkFpQlEsMkNESEEsWUFBWSxrSUFDWixtQkFBbUIseWtCQUNuQixXQUFXLDhCQUNYLGFBQWEsNmZBQ2IsaUJBQWlCOzs0RkFHWix5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBR2pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGlCQUFpQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS10ZXh0YXJlYScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BpZGVybHktdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSBDYW4ndCBwdXQgKG9uQmx1cikgaW4gdGhpcyBjb250cm9sIC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHRleHRhcmVhXHJcbiAgICAqbmdJZj1cImNvbnRyb2xcIlxyXG4gICAgW3BUb29sdGlwXT1cImdldFZhbGlkYXRpb25FcnJyb3JNZXNzYWdlcygpXCIgW3Rvb2x0aXBFdmVudF09XCJlcnJvck1lc3NhZ2VUb29sdGlwRXZlbnRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbdG9vbHRpcERpc2FibGVkXT1cImNvbnRyb2wudmFsaWRcIiB0b29sdGlwU3R5bGVDbGFzcz1cInNwaWRlcmx5LXRvb2x0aXAtaW52YWxpZFwiXHJcbiAgICBwSW5wdXRUZXh0YXJlYVxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW2lkXT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgKGJsdXIpPVwiY29udHJvbC5tYXJrQXNEaXJ0eSgpXCJcclxuICAgIFthdXRvUmVzaXplXT1cInRydWVcIlxyXG4gICAgW2NsYXNzXT1cImNvbnRyb2wuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJydcIlxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgPC9kaXY+Il19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BaseControl } from '../base-control';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
4
|
+
import { RequiredComponent } from '../../components/required/required.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { PrimengModule } from '../../modules/primeng.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@jsverse/transloco";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "primeng/inputtext";
|
|
12
|
+
import * as i5 from "primeng/tooltip";
|
|
13
|
+
export class SpiderlyTextboxComponent extends BaseControl {
|
|
14
|
+
constructor(translocoService) {
|
|
15
|
+
super(translocoService);
|
|
16
|
+
this.translocoService = translocoService;
|
|
17
|
+
this.showButton = false;
|
|
18
|
+
this.onButtonClick = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
super.ngOnInit();
|
|
22
|
+
}
|
|
23
|
+
buttonClick() {
|
|
24
|
+
this.onButtonClick.next(null);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextboxComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyTextboxComponent, isStandalone: true, selector: "spiderly-textbox", inputs: { showButton: "showButton", buttonIcon: "buttonIcon" }, outputs: { onButtonClick: "onButtonClick" }, usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextboxComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'spiderly-textbox', standalone: true, imports: [
|
|
32
|
+
CommonModule,
|
|
33
|
+
ReactiveFormsModule,
|
|
34
|
+
FormsModule,
|
|
35
|
+
PrimengModule,
|
|
36
|
+
RequiredComponent
|
|
37
|
+
], template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>" }]
|
|
38
|
+
}], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { showButton: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], buttonIcon: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], onButtonClick: [{
|
|
43
|
+
type: Output
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktdGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRib3gvc3BpZGVybHktdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRib3gvc3BpZGVybHktdGV4dGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQWU3RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsV0FBVztJQUtyRCxZQUN1QixnQkFBa0M7UUFFckQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTGhELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFM0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBTTdDLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FsQlEsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ05DckJyQyxzaUNBcUJNLDJDRFBFLFlBQVksa0lBQ1osbUJBQW1CLHlrQkFDbkIsV0FBVyw4QkFDWCxhQUFhLGdkQUNiLGlCQUFpQjs7NEZBR1osd0JBQXdCO2tCQWJwQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ3BCO3FGQUdRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS10ZXh0Ym94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGlkZXJseS10ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgUmVxdWlyZWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5VGV4dGJveENvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHNob3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbkljb246IHN0cmluZztcclxuICAgIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBidXR0b25DbGljaygpIHtcclxuICAgICAgICB0aGlzLm9uQnV0dG9uQ2xpY2submV4dChudWxsKTtcclxuICAgIH1cclxuICAgIFxyXG59XHJcbiIsIjwhLS0gQ2FuJ3QgcHV0IChvbkJsdXIpIGluIHRoaXMgY29udHJvbCAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgPGRpdiAqbmdJZj1cImdldFRyYW5zbGF0ZWRMYWJlbCgpICE9ICcnICYmIGdldFRyYW5zbGF0ZWRMYWJlbCgpICE9IG51bGxcIj5cclxuICAgIDxsYWJlbD57e2dldFRyYW5zbGF0ZWRMYWJlbCgpfX08L2xhYmVsPlxyXG4gICAgPHJlcXVpcmVkICpuZ0lmPVwiY29udHJvbD8ucmVxdWlyZWRcIj48L3JlcXVpcmVkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwLWlucHV0Z3JvdXAgcC1mbHVpZFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICAgIFtwVG9vbHRpcF09XCJnZXRWYWxpZGF0aW9uRXJycm9yTWVzc2FnZXMoKVwiIFt0b29sdGlwRXZlbnRdPVwiZXJyb3JNZXNzYWdlVG9vbHRpcEV2ZW50XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW3Rvb2x0aXBEaXNhYmxlZF09XCJjb250cm9sLnZhbGlkXCIgdG9vbHRpcFN0eWxlQ2xhc3M9XCJzcGlkZXJseS10b29sdGlwLWludmFsaWRcIlxyXG4gICAgICBwSW5wdXRUZXh0XHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW2lkXT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgICAoYmx1cik9XCJjb250cm9sLm1hcmtBc0RpcnR5KClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dCdXR0b25cIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soKVwiIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpOyBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwicGkge3tidXR0b25JY29ufX1cIiBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class BaseEntity {
|
|
2
|
+
constructor(typeName) {
|
|
3
|
+
this.pipedProperties = [];
|
|
4
|
+
this.typeName = typeName;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class PipedProperty {
|
|
8
|
+
constructor(p, c) {
|
|
9
|
+
this.pipe = p;
|
|
10
|
+
this.control = c;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export var PropertyPipes;
|
|
14
|
+
(function (PropertyPipes) {
|
|
15
|
+
PropertyPipes[PropertyPipes["IntegerPipe"] = 0] = "IntegerPipe";
|
|
16
|
+
PropertyPipes[PropertyPipes["DecimalPipe"] = 1] = "DecimalPipe";
|
|
17
|
+
})(PropertyPipes || (PropertyPipes = {}));
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2Jhc2UtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBS25CLFlBQVksUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFJdEIsWUFBWSxDQUFnQixFQUFFLENBQVM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLCtEQUFXLENBQUE7SUFDWCwrREFBVyxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEJhc2VFbnRpdHkge1xyXG5cclxuICAgIHB1YmxpYyBwaXBlZFByb3BlcnRpZXM/OiBQaXBlZFByb3BlcnR5W107XHJcbiAgICBwdWJsaWMgdHlwZU5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZU5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucGlwZWRQcm9wZXJ0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy50eXBlTmFtZSA9IHR5cGVOYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGlwZWRQcm9wZXJ0eSB7XHJcbiAgICBwaXBlOiBQcm9wZXJ0eVBpcGVzO1xyXG4gICAgY29udHJvbDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHA6IFByb3BlcnR5UGlwZXMsIGM6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucGlwZSA9IHA7XHJcbiAgICAgICAgdGhpcy5jb250cm9sID0gYztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gUHJvcGVydHlQaXBlcyB7XHJcbiAgICBJbnRlZ2VyUGlwZSxcclxuICAgIERlY2ltYWxQaXBlXHJcbn0iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity";
|
|
2
|
+
// FT HACK: Fake class, because of api imports
|
|
3
|
+
export class Codebook extends BaseEntity {
|
|
4
|
+
constructor({ code, displayName, } = {}) {
|
|
5
|
+
super('Namebook');
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.displayName = displayName;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWJvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2NvZGVib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsOENBQThDO0FBQzlDLE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUtwQyxZQUNBLEVBQ0ksSUFBSSxFQUNKLFdBQVcsTUFJWCxFQUFFO1FBRUYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuLy8gRlQgSEFDSzogRmFrZSBjbGFzcywgYmVjYXVzZSBvZiBhcGkgaW1wb3J0c1xyXG5leHBvcnQgY2xhc3MgQ29kZWJvb2sgZXh0ZW5kcyBCYXNlRW50aXR5XHJcbntcclxuICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuICBcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICB9OntcclxuICAgICAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgICAgIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignTmFtZWJvb2snKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2RlID0gY29kZTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity";
|
|
2
|
+
export class InitCompanyAuthDialogDetails extends BaseEntity {
|
|
3
|
+
constructor({ image, companyName, } = {}) {
|
|
4
|
+
super('InitCompanyAuthDialogDetails');
|
|
5
|
+
this.image = image;
|
|
6
|
+
this.companyName = companyName;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1jb21wYW55LWF1dGgtZGlhbG9nLWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2luaXQtY29tcGFueS1hdXRoLWRpYWxvZy1kZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFVBQVU7SUFLeEQsWUFDQSxFQUNJLEtBQUssRUFDTCxXQUFXLE1BSVgsRUFBRTtRQUVGLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHMgZXh0ZW5kcyBCYXNlRW50aXR5XHJcbntcclxuICAgIGltYWdlPzogc3RyaW5nO1xyXG4gICAgY29tcGFueU5hbWU/OiBzdHJpbmc7XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICBjb21wYW55TmFtZSxcclxuICAgIH06e1xyXG4gICAgICAgIGltYWdlPzogc3RyaW5nO1xyXG4gICAgICAgIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignSW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscycpO1xyXG5cclxuICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XHJcbiAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IGNvbXBhbnlOYW1lO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity";
|
|
2
|
+
export class InitTopBarData extends BaseEntity {
|
|
3
|
+
constructor({ companyName, userProfilePath, unreadNotificationsCount, showProfileIcon, currentUser, } = {}) {
|
|
4
|
+
super('InitTopBarData');
|
|
5
|
+
this.companyName = companyName;
|
|
6
|
+
this.userProfilePath = userProfilePath;
|
|
7
|
+
this.unreadNotificationsCount = unreadNotificationsCount;
|
|
8
|
+
this.showProfileIcon = showProfileIcon;
|
|
9
|
+
this.currentUser = currentUser;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC10b3AtYmFyLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2luaXQtdG9wLWJhci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBUTFDLFlBQ0EsRUFDSSxXQUFXLEVBQ1gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsV0FBVyxNQU9YLEVBQUU7UUFFRixLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gXCIuL2Jhc2UtZW50aXR5XCI7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiLi9zZWN1cml0eS1lbnRpdGllc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRUb3BCYXJEYXRhIGV4dGVuZHMgQmFzZUVudGl0eVxyXG57XHJcbiAgICBjb21wYW55TmFtZT86IHN0cmluZztcclxuICAgIHVzZXJQcm9maWxlUGF0aD86IHN0cmluZztcclxuICAgIHVucmVhZE5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICAgIHNob3dQcm9maWxlSWNvbj86IGJvb2xlYW47XHJcbiAgICBjdXJyZW50VXNlcj86IFVzZXI7XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgICBjb21wYW55TmFtZSxcclxuICAgICAgICB1c2VyUHJvZmlsZVBhdGgsXHJcbiAgICAgICAgdW5yZWFkTm90aWZpY2F0aW9uc0NvdW50LFxyXG4gICAgICAgIHNob3dQcm9maWxlSWNvbixcclxuICAgICAgICBjdXJyZW50VXNlcixcclxuICAgIH06e1xyXG4gICAgICAgIGNvbXBhbnlOYW1lPzogc3RyaW5nLFxyXG4gICAgICAgIHVzZXJQcm9maWxlUGF0aD86IHN0cmluZyxcclxuICAgICAgICB1bnJlYWROb3RpZmljYXRpb25zQ291bnQ/OiBudW1iZXIsXHJcbiAgICAgICAgc2hvd1Byb2ZpbGVJY29uPzogYm9vbGVhbixcclxuICAgICAgICBjdXJyZW50VXNlcj86IFVzZXIsXHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCdJbml0VG9wQmFyRGF0YScpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbXBhbnlOYW1lID0gY29tcGFueU5hbWU7XHJcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZVBhdGggPSB1c2VyUHJvZmlsZVBhdGg7XHJcbiAgICAgICAgdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnQgPSB1bnJlYWROb3RpZmljYXRpb25zQ291bnQ7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZmlsZUljb24gPSBzaG93UHJvZmlsZUljb247XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlciA9IGN1cnJlbnRVc2VyO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity";
|
|
2
|
+
export class IsAuthorizedForSaveEvent extends BaseEntity {
|
|
3
|
+
constructor({ isAuthorizedForSave, currentUserPermissionCodes, } = {}) {
|
|
4
|
+
super('IsAuthorizedForSaveEvent');
|
|
5
|
+
this.isAuthorizedForSave = isAuthorizedForSave;
|
|
6
|
+
this.currentUserPermissionCodes = currentUserPermissionCodes;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXV0aG9yaXplZC1mb3Itc2F2ZS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvZW50aXRpZXMvaXMtYXV0aG9yaXplZC1mb3Itc2F2ZS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUFVO0lBS3BELFlBQ0EsRUFDSSxtQkFBbUIsRUFDbkIsMEJBQTBCLE1BSTFCLEVBQUU7UUFFRixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO0lBQ2pFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIElzQXV0aG9yaXplZEZvclNhdmVFdmVudCBleHRlbmRzIEJhc2VFbnRpdHlcclxue1xyXG4gICAgaXNBdXRob3JpemVkRm9yU2F2ZT86IGJvb2xlYW47XHJcbiAgICBjdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGlzQXV0aG9yaXplZEZvclNhdmUsXHJcbiAgICAgICAgY3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMsXHJcbiAgICB9OntcclxuICAgICAgICBpc0F1dGhvcml6ZWRGb3JTYXZlPzogYm9vbGVhbjtcclxuICAgICAgICBjdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignSXNBdXRob3JpemVkRm9yU2F2ZUV2ZW50Jyk7IFxyXG5cclxuICAgICAgICB0aGlzLmlzQXV0aG9yaXplZEZvclNhdmUgPSBpc0F1dGhvcml6ZWRGb3JTYXZlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMgPSBjdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcztcclxuICAgIH1cclxufSJdfQ==
|