@pepperi-addons/ngx-lib 0.4.0-angular14.9 → 0.4.0-beta.3
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/chips/chips.component.d.ts +93 -0
- package/chips/chips.component.theme.scss +58 -0
- package/chips/chips.model.d.ts +13 -0
- package/chips/chips.module.d.ts +20 -0
- package/chips/chips.service.d.ts +15 -0
- package/{plugin → chips}/index.d.ts +1 -1
- package/chips/public-api.d.ts +3 -0
- package/color/color-picker.component.d.ts +1 -1
- package/core/common/model/wapi.model.d.ts +1 -0
- package/core/common/services/addon.service.d.ts +13 -9
- package/core/common/services/utilities.service.d.ts +5 -4
- package/core/customization/customization.model.d.ts +7 -0
- package/esm2020/address/address.component.mjs +1 -1
- package/esm2020/attachment/attachment.component.mjs +1 -1
- package/esm2020/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/chips/chips.component.mjs +158 -0
- package/esm2020/chips/chips.model.mjs +2 -0
- package/esm2020/chips/chips.module.mjs +81 -0
- package/esm2020/chips/chips.service.mjs +44 -0
- package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +5 -0
- package/esm2020/chips/public-api.mjs +7 -0
- package/esm2020/color/color-picker.component.mjs +4 -4
- package/esm2020/color/color.component.mjs +1 -1
- package/esm2020/core/common/model/wapi.model.mjs +1 -1
- package/esm2020/core/common/services/addon.service.mjs +43 -38
- package/esm2020/core/common/services/utilities.service.mjs +66 -13
- package/esm2020/core/customization/customization.model.mjs +10 -1
- package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -5
- package/esm2020/core/http/services/loader.service.mjs +4 -4
- package/esm2020/date/date.component.mjs +3 -3
- package/esm2020/field-title/field-title.component.mjs +6 -3
- package/esm2020/form/field-generator.component.mjs +7 -7
- package/esm2020/form/form.component.mjs +12 -3
- package/esm2020/form/internal-button.component.mjs +1 -1
- package/esm2020/form/internal-field-generator.component.mjs +3 -3
- package/esm2020/form/internal-form.component.mjs +4 -2
- package/esm2020/form/internal-list.component.mjs +5 -2
- package/esm2020/group-buttons/group-buttons.component.mjs +8 -4
- package/esm2020/icon/icon-generated-all.model.mjs +8 -1
- package/esm2020/icon/icon-generated.model.mjs +29 -1
- package/esm2020/image/image.component.mjs +1 -1
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -91
- package/esm2020/images-filmstrip/images-filmstrip.module.mjs +1 -56
- package/esm2020/link/link.component.mjs +1 -1
- package/esm2020/list/list-pager.component.mjs +1 -1
- package/esm2020/list/list.component.mjs +5 -2
- package/esm2020/list/virtual-scroller.mjs +11 -10
- package/esm2020/menu/menu.component.mjs +11 -3
- package/esm2020/page-layout/page-layout.component.mjs +3 -3
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +24 -4
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +1 -1
- package/esm2020/remote-loader/addon-block-loader.component.mjs +23 -5
- package/esm2020/remote-loader/addon-block-loader.service.mjs +9 -8
- package/esm2020/remote-loader/public-api.mjs +2 -1
- package/esm2020/remote-loader/remote-loader-element.component.mjs +109 -0
- package/esm2020/remote-loader/remote-loader.component.mjs +37 -59
- package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
- package/esm2020/remote-loader/remote-loader.module.mjs +12 -3
- package/esm2020/remote-loader/remote-loader.service.mjs +50 -26
- package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +33 -7
- package/esm2020/side-bar/side-bar.component.mjs +11 -27
- package/esm2020/side-bar/side-bar.module.mjs +7 -3
- package/esm2020/signature/signature.component.mjs +1 -1
- package/esm2020/size-detector/size-detector.component.mjs +2 -2
- package/esm2020/slider/slider.component.mjs +1 -1
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
- package/esm2020/textarea/textarea.component.mjs +1 -1
- package/esm2020/textbox/textbox.component.mjs +48 -7
- package/esm2020/textbox-icon/textbox-icon.component.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +287 -0
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +23 -12
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +36 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +15 -11
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +249 -105
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +32 -6
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +49 -8
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +128 -57
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +287 -0
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +26 -12
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +36 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +15 -11
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -2
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +230 -98
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +32 -6
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +48 -8
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +125 -58
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/field-title/field-title.component.d.ts +2 -1
- package/form/field-generator.component.d.ts +1 -1
- package/group-buttons/group-buttons.component.d.ts +2 -1
- package/icon/icon-generated-all.model.d.ts +7 -0
- package/icon/icon-generated.model.d.ts +29 -1
- package/menu/menu.component.d.ts +2 -0
- package/package.json +14 -13
- package/page-layout/page-layout.component.d.ts +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +7 -1
- package/remote-loader/addon-block-loader.component.d.ts +10 -6
- package/remote-loader/addon-block-loader.service.d.ts +2 -3
- package/remote-loader/public-api.d.ts +1 -0
- package/remote-loader/remote-loader-element.component.d.ts +30 -0
- package/remote-loader/remote-loader.component.d.ts +3 -5
- package/remote-loader/remote-loader.model.d.ts +16 -11
- package/remote-loader/remote-loader.module.d.ts +8 -6
- package/remote-loader/remote-loader.service.d.ts +5 -7
- package/select/select.component.d.ts +10 -4
- package/side-bar/side-bar.component.d.ts +3 -3
- package/src/assets/i18n/en.ngx-lib.json +4 -0
- package/src/core/style/components/checkbox.scss +20 -1
- package/src/core/style/components/general.scss +5 -4
- package/textbox/textbox.component.d.ts +16 -1
- package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +0 -5
- package/esm2020/plugin/plugin-proxy.component.mjs +0 -90
- package/esm2020/plugin/plugin.model.mjs +0 -2
- package/esm2020/plugin/public-api.mjs +0 -6
- package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +0 -107
- package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
- package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +0 -101
- package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
- package/plugin/plugin-proxy.component.d.ts +0 -22
- package/plugin/plugin.model.d.ts +0 -5
- package/plugin/public-api.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-images-filmstrip.mjs","sources":["../../../projects/ngx-lib/images-filmstrip/images-filmstrip.component.ts","../../../projects/ngx-lib/images-filmstrip/images-filmstrip.component.html","../../../projects/ngx-lib/images-filmstrip/images-filmstrip.module.ts","../../../projects/ngx-lib/images-filmstrip/public-api.ts","../../../projects/ngx-lib/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n Input,\n TemplateRef,\n Renderer2,\n ChangeDetectorRef,\n Inject,\n Optional,\n ViewContainerRef,\n OnChanges,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n Gallery,\n GalleryConfig,\n LoadingStrategy,\n SlidingDirection,\n ThumbnailsPosition,\n GalleryItem,\n ImageItem,\n GalleryRef,\n} from 'ng-gallery';\nimport {\n PepCustomizationService,\n PepLayoutType,\n PepLayoutService,\n PepFileService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepImagesField,\n PepUtilitiesService,\n PepGuid\n} from '@pepperi-addons/ngx-lib';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { pepIconArrowRightAlt, pepIconArrowLeftAlt, PepIconRegistry, pepIconNoImage2 } from '@pepperi-addons/ngx-lib/icon';\n\nimport 'hammerjs';\n\ninterface IPepImagesFilmstripDialogData {\n currIndex: number;\n key: string;\n value: string;\n label: string;\n showFooter: boolean;\n uid: string;\n showThumbnails: boolean;\n}\n\n// export const slideInAnimation = trigger('slideAnimation', [\n// state('in', style({ transform: 'translateY(0)', opacity: 1 })),\n// transition(':enter', [\n// style({ transform: 'translateY(-100%)', opacity: 0 }),\n// animate(400)\n// ]),\n// transition(':leave', [\n// animate(400, style({ transform: 'translateY(-100%)', opacity: 0 }))\n// ])\n// ]);\n\n// import {\n// IMAGEVIEWER_CONFIG,\n// ImageViewerConfig,\n// createButtonConfig,\n// } from '@hallysonh/ngx-imageviewer';\nimport { DOCUMENT } from '@angular/common';\n\n// export function createViewerConfig(\n// translate: TranslateService\n// ): ImageViewerConfig {\n// return {\n// // width: 850,\n// // height: 150,\n// bgStyle: '#FFF', // component background style\n// // scaleStep: 0.1, // zoom scale step (using the zoom in/out buttons)\n// // rotateStepper: false, // touch rotate should rotate only 90 to 90 degrees\n// loadingMessage: translate.instant('MESSAGES.INFO_LOADING_FILE'), // 'Loading...',\n// // buttonStyle: {\n// // iconFontFamily: 'Material Icons', // font used to render the button icons\n// // alpha: 0.5, // buttons' transparence value\n// // hoverAlpha: 0.7, // buttons' transparence value when mouse is over\n// // bgStyle: '#000000', // buttons' background style\n// // iconStyle: '#ffffff', // buttons' icon colors\n// // borderStyle: '#000000', // buttons' border style\n// // borderWidth: 0, // buttons' border width (0 == disabled)\n// // },\n// // tooltips: {\n// // enabled: true, // enable or disable tooltips for buttons\n// // bgStyle: '#000000', // tooltip background style\n// // bgAlpha: 0.5, // tooltip background transparence\n// // textStyle: '#ffffff', // tooltip's text style\n// // textAlpha: 0.9, // tooltip's text transparence\n// // padding: 15, // tooltip padding\n// // radius: 20, // tooltip border radius\n// // },\n// // shorter button configuration style\n// nextPageButton: createButtonConfig(\n// 'navigate_next',\n// 'Next page',\n// 0,\n// false\n// ),\n// beforePageButton: createButtonConfig(\n// 'navigate_before',\n// 'Previous page',\n// 1,\n// false\n// ),\n// zoomOutButton: createButtonConfig('zoom_out', 'Zoom out', 0, false),\n// zoomInButton: createButtonConfig('zoom_in', 'Zoom in', 1, false),\n// rotateLeftButton: createButtonConfig(\n// 'rotate_left',\n// 'Rotate left',\n// 2,\n// false\n// ),\n// rotateRightButton: createButtonConfig(\n// 'rotate_right',\n// 'Rotate right',\n// 3,\n// false\n// ),\n// resetButton: createButtonConfig('autorenew', 'Reset', 4, false),\n// };\n// }\n\n@Component({\n selector: 'pep-images-filmstrip',\n templateUrl: './images-filmstrip.component.html',\n styleUrls: ['./images-filmstrip.component.scss', './images-filmstrip.component.theme.scss'],\n // animations: [slideInAnimation],\n providers: [\n // {\n // provide: IMAGEVIEWER_CONFIG,\n // // useValue: IMAGEVIEWER_CONFIG_DEFAULT,\n // useFactory: createViewerConfig,\n // deps: [TranslateService],\n // },\n ],\n})\nexport class PepImagesFilmstripComponent\n implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n // @ViewChild('ngxViewerImage') ngxViewerImage: any; // TODO: Check if we need to use this??\n @Input() key = '';\n @Input() value = '';\n @Input() label = '';\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n\n private _rowSpan = 1;\n @Input()\n set rowSpan(value) {\n this._rowSpan = value;\n this.setFieldHeight();\n }\n get rowSpan(): number {\n return this._rowSpan;\n }\n\n controlType = 'images';\n\n @Input() form: FormGroup = null;\n @Input() uid = '0';\n @Input() showTitle = false;\n @Input() renderTitle = true;\n\n private _layoutType: PepLayoutType = 'form';\n @Input()\n set layoutType(value: PepLayoutType) {\n this._layoutType = value;\n this.setFieldHeight();\n }\n get layoutType(): PepLayoutType {\n return this._layoutType;\n }\n\n @Input() currIndex = 0;\n @Input() showThumbnails = false;\n\n @ViewChild('galleryCont') galleryCont: ElementRef;\n @ViewChild('galleryDialogTemplate', { read: TemplateRef })\n galleryDialogTemplate: TemplateRef<any>;\n @ViewChild('galleryDialogCont') galleryDialogCont: ElementRef;\n\n config: GalleryConfig;\n items: GalleryItem[] = null;\n inDialog = false;\n showFooter = false;\n showClose = true;\n \n mandatory = false;\n readonly = false;\n disabled = false;\n fieldHeight = '';\n standAlone = false;\n\n galleryWidth = 0;\n galleryHeight;\n isVertical = false;\n galleryRef: GalleryRef;\n dialogGalleryRef: GalleryRef;\n guid: string;\n\n private enlargeImageDialogRef: MatDialogRef<any>;\n\n constructor(\n private customizationService: PepCustomizationService,\n private dialogService: PepDialogService,\n private layoutService: PepLayoutService,\n private fileService: PepFileService,\n private iconRegistry: PepIconRegistry,\n private utilitiesService: PepUtilitiesService,\n private gallery: Gallery,\n private renderer: Renderer2,\n private element: ElementRef,\n private cd: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private document: any,\n @Optional()\n private dialogRef: MatDialogRef<PepImagesFilmstripComponent>,\n @Optional()\n @Inject(MAT_DIALOG_DATA)\n private data: IPepImagesFilmstripDialogData\n ) {\n // If data exist copy all data properties into this.\n if (dialogRef && data) {\n this.inDialog = true;\n\n Object.keys(data).forEach((key) => {\n if (key in this) {\n this[key] = data[key];\n }\n });\n }\n\n this.config = {\n nav: false, // Show navigation buttons\n // navIcon: pepIconArrowRightAlt.data,\n // loop: true,\n // zoomOut: 0,\n // dots: false,\n // dotsPosition: 'bottom',\n // counterPosition: 'top',\n // thumb: true,\n counter: false, // Show counter\n gestures: true, // Use touch events (requires hammer.js)\n // autoPlay: false,\n // thumbWidth: 120,\n // thumbHeight: 90,\n imageSize: 'contain',\n // panSensitivity: 25,\n // disableThumb: false,\n // playerInterval: 3000,\n // thumbMode: ThumbnailsMode.Free,\n // thumbPosition: ThumbnailsPosition.Bottom,\n loadingStrategy: LoadingStrategy.Preload,\n // slidingDirection: SlidingDirection.Horizontal,\n };\n\n this.guid = PepGuid.newGuid();\n }\n\n private setFieldHeight(): void {\n this.fieldHeight = this.customizationService.calculateFieldHeight(\n this.layoutType,\n this.rowSpan,\n this.standAlone\n );\n }\n\n private setDefaultForm(): void {\n const pepField = new PepImagesField({\n key: this.key,\n value: this.value,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n // private renderNavIcon(galleryContainer, isLeft: boolean) {\n // let iconName = isLeft ? pepIconArrowLeftAlt.name : pepIconArrowRightAlt.name;\n // const svgData = this.iconRegistry.getIcon(iconName);\n // const svgIcon = this.utilitiesService.getSvgElementFromString(\n // this.document,\n // svgData\n // );\n\n // const elementNameToFind = isLeft ? 'g-nav-prev' : 'g-nav-next'\n\n // const elementArr = galleryContainer.nativeElement.querySelectorAll(`.${elementNameToFind}`);\n // if (elementArr && elementArr.length > 0) {\n // elementArr[0].appendChild(svgIcon);\n // this.renderer.addClass(svgIcon, 'svg-icon');\n // }\n // }\n\n ngOnInit(): void {\n if (!this.inDialog) {\n if (this.form === null) {\n this.standAlone = true;\n this.setFieldHeight();\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n }\n\n if (this.items === null) {\n const imgArr = this.value ? this.value.split(';') : [];\n // add No image image when there is no images\n if (imgArr.length === 0) {\n const noImageSrc = this.fileService.getSvgAsImageSrc(\n pepIconNoImage2.data\n );\n imgArr.push(noImageSrc);\n }\n\n this.items = imgArr.map(\n (img) => new ImageItem({ src: img, thumb: img })\n );\n }\n\n this.config.dots = this.config.nav = this.items.length > 1;\n this.config.thumb =\n (this.key === 'ItemFilmstripImages' || this.showThumbnails) &&\n this.items.length > 1\n ? true\n : false;\n this.currIndex =\n this.key === 'ItemFilmstripImages' &&\n this.currIndex === 0 &&\n this.items.length > 1\n ? Math.floor(this.items.length / 2) - 1\n : this.currIndex;\n }\n\n ngAfterViewInit(): void {\n if (this.inDialog) {\n this.afterDialogOpened();\n } else {\n this.galleryRef = this.gallery.ref(\n `${this.guid}-gallery`\n );\n this.initGalleryStyle(this.galleryCont, this.galleryRef);\n }\n }\n\n ngOnChanges(): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n }\n\n ngOnDestroy(): void {\n if (this.galleryRef) {\n this.galleryRef.destroy();\n }\n if (this.dialogGalleryRef) {\n this.dialogGalleryRef.destroy();\n }\n // if (this.myPinch) { this.myPinch.destroy(); }\n }\n\n initGalleryStyle(galleryContainer, galleryRef): void {\n setTimeout(() => {\n // Set thumbnails position and sliding direction\n this.setThumbnailDimension(galleryContainer);\n galleryRef.setConfig(this.config);\n // this.renderNavIcon(galleryContainer, true);\n // this.renderNavIcon(galleryContainer, false);\n }, 0);\n\n const currentIndex = this.currIndex;\n if (currentIndex > 0) {\n setTimeout(() => {\n galleryRef.load(this.items);\n galleryRef.set(currentIndex);\n }, 0);\n // galleryRef.set(currentIndex);\n } else {\n galleryRef.load(this.items);\n }\n }\n\n onError(e): void {\n const noImageSrc = this.fileService.getSvgAsImageSrc(\n pepIconNoImage2.data\n );\n const noimg = new ImageItem({ src: noImageSrc, thumb: noImageSrc });\n this.items.splice(e.itemIndex, 1, noimg);\n }\n\n enlargeImage(event: any): void {\n const config = this.dialogService.getDialogConfig({}, 'inline');\n config.maxWidth = '75vw';\n config.height = '95vh';\n\n this.enlargeImageDialogRef = this.dialogService.openDialog(\n this.galleryDialogTemplate,\n {\n currIndex: this.currIndex,\n },\n config\n );\n\n this.enlargeImageDialogRef.afterOpened().subscribe(() => {\n this.afterDialogOpened();\n });\n\n // Update currentIndex in galleryRef\n // dialogRef.afterClosed().subscribe(value => {\n // this.galleryRef.set(this.currIndex);\n // });\n }\n\n afterDialogOpened(): void {\n this.dialogGalleryRef = this.gallery.ref(\n `${this.guid}-dlgGallery`\n );\n this.initGalleryStyle(this.galleryDialogCont, this.dialogGalleryRef);\n }\n\n closeDialog(event) {\n if (this.inDialog) {\n this.dialogRef?.close(event);\n } else {\n this.enlargeImageDialogRef?.close(event);\n }\n }\n\n setThumbnailDimension(galleryContainer): void {\n this.galleryWidth = galleryContainer.nativeElement.clientWidth;\n // this.galleryHeight = galleryContainer.nativeElement.clientHeight - 32; // TODO - TALK WITH TOMER\n this.galleryHeight = this.inDialog\n ? galleryContainer.nativeElement.clientHeight - 32\n : galleryContainer.nativeElement.clientHeight;\n // this.galleryHeight = galleryContainer.nativeElement.clientHeight - 32;\n this.cd.detectChanges();\n\n this.isVertical = this.galleryWidth < this.galleryHeight;\n this.cd.detectChanges();\n if (this.isVertical) {\n let width =\n (this.galleryWidth - (this.items.length - 1) * 16) /\n this.items.length;\n width = Math.min(Math.max(width, 24), 96);\n\n this.config.thumbHeight = width;\n this.config.thumbWidth = width + 16;\n } else {\n let height =\n (this.galleryHeight - (this.items.length - 1) * 16) /\n this.items.length;\n height = Math.min(Math.max(height, 24), 96);\n\n this.config.thumbHeight = height + 16;\n this.config.thumbWidth = height;\n }\n\n this.config.thumbPosition = this.isVertical\n ? ThumbnailsPosition.Bottom\n : this.layoutService.isRtl()\n ? ThumbnailsPosition.Right\n : ThumbnailsPosition.Left;\n this.config.slidingDirection =\n this.key !== 'ItemFilmstripImages'\n ? SlidingDirection.Horizontal\n : this.isVertical\n ? SlidingDirection.Horizontal\n : SlidingDirection.Vertical;\n\n this.config.imageSize = 'contain';\n }\n\n indexChange(item: any): void {\n this.currIndex = item.currIndex;\n // if (this.ngxViewerImage && this.ngxViewerImage.scale) {\n // this.ngxViewerImage.scale = 1;\n // this.updateStyle();\n // }\n }\n\n\n // scrollFunction(e: any): boolean {\n // e.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n // return false;\n // }\n\n // zoomIn(): void {\n // if (this.ngxViewerImage.scale < 2) {\n // this.ngxViewerImage.scale *= (1 + this.ngxViewerImage.config.zoomFactor);\n // } else {\n // this.ngxViewerImage.scale = 2;\n // }\n // this.updateStyle();\n // }\n\n // zoomOut(): void {\n // if (this.ngxViewerImage.scale > this.ngxViewerImage.config.zoomFactor) {\n // this.ngxViewerImage.scale /= (1 + this.ngxViewerImage.config.zoomFactor);\n // }\n // this.updateStyle();\n // }\n\n // private updateStyle(): void {\n // this.ngxViewerImage.style.transform = `translate(${this.ngxViewerImage.translateX}px,\n // ${this.ngxViewerImage.translateY}px) rotate(${this.ngxViewerImage.rotation}deg) scale(${this.ngxViewerImage.scale})`;\n\n // this.cd.detectChanges();\n // }\n}\n","<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<!-- <ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template> -->","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n pepIconSystemClose,\n pepIconArrowRightAlt,\n pepIconArrowLeftAlt,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { GalleryModule } from 'ng-gallery';\n// import { ImageViewerModule } from '@hallysonh/ngx-imageviewer';\n\nimport { PepImagesFilmstripComponent } from './images-filmstrip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatFormFieldModule,\n MatDialogModule,\n MatIconModule,\n // External modules\n GalleryModule,\n // ImageViewerModule,\n // ImageViewerModule.forRoot({\n // btnClass: 'default', // The CSS class(es) that will apply to the buttons\n // zoomFactor: 0.1, // The amount that the scale will be increased by\n // containerBackgroundColor: 'transparent', // The color to use for the background. This can provided in hex, or rgb(a).\n // wheelZoom: true, // If true, the mouse wheel can be used to zoom in\n // allowFullscreen: false, // If true, the fullscreen button will be shown, allowing the user to entr fullscreen mode\n // btnIcons: {\n // // The icon classes that will apply to the buttons. By default, font-awesome is used.\n // zoomIn: 'fa fa-plus',\n // zoomOut: 'fa fa-minus',\n // rotateClockwise: 'fa fa-repeat',\n // rotateCounterClockwise: 'fa fa-undo',\n // next: 'fa fa-arrow-right',\n // prev: 'fa fa-arrow-left',\n // fullscreen: 'fa fa-arrows-alt'\n // }\n // }),\n // ngx-lib modules\n PepNgxLibModule,\n PepButtonModule,\n PepIconModule,\n PepFieldTitleModule,\n PepDialogModule,\n ],\n exports: [PepImagesFilmstripComponent],\n declarations: [PepImagesFilmstripComponent],\n})\nexport class PepImagesFilmstripModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemEdit,\n pepIconSystemClose,\n pepIconArrowRightAlt,\n pepIconArrowLeftAlt,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/images-filmstrip\n */\nexport * from './images-filmstrip.module';\nexport * from './images-filmstrip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-images-filmstrip.mjs","sources":["../../../projects/ngx-lib/images-filmstrip/images-filmstrip.component.ts","../../../projects/ngx-lib/images-filmstrip/images-filmstrip.component.html","../../../projects/ngx-lib/images-filmstrip/images-filmstrip.module.ts","../../../projects/ngx-lib/images-filmstrip/public-api.ts","../../../projects/ngx-lib/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n OnDestroy,\n AfterViewInit,\n ElementRef,\n Input,\n TemplateRef,\n Renderer2,\n ChangeDetectorRef,\n Inject,\n Optional,\n ViewContainerRef,\n OnChanges,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport {\n Gallery,\n GalleryConfig,\n LoadingStrategy,\n SlidingDirection,\n ThumbnailsPosition,\n GalleryItem,\n ImageItem,\n GalleryRef,\n} from 'ng-gallery';\nimport {\n PepCustomizationService,\n PepLayoutType,\n PepLayoutService,\n PepFileService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepImagesField,\n PepUtilitiesService,\n PepGuid\n} from '@pepperi-addons/ngx-lib';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepIconRegistry, pepIconNoImage2 } from '@pepperi-addons/ngx-lib/icon';\n\nimport 'hammerjs';\n\ninterface IPepImagesFilmstripDialogData {\n currIndex: number;\n key: string;\n value: string;\n label: string;\n showFooter: boolean;\n uid: string;\n showThumbnails: boolean;\n}\n\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'pep-images-filmstrip',\n templateUrl: './images-filmstrip.component.html',\n styleUrls: ['./images-filmstrip.component.scss', './images-filmstrip.component.theme.scss'],\n})\nexport class PepImagesFilmstripComponent\n implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n @Input() key = '';\n @Input() value = '';\n @Input() label = '';\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n\n private _rowSpan = 1;\n @Input()\n set rowSpan(value) {\n this._rowSpan = value;\n this.setFieldHeight();\n }\n get rowSpan(): number {\n return this._rowSpan;\n }\n\n controlType = 'images';\n\n @Input() form: FormGroup = null;\n @Input() uid = '0';\n @Input() showTitle = false;\n @Input() renderTitle = true;\n\n private _layoutType: PepLayoutType = 'form';\n @Input()\n set layoutType(value: PepLayoutType) {\n this._layoutType = value;\n this.setFieldHeight();\n }\n get layoutType(): PepLayoutType {\n return this._layoutType;\n }\n\n @Input() currIndex = 0;\n @Input() showThumbnails = false;\n\n @ViewChild('galleryCont') galleryCont: ElementRef;\n @ViewChild('galleryDialogTemplate', { read: TemplateRef })\n galleryDialogTemplate: TemplateRef<any>;\n @ViewChild('galleryDialogCont') galleryDialogCont: ElementRef;\n\n config: GalleryConfig;\n items: GalleryItem[] = null;\n inDialog = false;\n showFooter = false;\n showClose = true;\n \n mandatory = false;\n readonly = false;\n disabled = false;\n fieldHeight = '';\n standAlone = false;\n\n galleryWidth = 0;\n galleryHeight;\n isVertical = false;\n galleryRef: GalleryRef;\n dialogGalleryRef: GalleryRef;\n guid: string;\n\n private enlargeImageDialogRef: MatDialogRef<any>;\n\n constructor(\n private customizationService: PepCustomizationService,\n private dialogService: PepDialogService,\n private layoutService: PepLayoutService,\n private fileService: PepFileService,\n private iconRegistry: PepIconRegistry,\n private utilitiesService: PepUtilitiesService,\n private gallery: Gallery,\n private renderer: Renderer2,\n private element: ElementRef,\n private cd: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private document: any,\n @Optional()\n private dialogRef: MatDialogRef<PepImagesFilmstripComponent>,\n @Optional()\n @Inject(MAT_DIALOG_DATA)\n private data: IPepImagesFilmstripDialogData\n ) {\n // If data exist copy all data properties into this.\n if (dialogRef && data) {\n this.inDialog = true;\n\n Object.keys(data).forEach((key) => {\n if (key in this) {\n this[key] = data[key];\n }\n });\n }\n\n this.config = {\n nav: false, // Show navigation buttons\n // navIcon: pepIconArrowRightAlt.data,\n // loop: true,\n // zoomOut: 0,\n // dots: false,\n // dotsPosition: 'bottom',\n // counterPosition: 'top',\n // thumb: true,\n counter: false, // Show counter\n gestures: true, // Use touch events (requires hammer.js)\n // autoPlay: false,\n // thumbWidth: 120,\n // thumbHeight: 90,\n imageSize: 'contain',\n // panSensitivity: 25,\n // disableThumb: false,\n // playerInterval: 3000,\n // thumbMode: ThumbnailsMode.Free,\n // thumbPosition: ThumbnailsPosition.Bottom,\n loadingStrategy: LoadingStrategy.Preload,\n // slidingDirection: SlidingDirection.Horizontal,\n };\n\n this.guid = PepGuid.newGuid();\n }\n\n private setFieldHeight(): void {\n this.fieldHeight = this.customizationService.calculateFieldHeight(\n this.layoutType,\n this.rowSpan,\n this.standAlone\n );\n }\n\n private setDefaultForm(): void {\n const pepField = new PepImagesField({\n key: this.key,\n value: this.value,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n // private renderNavIcon(galleryContainer, isLeft: boolean) {\n // let iconName = isLeft ? pepIconArrowLeftAlt.name : pepIconArrowRightAlt.name;\n // const svgData = this.iconRegistry.getIcon(iconName);\n // const svgIcon = this.utilitiesService.getSvgElementFromString(\n // this.document,\n // svgData\n // );\n\n // const elementNameToFind = isLeft ? 'g-nav-prev' : 'g-nav-next'\n\n // const elementArr = galleryContainer.nativeElement.querySelectorAll(`.${elementNameToFind}`);\n // if (elementArr && elementArr.length > 0) {\n // elementArr[0].appendChild(svgIcon);\n // this.renderer.addClass(svgIcon, 'svg-icon');\n // }\n // }\n\n ngOnInit(): void {\n if (!this.inDialog) {\n if (this.form === null) {\n this.standAlone = true;\n this.setFieldHeight();\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n }\n\n if (this.items === null) {\n const imgArr = this.value ? this.value.split(';') : [];\n // add No image image when there is no images\n if (imgArr.length === 0) {\n const noImageSrc = this.fileService.getSvgAsImageSrc(\n pepIconNoImage2.data\n );\n imgArr.push(noImageSrc);\n }\n\n this.items = imgArr.map(\n (img) => new ImageItem({ src: img, thumb: img })\n );\n }\n\n this.config.dots = this.config.nav = this.items.length > 1;\n this.config.thumb =\n (this.key === 'ItemFilmstripImages' || this.showThumbnails) &&\n this.items.length > 1\n ? true\n : false;\n this.currIndex =\n this.key === 'ItemFilmstripImages' &&\n this.currIndex === 0 &&\n this.items.length > 1\n ? Math.floor(this.items.length / 2) - 1\n : this.currIndex;\n }\n\n ngAfterViewInit(): void {\n if (this.inDialog) {\n this.afterDialogOpened();\n } else {\n this.galleryRef = this.gallery.ref(\n `${this.guid}-gallery`\n );\n this.initGalleryStyle(this.galleryCont, this.galleryRef);\n }\n }\n\n ngOnChanges(): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n }\n\n ngOnDestroy(): void {\n if (this.galleryRef) {\n this.galleryRef.destroy();\n }\n if (this.dialogGalleryRef) {\n this.dialogGalleryRef.destroy();\n }\n // if (this.myPinch) { this.myPinch.destroy(); }\n }\n\n initGalleryStyle(galleryContainer, galleryRef): void {\n setTimeout(() => {\n // Set thumbnails position and sliding direction\n this.setThumbnailDimension(galleryContainer);\n galleryRef.setConfig(this.config);\n // this.renderNavIcon(galleryContainer, true);\n // this.renderNavIcon(galleryContainer, false);\n }, 0);\n\n const currentIndex = this.currIndex;\n if (currentIndex > 0) {\n setTimeout(() => {\n galleryRef.load(this.items);\n galleryRef.set(currentIndex);\n }, 0);\n // galleryRef.set(currentIndex);\n } else {\n galleryRef.load(this.items);\n }\n }\n\n onError(e): void {\n const noImageSrc = this.fileService.getSvgAsImageSrc(\n pepIconNoImage2.data\n );\n const noimg = new ImageItem({ src: noImageSrc, thumb: noImageSrc });\n this.items.splice(e.itemIndex, 1, noimg);\n }\n\n enlargeImage(event: any): void {\n const config = this.dialogService.getDialogConfig({}, 'inline');\n config.maxWidth = '75vw';\n config.height = '95vh';\n\n this.enlargeImageDialogRef = this.dialogService.openDialog(\n this.galleryDialogTemplate,\n {\n currIndex: this.currIndex,\n },\n config\n );\n\n this.enlargeImageDialogRef.afterOpened().subscribe(() => {\n this.afterDialogOpened();\n });\n\n // Update currentIndex in galleryRef\n // dialogRef.afterClosed().subscribe(value => {\n // this.galleryRef.set(this.currIndex);\n // });\n }\n\n afterDialogOpened(): void {\n this.dialogGalleryRef = this.gallery.ref(\n `${this.guid}-dlgGallery`\n );\n this.initGalleryStyle(this.galleryDialogCont, this.dialogGalleryRef);\n }\n\n closeDialog(event) {\n if (this.inDialog) {\n this.dialogRef?.close(event);\n } else {\n this.enlargeImageDialogRef?.close(event);\n }\n }\n\n setThumbnailDimension(galleryContainer): void {\n this.galleryWidth = galleryContainer.nativeElement.clientWidth;\n // this.galleryHeight = galleryContainer.nativeElement.clientHeight - 32; // TODO - TALK WITH TOMER\n this.galleryHeight = this.inDialog\n ? galleryContainer.nativeElement.clientHeight - 32\n : galleryContainer.nativeElement.clientHeight;\n // this.galleryHeight = galleryContainer.nativeElement.clientHeight - 32;\n this.cd.detectChanges();\n\n this.isVertical = this.galleryWidth < this.galleryHeight;\n this.cd.detectChanges();\n if (this.isVertical) {\n let width =\n (this.galleryWidth - (this.items.length - 1) * 16) /\n this.items.length;\n width = Math.min(Math.max(width, 24), 96);\n\n this.config.thumbHeight = width;\n this.config.thumbWidth = width + 16;\n } else {\n let height =\n (this.galleryHeight - (this.items.length - 1) * 16) /\n this.items.length;\n height = Math.min(Math.max(height, 24), 96);\n\n this.config.thumbHeight = height + 16;\n this.config.thumbWidth = height;\n }\n\n this.config.thumbPosition = this.isVertical\n ? ThumbnailsPosition.Bottom\n : this.layoutService.isRtl()\n ? ThumbnailsPosition.Right\n : ThumbnailsPosition.Left;\n this.config.slidingDirection =\n this.key !== 'ItemFilmstripImages'\n ? SlidingDirection.Horizontal\n : this.isVertical\n ? SlidingDirection.Horizontal\n : SlidingDirection.Vertical;\n\n this.config.imageSize = 'contain';\n }\n\n indexChange(item: any): void {\n this.currIndex = item.currIndex;\n // if (this.ngxViewerImage && this.ngxViewerImage.scale) {\n // this.ngxViewerImage.scale = 1;\n // this.updateStyle();\n // }\n }\n\n\n // scrollFunction(e: any): boolean {\n // e.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n // return false;\n // }\n\n // zoomIn(): void {\n // if (this.ngxViewerImage.scale < 2) {\n // this.ngxViewerImage.scale *= (1 + this.ngxViewerImage.config.zoomFactor);\n // } else {\n // this.ngxViewerImage.scale = 2;\n // }\n // this.updateStyle();\n // }\n\n // zoomOut(): void {\n // if (this.ngxViewerImage.scale > this.ngxViewerImage.config.zoomFactor) {\n // this.ngxViewerImage.scale /= (1 + this.ngxViewerImage.config.zoomFactor);\n // }\n // this.updateStyle();\n // }\n\n // private updateStyle(): void {\n // this.ngxViewerImage.style.transform = `translate(${this.ngxViewerImage.translateX}px,\n // ${this.ngxViewerImage.translateY}px) rotate(${this.ngxViewerImage.rotation}deg) scale(${this.ngxViewerImage.scale})`;\n\n // this.cd.detectChanges();\n // }\n}\n","<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n pepIconSystemClose,\n pepIconArrowRightAlt,\n pepIconArrowLeftAlt,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { GalleryModule } from 'ng-gallery';\n\nimport { PepImagesFilmstripComponent } from './images-filmstrip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatFormFieldModule,\n MatDialogModule,\n MatIconModule,\n // External modules\n GalleryModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepButtonModule,\n PepIconModule,\n PepFieldTitleModule,\n PepDialogModule,\n ],\n exports: [PepImagesFilmstripComponent],\n declarations: [PepImagesFilmstripComponent],\n})\nexport class PepImagesFilmstripModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemEdit,\n pepIconSystemClose,\n pepIconArrowRightAlt,\n pepIconArrowLeftAlt,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/images-filmstrip\n */\nexport * from './images-filmstrip.module';\nexport * from './images-filmstrip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -305,7 +305,7 @@ class PepLinkComponent {
|
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
307
|
PepLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLinkComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TranslateService }, { token: i1.PepUtilitiesService }, { token: IsUrlPipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
308
|
-
PepLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLinkComponent, selector: "pep-link", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", placeholder: "placeholder", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\"> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i11.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i12.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: IsUrlPipe, name: "isUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
308
|
+
PepLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLinkComponent, selector: "pep-link", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", placeholder: "placeholder", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\"> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i1$1.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i11.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }, { kind: "component", type: i12.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: IsUrlPipe, name: "isUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
309
309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLinkComponent, decorators: [{
|
|
310
310
|
type: Component,
|
|
311
311
|
args: [{ selector: 'pep-link', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\"> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-link.mjs","sources":["../../../projects/ngx-lib/link/link.pipes.ts","../../../projects/ngx-lib/link/link.component.ts","../../../projects/ngx-lib/link/link.component.html","../../../projects/ngx-lib/link/link.module.ts","../../../projects/ngx-lib/link/public-api.ts","../../../projects/ngx-lib/link/pepperi-addons-ngx-lib-link.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isUrl'\n})\nexport class IsUrlPipe implements PipeTransform {\n transform(value: string): boolean {\n //const regex = /^(((http(s?)|ftp)\\:\\/\\/)|(www\\.))[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)(.*)/;\n const regex = /^(((http(s?)|ftp)\\:\\/\\/)|(www\\.))/;\n return regex.test(value);\n }\n}","import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ElementRef,\n ViewChild,\n Renderer2,\n OnDestroy,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepTextboxFieldType,\n PepTextboxField,\n PepFieldBase,\n PepUtilitiesService,\n IPepFieldClickEvent,\n} from '@pepperi-addons/ngx-lib';\nimport { IsUrlPipe } from './link.pipes';\n\n/**\n * This is a text box input component that can be use to\n *\n * @export\n * @class PepTextboxComponent\n * @implements {OnChanges}\n * @implements {OnInit}\n * @implements {OnDestroy}\n */\n@Component({\n selector: 'pep-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepLinkComponent implements OnChanges, OnInit, OnDestroy {\n\n @HostBinding('attr.data-qa') dataQa = '';\n\n private _key = '';\n /**\n * The text box key\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set key(value) {\n this._key = value;\n this.dataQa = value;\n }\n get key(): string {\n return this._key;\n }\n\n private _value = '';\n /**\n * The value of the text box.\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set value(value: string) {\n if (!value) {\n value = '';\n }\n\n this._value = value;\n\n if (this._calculateFormattedValue) {\n this.setFormattedValue(value);\n }\n }\n get value(): string {\n return this._value;\n }\n\n private _formattedValue = null;\n /**\n * The formatted value.\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set formattedValue(value: string) {\n // Do nothing.\n // if (!value) {\n // value = '';\n // }\n\n // if (this._calculateFormattedValue) {\n // this._calculateFormattedValue = false;\n // }\n\n // this.setFormattedValue(value);\n }\n get formattedValue(): string {\n return this._formattedValue;\n }\n\n /**\n * The title of the textbox.\n *\n * @memberof PepTextboxComponent\n */\n @Input() label = '';\n\n /**\n * The placeholder (relevant only for children - if parent isn't null).\n *\n * @memberof PepTextboxComponent\n */\n @Input() placeholder = '';\n\n /**\n * The type of the textbox.\n *\n * @type {PepTextboxFieldType}\n * @memberof PepTextboxComponent\n */\n type: PepTextboxFieldType = 'link';\n\n /**\n * If the textbox is mandatory\n *\n * @memberof PepTextboxComponent\n */\n @Input() mandatory = false;\n\n // TODO: Check if should remove disabled and keep only readonly.\n /**\n * If the textbox is disabled.\n *\n * @memberof PepTextboxComponent\n */\n @Input() disabled = false;\n\n /**\n * If the textbox is readonly\n *\n * @memberof PepTextboxComponent\n */\n @Input() readonly = false;\n @Input() maxFieldCharacters: number;\n @Input() textColor = '';\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 1;\n // @Input() lastFocusField: any;\n \n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n @Input() form: FormGroup = null;\n @Input() isActive = false;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n @Input() renderError = true;\n @Input() renderSymbol = true;\n @Input() layoutType: PepLayoutType = 'form';\n \n /**\n * The value change event.\n *\n * @type {EventEmitter<string>}\n * @memberof PepTextboxComponent\n */\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n\n @ViewChild('input') input: ElementRef;\n\n private _calculateFormattedValue = true;\n get calculateFormattedValue(): boolean {\n return this._calculateFormattedValue;\n }\n\n controlType = 'link';\n\n standAlone = false;\n isInEditMode = false;\n isInFocus: boolean;\n isUrl = false;\n\n constructor(\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef,\n private translate: TranslateService,\n private utilitiesService: PepUtilitiesService,\n private isUrlPipe: IsUrlPipe\n ) {\n this.isInFocus = false;\n }\n\n private setFormattedValue(value: string) {\n if (this._calculateFormattedValue) {\n this._formattedValue = value;\n } else {\n this._formattedValue = value;\n }\n\n this.updateFormFieldValue();\n }\n\n private updateFormFieldValue() {\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n this.formattedValue\n );\n }\n\n get displayValue(): string {\n const res = this.formattedValue;\n\n return res;\n }\n\n private setDefaultForm(): void {\n const pepField = new PepTextboxField({\n key: this.key,\n value: this.value,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n maxFieldCharacters: this.maxFieldCharacters,\n type: this.type,\n });\n this.form = this.customizationService.getDefaultFromGroup(\n pepField,\n this.renderError\n );\n }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n\n this.updateFormFieldValue();\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n }\n\n ngOnDestroy(): void {\n //\n }\n\n onFocus(event: any): void {\n this.isInFocus = true;\n\n // select the value in focus (DI-18246 improvement)\n setTimeout(() => {\n const eventTarget = event.target || event.srcElement;\n if (eventTarget) {\n eventTarget.select();\n }\n }, 0);\n }\n\n isValueValid(value: string): boolean {\n // TODO: Maybe need to check other types.\n const res = true;\n\n return res;\n }\n\n onChange(e: any): void {\n const value = e.target ? e.target.value : e;\n\n this.valueChange.emit(value);\n }\n\n onBlur(e: any): void {\n this.isInFocus = false;\n const value = e.target ? e.target.value : e;\n if (value !== this.value) {\n // If renderError is false and the new value is not valid.\n if (!this.renderError && !this.isValueValid(value)) {\n this.renderer.setProperty(\n this.input.nativeElement,\n 'value',\n this.value\n );\n } else {\n this.value = value;\n\n // If the user is setting the formatted value then set the value till the user format it and return it back.\n if (!this._calculateFormattedValue) {\n this._formattedValue = value;\n }\n\n this.valueChange.emit(value);\n }\n }\n\n if (this.isInEditMode) {\n this.isInEditMode = false;\n }\n }\n\n onClick() {\n const output: IPepFieldClickEvent = {\n key: this.key,\n value: this.value,\n controlType: this.controlType\n }\n this.elementClick.emit(output);\n }\n\n anchorClicked(): void {\n const currentValue = this.value;\n if (currentValue.trim().length > 0) {\n const output: IPepFieldClickEvent = {\n key: this.key,\n value: this.value,\n controlType: this.controlType\n }\n this.elementClick.emit(output);\n if (this.isUrlPipe.transform(currentValue)) {\n window.open(currentValue);\n }\n }\n }\n\n cardTemplateClicked(event: any): void {\n this.isInEditMode = true;\n\n setTimeout(() => {\n this.input.nativeElement.focus();\n }, 0);\n }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\"> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepTextboxIconModule } from '@pepperi-addons/ngx-lib/textbox-icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepLinkComponent } from './link.component';\n//import { PepTextboxValidationDirective } from './textbox-validation.directive';\n\nimport { IsUrlPipe } from './link.pipes';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n PepTextboxIconModule,\n ],\n exports: [PepLinkComponent],\n declarations: [\n PepLinkComponent,\n // PepTextboxValidationDirective,\n IsUrlPipe\n ],\n providers: [IsUrlPipe]\n})\nexport class PepLinkModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/link\n */\nexport * from './link.module';\nexport * from './link.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.IsUrlPipe","i10","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAKa,SAAS,CAAA;AAClB,IAAA,SAAS,CAAC,KAAa,EAAA;;QAEnB,MAAM,KAAK,GAAG,mCAAmC,CAAC;AAClD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;sGALQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oGAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AAChB,iBAAA,CAAA;;;AC0BD;;;;;;;;AAQG;MAOU,gBAAgB,CAAA;IA0KzB,WACY,CAAA,oBAA6C,EAC7C,QAAmB,EACnB,OAAmB,EACnB,SAA2B,EAC3B,gBAAqC,EACrC,SAAoB,EAAA;QALpB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAyB;QAC7C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;QACrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QA9KH,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAEjC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAeV,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAsBZ,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAuB/B;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE1B;;;;;AAKG;QACH,IAAI,CAAA,IAAA,GAAwB,MAAM,CAAC;AAEnC;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAG3B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAU,CAAA,UAAA,GAA2B,4BAA4B,CAAC;QAClE,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;;QAGb,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAoBf,IAAI,CAAA,IAAA,GAAc,IAAI,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAU,CAAA,UAAA,GAAkB,MAAM,CAAC;AAE5C;;;;;AAKG;AAEH,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAG/D,QAAA,IAAA,CAAA,oBAAoB,GAA0B,IAAI,YAAY,EAAW,CAAC;AAG1E,QAAA,IAAA,CAAA,YAAY,GAAsC,IAAI,YAAY,EAAuB,CAAC;QAIlF,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;QAKxC,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QAErB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAUV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AA9KD;;;;AAIG;IACH,IACI,GAAG,CAAC,KAAK,EAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;AACD,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AAGD;;;;AAIG;IACH,IACI,KAAK,CAAC,KAAa,EAAA;QACnB,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,EAAE,CAAC;AACd,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;KACJ;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAGD;;;;AAIG;IACH,IACI,cAAc,CAAC,KAAa,EAAA;;;;;;;;;KAW/B;AACD,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAoDD,IACI,OAAO,CAAC,OAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;AACL,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;AACL,SAAA;KACJ;AACD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AA4BD,IAAA,IAAI,uBAAuB,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;AAoBO,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACnC,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAC1C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,CACtB,CAAC;KACL;AAED,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;AAEhC,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,cAAc,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;AAClB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CACrD,QAAQ,EACR,IAAI,CAAC,WAAW,CACnB,CAAC;KACL;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,4BAA4B,CACvD,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,uCAAuC,CAClE,CAAC;AACL,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,WAAW,GAAA;;KAEV;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;QAGtB,UAAU,CAAC,MAAK;YACZ,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;AACrD,YAAA,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,MAAM,EAAE,CAAC;AACxB,aAAA;SACJ,EAAE,CAAC,CAAC,CAAC;KACT;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,QAAQ,CAAC,CAAM,EAAA;AACX,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,MAAM,CAAC,CAAM,EAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;;AAEtB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,OAAO,EACP,IAAI,CAAC,KAAK,CACb,CAAC;AACL,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;AAGnB,gBAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAChC,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,iBAAA;AAED,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,SAAA;KACJ;IAED,OAAO,GAAA;AACH,QAAA,MAAM,MAAM,GAAwB;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAED,aAAa,GAAA;AACT,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,MAAM,GAAwB;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;aAChC,CAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;AACxC,gBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACpC,EAAE,CAAC,CAAC,CAAC;KACT;;6GAhVQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6zBC7C7B,m1NA6Ge,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDhEF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACI,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m1NAAA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,CAAA;qPAIlB,MAAM,EAAA,CAAA;sBAAlC,WAAW;uBAAC,cAAc,CAAA;gBASvB,GAAG,EAAA,CAAA;sBADN,KAAK;gBAgBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAuBF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAsBG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAeG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAmBG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBAIP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAGa,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;MEzJT,aAAa,CAAA;AACtB,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3D;;0GAHQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBANlB,gBAAgB;;AAEhB,QAAA,SAAS,aAlBT,YAAY;QACZ,mBAAmB;;QAEnB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,aAAa;;QAEb,eAAe;QACf,aAAa;QACb,mBAAmB;AACnB,QAAA,oBAAoB,aAEd,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAQjB,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAFX,SAAA,EAAA,CAAC,SAAS,CAAC,YApBlB,YAAY;QACZ,mBAAmB;;QAEnB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,aAAa;;QAEb,eAAe;QACf,aAAa;QACb,mBAAmB;QACnB,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAUf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAxBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;;wBAEnB,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,aAAa;;wBAEb,eAAe;wBACf,aAAa;wBACb,mBAAmB;wBACnB,oBAAoB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,oBAAA,YAAY,EAAE;wBACV,gBAAgB;;wBAEhB,SAAS;AACZ,qBAAA;oBACD,SAAS,EAAE,CAAC,SAAS,CAAC;AACzB,iBAAA,CAAA;;;AC/CD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-link.mjs","sources":["../../../projects/ngx-lib/link/link.pipes.ts","../../../projects/ngx-lib/link/link.component.ts","../../../projects/ngx-lib/link/link.component.html","../../../projects/ngx-lib/link/link.module.ts","../../../projects/ngx-lib/link/public-api.ts","../../../projects/ngx-lib/link/pepperi-addons-ngx-lib-link.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isUrl'\n})\nexport class IsUrlPipe implements PipeTransform {\n transform(value: string): boolean {\n //const regex = /^(((http(s?)|ftp)\\:\\/\\/)|(www\\.))[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)(.*)/;\n const regex = /^(((http(s?)|ftp)\\:\\/\\/)|(www\\.))/;\n return regex.test(value);\n }\n}","import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ElementRef,\n ViewChild,\n Renderer2,\n OnDestroy,\n ChangeDetectorRef,\n HostBinding,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepTextboxFieldType,\n PepTextboxField,\n PepFieldBase,\n PepUtilitiesService,\n IPepFieldClickEvent,\n} from '@pepperi-addons/ngx-lib';\nimport { IsUrlPipe } from './link.pipes';\n\n/**\n * This is a text box input component that can be use to\n *\n * @export\n * @class PepTextboxComponent\n * @implements {OnChanges}\n * @implements {OnInit}\n * @implements {OnDestroy}\n */\n@Component({\n selector: 'pep-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepLinkComponent implements OnChanges, OnInit, OnDestroy {\n\n @HostBinding('attr.data-qa') dataQa = '';\n\n private _key = '';\n /**\n * The text box key\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set key(value) {\n this._key = value;\n this.dataQa = value;\n }\n get key(): string {\n return this._key;\n }\n\n private _value = '';\n /**\n * The value of the text box.\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set value(value: string) {\n if (!value) {\n value = '';\n }\n\n this._value = value;\n\n if (this._calculateFormattedValue) {\n this.setFormattedValue(value);\n }\n }\n get value(): string {\n return this._value;\n }\n\n private _formattedValue = null;\n /**\n * The formatted value.\n *\n * @memberof PepTextboxComponent\n */\n @Input()\n set formattedValue(value: string) {\n // Do nothing.\n // if (!value) {\n // value = '';\n // }\n\n // if (this._calculateFormattedValue) {\n // this._calculateFormattedValue = false;\n // }\n\n // this.setFormattedValue(value);\n }\n get formattedValue(): string {\n return this._formattedValue;\n }\n\n /**\n * The title of the textbox.\n *\n * @memberof PepTextboxComponent\n */\n @Input() label = '';\n\n /**\n * The placeholder (relevant only for children - if parent isn't null).\n *\n * @memberof PepTextboxComponent\n */\n @Input() placeholder = '';\n\n /**\n * The type of the textbox.\n *\n * @type {PepTextboxFieldType}\n * @memberof PepTextboxComponent\n */\n type: PepTextboxFieldType = 'link';\n\n /**\n * If the textbox is mandatory\n *\n * @memberof PepTextboxComponent\n */\n @Input() mandatory = false;\n\n // TODO: Check if should remove disabled and keep only readonly.\n /**\n * If the textbox is disabled.\n *\n * @memberof PepTextboxComponent\n */\n @Input() disabled = false;\n\n /**\n * If the textbox is readonly\n *\n * @memberof PepTextboxComponent\n */\n @Input() readonly = false;\n @Input() maxFieldCharacters: number;\n @Input() textColor = '';\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 1;\n // @Input() lastFocusField: any;\n \n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n @Input() form: FormGroup = null;\n @Input() isActive = false;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n @Input() renderError = true;\n @Input() renderSymbol = true;\n @Input() layoutType: PepLayoutType = 'form';\n \n /**\n * The value change event.\n *\n * @type {EventEmitter<string>}\n * @memberof PepTextboxComponent\n */\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n\n @ViewChild('input') input: ElementRef;\n\n private _calculateFormattedValue = true;\n get calculateFormattedValue(): boolean {\n return this._calculateFormattedValue;\n }\n\n controlType = 'link';\n\n standAlone = false;\n isInEditMode = false;\n isInFocus: boolean;\n isUrl = false;\n\n constructor(\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef,\n private translate: TranslateService,\n private utilitiesService: PepUtilitiesService,\n private isUrlPipe: IsUrlPipe\n ) {\n this.isInFocus = false;\n }\n\n private setFormattedValue(value: string) {\n if (this._calculateFormattedValue) {\n this._formattedValue = value;\n } else {\n this._formattedValue = value;\n }\n\n this.updateFormFieldValue();\n }\n\n private updateFormFieldValue() {\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n this.formattedValue\n );\n }\n\n get displayValue(): string {\n const res = this.formattedValue;\n\n return res;\n }\n\n private setDefaultForm(): void {\n const pepField = new PepTextboxField({\n key: this.key,\n value: this.value,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n maxFieldCharacters: this.maxFieldCharacters,\n type: this.type,\n });\n this.form = this.customizationService.getDefaultFromGroup(\n pepField,\n this.renderError\n );\n }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n\n this.updateFormFieldValue();\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n }\n\n ngOnDestroy(): void {\n //\n }\n\n onFocus(event: any): void {\n this.isInFocus = true;\n\n // select the value in focus (DI-18246 improvement)\n setTimeout(() => {\n const eventTarget = event.target || event.srcElement;\n if (eventTarget) {\n eventTarget.select();\n }\n }, 0);\n }\n\n isValueValid(value: string): boolean {\n // TODO: Maybe need to check other types.\n const res = true;\n\n return res;\n }\n\n onChange(e: any): void {\n const value = e.target ? e.target.value : e;\n\n this.valueChange.emit(value);\n }\n\n onBlur(e: any): void {\n this.isInFocus = false;\n const value = e.target ? e.target.value : e;\n if (value !== this.value) {\n // If renderError is false and the new value is not valid.\n if (!this.renderError && !this.isValueValid(value)) {\n this.renderer.setProperty(\n this.input.nativeElement,\n 'value',\n this.value\n );\n } else {\n this.value = value;\n\n // If the user is setting the formatted value then set the value till the user format it and return it back.\n if (!this._calculateFormattedValue) {\n this._formattedValue = value;\n }\n\n this.valueChange.emit(value);\n }\n }\n\n if (this.isInEditMode) {\n this.isInEditMode = false;\n }\n }\n\n onClick() {\n const output: IPepFieldClickEvent = {\n key: this.key,\n value: this.value,\n controlType: this.controlType\n }\n this.elementClick.emit(output);\n }\n\n anchorClicked(): void {\n const currentValue = this.value;\n if (currentValue.trim().length > 0) {\n const output: IPepFieldClickEvent = {\n key: this.key,\n value: this.value,\n controlType: this.controlType\n }\n this.elementClick.emit(output);\n if (this.isUrlPipe.transform(currentValue)) {\n window.open(currentValue);\n }\n }\n }\n\n cardTemplateClicked(event: any): void {\n this.isInEditMode = true;\n\n setTimeout(() => {\n this.input.nativeElement.focus();\n }, 0);\n }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\"> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepTextboxIconModule } from '@pepperi-addons/ngx-lib/textbox-icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepLinkComponent } from './link.component';\n//import { PepTextboxValidationDirective } from './textbox-validation.directive';\n\nimport { IsUrlPipe } from './link.pipes';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n PepTextboxIconModule,\n ],\n exports: [PepLinkComponent],\n declarations: [\n PepLinkComponent,\n // PepTextboxValidationDirective,\n IsUrlPipe\n ],\n providers: [IsUrlPipe]\n})\nexport class PepLinkModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/link\n */\nexport * from './link.module';\nexport * from './link.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.IsUrlPipe","i10","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAKa,SAAS,CAAA;AAClB,IAAA,SAAS,CAAC,KAAa,EAAA;;QAEnB,MAAM,KAAK,GAAG,mCAAmC,CAAC;AAClD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;sGALQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oGAAT,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,OAAO;AAChB,iBAAA,CAAA;;;AC0BD;;;;;;;;AAQG;MAOU,gBAAgB,CAAA;IA0KzB,WACY,CAAA,oBAA6C,EAC7C,QAAmB,EACnB,OAAmB,EACnB,SAA2B,EAC3B,gBAAqC,EACrC,SAAoB,EAAA;QALpB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAyB;QAC7C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;QACrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QA9KH,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAEjC,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAeV,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAsBZ,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAuB/B;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAEpB;;;;AAIG;QACM,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAE1B;;;;;AAKG;QACH,IAAI,CAAA,IAAA,GAAwB,MAAM,CAAC;AAEnC;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAG3B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAE1B;;;;AAIG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAU,CAAA,UAAA,GAA2B,4BAA4B,CAAC;QAClE,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;;QAGb,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAoBf,IAAI,CAAA,IAAA,GAAc,IAAI,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QACpB,IAAU,CAAA,UAAA,GAAkB,MAAM,CAAC;AAE5C;;;;;AAKG;AAEH,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAG/D,QAAA,IAAA,CAAA,oBAAoB,GAA0B,IAAI,YAAY,EAAW,CAAC;AAG1E,QAAA,IAAA,CAAA,YAAY,GAAsC,IAAI,YAAY,EAAuB,CAAC;QAIlF,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;QAKxC,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QAErB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAUV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AA9KD;;;;AAIG;IACH,IACI,GAAG,CAAC,KAAK,EAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;AACD,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AAGD;;;;AAIG;IACH,IACI,KAAK,CAAC,KAAa,EAAA;QACnB,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,EAAE,CAAC;AACd,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;KACJ;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAGD;;;;AAIG;IACH,IACI,cAAc,CAAC,KAAa,EAAA;;;;;;;;;KAW/B;AACD,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAoDD,IACI,OAAO,CAAC,OAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;AACL,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;AACL,SAAA;KACJ;AACD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AA4BD,IAAA,IAAI,uBAAuB,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;AAoBO,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACnC,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAC1C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,CACtB,CAAC;KACL;AAED,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;AAEhC,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,cAAc,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;AAClB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CACrD,QAAQ,EACR,IAAI,CAAC,WAAW,CACnB,CAAC;KACL;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,4BAA4B,CACvD,CAAC;AAEF,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,uCAAuC,CAClE,CAAC;AACL,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,OAAY,EAAA;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,WAAW,GAAA;;KAEV;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;QAGtB,UAAU,CAAC,MAAK;YACZ,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;AACrD,YAAA,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,MAAM,EAAE,CAAC;AACxB,aAAA;SACJ,EAAE,CAAC,CAAC,CAAC;KACT;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,QAAQ,CAAC,CAAM,EAAA;AACX,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,MAAM,CAAC,CAAM,EAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;;AAEtB,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,OAAO,EACP,IAAI,CAAC,KAAK,CACb,CAAC;AACL,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;AAGnB,gBAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAChC,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,iBAAA;AAED,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC7B,SAAA;KACJ;IAED,OAAO,GAAA;AACH,QAAA,MAAM,MAAM,GAAwB;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAED,aAAa,GAAA;AACT,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,MAAM,GAAwB;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;aAChC,CAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;AACxC,gBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACpC,EAAE,CAAC,CAAC,CAAC;KACT;;6GAhVQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6zBC7C7B,m1NA6Ge,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDhEF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACI,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m1NAAA,EAAA,MAAA,EAAA,CAAA,8QAAA,CAAA,EAAA,CAAA;qPAIlB,MAAM,EAAA,CAAA;sBAAlC,WAAW;uBAAC,cAAc,CAAA;gBASvB,GAAG,EAAA,CAAA;sBADN,KAAK;gBAgBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAuBF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAsBG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAOG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAeG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAQG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAmBG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBAIP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAGa,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;;;MEzJT,aAAa,CAAA;AACtB,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3D;;0GAHQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBANlB,gBAAgB;;AAEhB,QAAA,SAAS,aAlBT,YAAY;QACZ,mBAAmB;;QAEnB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,aAAa;;QAEb,eAAe;QACf,aAAa;QACb,mBAAmB;AACnB,QAAA,oBAAoB,aAEd,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAQjB,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAFX,SAAA,EAAA,CAAC,SAAS,CAAC,YApBlB,YAAY;QACZ,mBAAmB;;QAEnB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,aAAa;;QAEb,eAAe;QACf,aAAa;QACb,mBAAmB;QACnB,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAUf,aAAa,EAAA,UAAA,EAAA,CAAA;kBAxBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;;wBAEnB,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,aAAa;;wBAEb,eAAe;wBACf,aAAa;wBACb,mBAAmB;wBACnB,oBAAoB;AACvB,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,oBAAA,YAAY,EAAE;wBACV,gBAAgB;;wBAEhB,SAAS;AACZ,qBAAA;oBACD,SAAS,EAAE,CAAC,SAAS,CAAC;AACzB,iBAAA,CAAA;;;AC/CD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -71,15 +71,16 @@ class VirtualScrollerComponent {
|
|
|
71
71
|
this.cachedPageSize = 0;
|
|
72
72
|
this.previousScrollNumberElements = 0;
|
|
73
73
|
this.isAngularUniversalSSR = isPlatformServer(platformId);
|
|
74
|
-
|
|
75
|
-
this.
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
79
|
-
this.
|
|
80
|
-
this.
|
|
81
|
-
this.
|
|
82
|
-
this.
|
|
74
|
+
const defaultOptions = VIRTUAL_SCROLLER_DEFAULT_OPTIONS_FACTORY();
|
|
75
|
+
this.checkResizeInterval = options?.checkResizeInterval || defaultOptions.checkResizeInterval;
|
|
76
|
+
this.modifyOverflowStyleOfParentScroll = options?.modifyOverflowStyleOfParentScroll || defaultOptions.modifyOverflowStyleOfParentScroll;
|
|
77
|
+
this.resizeBypassRefreshThreshold = options?.resizeBypassRefreshThreshold || defaultOptions.resizeBypassRefreshThreshold;
|
|
78
|
+
this.scrollAnimationTime = options?.scrollAnimationTime || defaultOptions.scrollAnimationTime;
|
|
79
|
+
this.scrollDebounceTime = options?.scrollDebounceTime || defaultOptions.scrollDebounceTime;
|
|
80
|
+
this.scrollThrottlingTime = options?.scrollThrottlingTime || defaultOptions.scrollThrottlingTime;
|
|
81
|
+
this.scrollbarHeight = options?.scrollbarHeight || defaultOptions.scrollbarHeight;
|
|
82
|
+
this.scrollbarWidth = options?.scrollbarWidth || defaultOptions.scrollbarWidth;
|
|
83
|
+
this.stripedTable = options?.stripedTable || defaultOptions.stripedTable;
|
|
83
84
|
this.horizontal = false;
|
|
84
85
|
this.resetWrapGroupDimensions();
|
|
85
86
|
}
|
|
@@ -1191,7 +1192,7 @@ class PepListPagerComponent {
|
|
|
1191
1192
|
}
|
|
1192
1193
|
}
|
|
1193
1194
|
PepListPagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListPagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1194
|
-
PepListPagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepListPagerComponent, selector: "pep-list-pager", inputs: { disabled: "disabled", pageIndex: "pageIndex", length: "length", pageSize: "pageSize" }, outputs: { pagerChange: "pagerChange" }, ngImport: i0, template: "<div class=\"pager-container body-sm\">\n <span class=\"pep-spacing-element\">{{ 'LIST.PAGER_PAGE' | translate }}</span>\n <pep-textbox pepAutoWidth class=\"page-index pep-spacing-element\" [key]=\"'pageIndex'\" [type]=\"'int'\"\n [disabled]=\"disabled\" [xAlignment]=\"'center'\" [renderTitle]=\"false\" [renderError]=\"false\" [renderSymbol]=\"false\"\n [value]=\"pageIndex + 1\" [formattedValue]=\"pageIndex + 1\" [minValue]=\"1\" [maxValue]=\"this.getNumberOfPages()\"\n [maxFieldCharacters]=\"6\" [mandatory]=\"true\" (valueChange)=\"onValueChange($event)\">\n </pep-textbox>\n <span class=\"pep-spacing-element\">{{ 'LIST.PAGER_OUT_OF' | translate }}</span>\n <span class=\"pep-spacing-element\">{{ getNumberOfPages() }}</span>\n <button mat-button [disabled]=\"disabled || _previousButtonsDisabled()\"\n [ngClass]=\"{ disabled: disabled || _previousButtonsDisabled() }\"\n class=\"pep-button icon-button pep-spacing-element sm weak\" pepRtlDirection pepMenuBlur (click)=\"previousPage()\"\n [title]=\"('LIST.PAGER_PREVIOUS' | translate)\">\n <mat-icon>\n <pep-icon [name]=\"layoutService.isRtl() ? 'arrow_right' : 'arrow_left'\"></pep-icon>\n </mat-icon>\n </button>\n <button mat-button [disabled]=\"disabled || _nextButtonsDisabled()\"\n [ngClass]=\"{ disabled: disabled || _nextButtonsDisabled() }\"\n class=\"pep-button icon-button pep-spacing-element sm weak\" pepRtlDirection pepMenuBlur (click)=\"nextPage()\"\n [title]=\"('LIST.PAGER_NEXT' | translate)\">\n <mat-icon>\n <pep-icon [name]=\"layoutService.isRtl() ? 'arrow_left' : 'arrow_right'\"></pep-icon>\n </mat-icon>\n </button>\n</div>", styles: [".pager-container{display:flex;justify-content:center;align-items:center;height:calc(2rem + calc(var(--pep-spacing-sm, .5rem) * 2));padding:var(--pep-spacing-sm, .5rem)}.pager-container .page-index{min-height:unset;margin-bottom:0}.pager-container .page-index ::ng-deep .mat-form-field-flex{padding:0 .5rem;min-height:2rem}.pager-container .page-index ::ng-deep .mat-form-field-flex .mat-input-element{min-width:1.25rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.PepInputAutoWidthDirective, selector: "[pepAutoWidth]", inputs: ["includePadding"] }, { kind: "directive", type: i1.PepMenuBlurDirective, selector: "[pepMenuBlur]" }, { kind: "directive", type: i1.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i5.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i6.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
|
|
1195
|
+
PepListPagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepListPagerComponent, selector: "pep-list-pager", inputs: { disabled: "disabled", pageIndex: "pageIndex", length: "length", pageSize: "pageSize" }, outputs: { pagerChange: "pagerChange" }, ngImport: i0, template: "<div class=\"pager-container body-sm\">\n <span class=\"pep-spacing-element\">{{ 'LIST.PAGER_PAGE' | translate }}</span>\n <pep-textbox pepAutoWidth class=\"page-index pep-spacing-element\" [key]=\"'pageIndex'\" [type]=\"'int'\"\n [disabled]=\"disabled\" [xAlignment]=\"'center'\" [renderTitle]=\"false\" [renderError]=\"false\" [renderSymbol]=\"false\"\n [value]=\"pageIndex + 1\" [formattedValue]=\"pageIndex + 1\" [minValue]=\"1\" [maxValue]=\"this.getNumberOfPages()\"\n [maxFieldCharacters]=\"6\" [mandatory]=\"true\" (valueChange)=\"onValueChange($event)\">\n </pep-textbox>\n <span class=\"pep-spacing-element\">{{ 'LIST.PAGER_OUT_OF' | translate }}</span>\n <span class=\"pep-spacing-element\">{{ getNumberOfPages() }}</span>\n <button mat-button [disabled]=\"disabled || _previousButtonsDisabled()\"\n [ngClass]=\"{ disabled: disabled || _previousButtonsDisabled() }\"\n class=\"pep-button icon-button pep-spacing-element sm weak\" pepRtlDirection pepMenuBlur (click)=\"previousPage()\"\n [title]=\"('LIST.PAGER_PREVIOUS' | translate)\">\n <mat-icon>\n <pep-icon [name]=\"layoutService.isRtl() ? 'arrow_right' : 'arrow_left'\"></pep-icon>\n </mat-icon>\n </button>\n <button mat-button [disabled]=\"disabled || _nextButtonsDisabled()\"\n [ngClass]=\"{ disabled: disabled || _nextButtonsDisabled() }\"\n class=\"pep-button icon-button pep-spacing-element sm weak\" pepRtlDirection pepMenuBlur (click)=\"nextPage()\"\n [title]=\"('LIST.PAGER_NEXT' | translate)\">\n <mat-icon>\n <pep-icon [name]=\"layoutService.isRtl() ? 'arrow_left' : 'arrow_right'\"></pep-icon>\n </mat-icon>\n </button>\n</div>", styles: [".pager-container{display:flex;justify-content:center;align-items:center;height:calc(2rem + calc(var(--pep-spacing-sm, .5rem) * 2));padding:var(--pep-spacing-sm, .5rem)}.pager-container .page-index{min-height:unset;margin-bottom:0}.pager-container .page-index ::ng-deep .mat-form-field-flex{padding:0 .5rem;min-height:2rem}.pager-container .page-index ::ng-deep .mat-form-field-flex .mat-input-element{min-width:1.25rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.PepInputAutoWidthDirective, selector: "[pepAutoWidth]", inputs: ["includePadding"] }, { kind: "directive", type: i1.PepMenuBlurDirective, selector: "[pepMenuBlur]" }, { kind: "directive", type: i1.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i5.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i6.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError"], outputs: ["valueChange", "formValidationChange"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
|
|
1195
1196
|
PepListPagerComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListPagerComponent });
|
|
1196
1197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListPagerComponent, decorators: [{
|
|
1197
1198
|
type: Component,
|
|
@@ -1468,9 +1469,12 @@ class PepListComponent {
|
|
|
1468
1469
|
}
|
|
1469
1470
|
}
|
|
1470
1471
|
setContainerWidth() {
|
|
1472
|
+
if (!this.hostElement.nativeElement.parentElement) {
|
|
1473
|
+
return;
|
|
1474
|
+
}
|
|
1471
1475
|
const selectionCheckBoxWidth = this.selectionTypeForActions === 'multi' ? 44 : 0;
|
|
1472
1476
|
const rowHeight = 40; // the table row height (2.5rem * 16font-size).
|
|
1473
|
-
const style =
|
|
1477
|
+
const style = getComputedStyle(this.hostElement.nativeElement.parentElement);
|
|
1474
1478
|
// The container-fluid class padding left + right + border
|
|
1475
1479
|
const containerFluidSpacing = parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);
|
|
1476
1480
|
const parentContainer = this.hostElement.nativeElement.parentElement.parentElement > 0
|