@pepperi-addons/ngx-lib 0.3.9-beta.7 → 0.3.9
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/bundles/pepperi-addons-ngx-lib-date.umd.js +11 -3
- package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js +4 -2
- package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +14 -3
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +17 -8
- package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-icon.umd.js +40 -14
- package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +14 -8
- package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-link.umd.js +488 -0
- package/bundles/pepperi-addons-ngx-lib-link.umd.js.map +1 -0
- package/bundles/pepperi-addons-ngx-lib-list.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js +14 -9
- package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-search.umd.js +10 -3
- package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +2 -3
- package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib.umd.js +25 -2
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/core/customization/customization.model.d.ts +6 -0
- package/date/date.component.d.ts +1 -0
- package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
- package/draggable-items/draggable-items.component.d.ts +2 -0
- package/draggable-items/pepperi-addons-ngx-lib-draggable-items.metadata.json +1 -1
- package/esm2015/core/common/services/utilities.service.js +4 -2
- package/esm2015/core/customization/customization.model.js +18 -2
- package/esm2015/date/date.component.js +12 -5
- package/esm2015/draggable-items/draggable-items.component.js +5 -3
- package/esm2015/files-uploader/files-uploader.component.js +15 -4
- package/esm2015/form/field-generator.component.js +2 -2
- package/esm2015/form/form.component.js +13 -5
- package/esm2015/form/form.module.js +3 -1
- package/esm2015/icon/icon-generated-all.model.js +2 -1
- package/esm2015/icon/icon-generated.model.js +5 -1
- package/esm2015/icon/icon.component.js +7 -20
- package/esm2015/icon/icon.module.js +3 -2
- package/esm2015/icon/icon.service.js +32 -0
- package/esm2015/icon/public-api.js +2 -1
- package/esm2015/image/image.component.js +15 -9
- package/esm2015/link/link.component.js +391 -0
- package/esm2015/link/link.module.js +51 -0
- package/esm2015/link/link.pipes.js +15 -0
- package/esm2015/link/pepperi-addons-ngx-lib-link.js +6 -0
- package/esm2015/link/public-api.js +6 -0
- package/esm2015/list/list-total.component.js +1 -1
- package/esm2015/profile-data-views-list/profile-data-view/profile-data-view.component.js +6 -2
- package/esm2015/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.js +6 -6
- package/esm2015/profile-data-views-list/profile-data-views-list.component.js +5 -4
- package/esm2015/search/search.component.js +11 -4
- package/esm2015/select/select.component.js +3 -4
- package/fesm2015/pepperi-addons-ngx-lib-date.js +11 -4
- package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js +4 -2
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +14 -3
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.js +15 -5
- package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.js +38 -15
- package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.js +14 -8
- package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.js +460 -0
- package/fesm2015/pepperi-addons-ngx-lib-link.js.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-list.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js +14 -9
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.js +10 -3
- package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.js +2 -3
- package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.js +21 -3
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/files-uploader/files-uploader.component.d.ts +2 -0
- package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
- package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
- package/icon/icon-generated-all.model.d.ts +1 -0
- package/icon/icon-generated.model.d.ts +5 -1
- package/icon/icon.component.d.ts +3 -6
- package/icon/icon.service.d.ts +10 -0
- package/icon/pepperi-addons-ngx-lib-icon.metadata.json +1 -1
- package/icon/public-api.d.ts +1 -0
- package/image/image.component.d.ts +1 -0
- package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
- package/link/link.component.d.ts +136 -0
- package/link/link.module.d.ts +5 -0
- package/link/link.pipes.d.ts +4 -0
- package/link/package.json +14 -0
- package/link/pepperi-addons-ngx-lib-link.d.ts +5 -0
- package/link/pepperi-addons-ngx-lib-link.metadata.json +1 -0
- package/link/public-api.d.ts +2 -0
- package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
- package/package.json +1 -1
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.metadata.json +1 -1
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -0
- package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
- package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
- package/search/search.component.d.ts +1 -0
- package/src/assets/i18n/en.ngx-lib.json +2 -1
- package/src/core/style/abstracts/functions.scss +10 -10
- package/src/core/style/abstracts/mixins.scss +96 -96
- package/src/core/style/base/base.scss +37 -15
- package/src/core/style/base/typography.scss +8 -0
- package/theming.scss +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-link.js","sources":["../../../projects/ngx-lib/link/link.pipes.ts","../../../projects/ngx-lib/link/link.component.ts","../../../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 = /^((ht|f)tp(s?):\\/\\/)?([w]{3}[\\.])?/;\n const regex = /^((http(s?)|ftp)\\:\\/\\/)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)(.*)/;\n //console.log(`pipe - value - ${value} is valid url - ${regex.test(value)}`);\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, FormBuilder } 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 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 @Input() type: PepTextboxFieldType = 'text';\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 @Input() minValue = NaN;\n @Input() maxValue = NaN;\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 @Input() parentFieldKey: string = null;\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 public fb: FormBuilder,\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 = this.isNumberType()\n ? this.utilitiesService.formatNumber(value)\n : 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 this.parentFieldKey\n );\n }\n\n get displayValue(): string {\n let res = '';\n\n if (this.type == 'link') {\n res = this.formattedValue;\n } else {\n res = this.isInFocus ? this.value : this.formattedValue;\n }\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 minValue: this.minValue,\n maxValue: this.maxValue,\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.minValue =\n isNaN(this.minValue) && !isNaN(this.maxValue)\n ? 0\n : this.minValue;\n this.maxValue =\n isNaN(this.maxValue) && !isNaN(this.minValue)\n ? 99999\n : this.maxValue;\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.readonly = this.type === 'duration' ? true : this.readonly; // Hack until we develop Timer UI for editing Duration field\n\n this.updateFormFieldValue();\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n this.readonly = this.type === 'duration' ? true : this.readonly; // Hack until we develop Timer UI for editing Duration field\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 isNumberType(): boolean {\n return (\n this.type === 'percentage' ||\n this.type === 'currency' ||\n this.type === 'int' ||\n this.type === 'real'\n );\n }\n\n isValueValid(value: string): boolean {\n let res = false;\n\n if (this.isNumberType()) {\n if (value === '') {\n res = this.mandatory ? false : true;\n } else {\n const numberValue = this.utilitiesService.coerceNumberProperty(\n value\n );\n res =\n numberValue >= this.minValue &&\n numberValue <= this.maxValue;\n }\n } else {\n // TODO: Maybe need to check other types.\n res = true;\n }\n\n return res;\n }\n\n isDifferentValue(value: string): boolean {\n let res = false;\n\n if (this.isNumberType()) {\n if (this.value === '' || value === '') {\n res = true;\n } else {\n const currentValue = this.utilitiesService.coerceNumberProperty(\n this.value\n );\n const newValue = this.utilitiesService.coerceNumberProperty(\n value\n );\n\n res = currentValue !== newValue;\n }\n } else {\n res = true;\n }\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 && this.isDifferentValue(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 switch (this.type) {\n case 'email':\n window.open('mailto:' + currentValue, 'email');\n break;\n case 'phone':\n window.open('tel:' + currentValue, 'tel');\n break;\n case 'link':\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 break;\n default:\n break;\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","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\nexport {IsUrlPipe as ɵa} from './link.pipes';"],"names":[],"mappings":"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"}
|
|
@@ -2572,7 +2572,7 @@ PepListTotalComponent.decorators = [
|
|
|
2572
2572
|
{ type: Component, args: [{
|
|
2573
2573
|
selector: 'pep-list-total',
|
|
2574
2574
|
template: "<div class=\"total-items-container\">\n <ng-container *ngIf=\"isMapView; then mapTemplate; else notMapTemplate\"></ng-container>\n\n <ng-template #notMapTemplate>\n <ng-container *ngIf=\"totalRows >= 0\">\n <div class=\"body-{{sizeType}} total-items\"\n [innerHtml]=\"(totalRows === 1 ? 'LIST.TOTAL_RESULT' : 'LIST.TOTAL_RESULTS') | translate: { totalRows: totalRows }\">\n </div>\n </ng-container>\n <ng-container *ngIf=\"totalAmount > 0\"> {{ 'LIST.TOTAL_OF' | translate }} {{ totalAmount }} </ng-container>\n </ng-template>\n\n <ng-template #mapTemplate>\n <ng-container *ngIf=\"totalAmount >= 0\">\n </ng-container>\n <ng-container *ngIf=\"totalRows >= 0\">\n <div class=\"body-{{sizeType}} total-items\"\n [innerHtml]=\"(totalRows === 1 ? 'LIST.TOTAL_RESULT_OUT_OF_RESULT' : 'LIST.TOTAL_RESULTS_OUT_OF') | translate: { xRows: totalAmount, totalRows: totalRows }\">\n </div>\n </ng-container>\n </ng-template>\n</div>",
|
|
2575
|
-
styles: [".total-items-container{height:
|
|
2575
|
+
styles: [":host{height:100%}.total-items-container{height:inherit;display:flex;align-items:center}", ".total-items{color:rgba(26,26,26,.7);color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.7)}.total-items .number{color:#1a1a1a;color:hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%))}"]
|
|
2576
2576
|
},] },
|
|
2577
2577
|
{ type: Injectable }
|
|
2578
2578
|
];
|
|
@@ -25,11 +25,11 @@ class ProfileDataViewsCardComponent {
|
|
|
25
25
|
this.menuItems = [];
|
|
26
26
|
}
|
|
27
27
|
loadMenuItems() {
|
|
28
|
+
const removeKey = 'ACTIONS.REMOVE';
|
|
28
29
|
// Load translation before get the options in the children.
|
|
29
|
-
this.translate.get([
|
|
30
|
+
this.translate.get([removeKey]).subscribe((res) => {
|
|
30
31
|
this.menuItems = [
|
|
31
|
-
{ key: 'delete', text: this.translate.instant(res[
|
|
32
|
-
// { key: 'edit', text: this.translate.instant('ACTIONS.EDIT') },
|
|
32
|
+
{ key: 'delete', text: this.translate.instant(res[removeKey]) }
|
|
33
33
|
];
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -53,8 +53,8 @@ class ProfileDataViewsCardComponent {
|
|
|
53
53
|
ProfileDataViewsCardComponent.decorators = [
|
|
54
54
|
{ type: Component, args: [{
|
|
55
55
|
selector: 'pep-profile-data-views-card',
|
|
56
|
-
template: "<div class=\"profile-data-views-card-container\">\n <div class=\"card-top-bar pep-border-bottom\">\n <div *ngIf=\"title?.length > 0\" class=\"title ellipsis\"\n [title]=\"title + ' ' + (isDefault ? ('PROFILE_DATA_VIEWS_LIST.DEFAULT_PROFILE' | translate) : '')\">\n <span class=\"title-md\">{{title}} </span>\n <span *ngIf=\"isDefault\" class=\"color-dimmed\">{{('PROFILE_DATA_VIEWS_LIST.DEFAULT_PROFILE' |\n translate)}} \n </span>\n </div>\n <pep-menu sizeType=\"sm\" [items]=\"menuItems\" (menuItemClick)=\"onMenuItemClicked($event)\">\n </pep-menu>\n </div>\n\n <pep-profile-data-view *ngFor=\"let dataView of dataViews\" [dataViewId]=\"dataView.dataViewId\"\n [title]=\"configurationPerScreenSize ? dataView.viewType : ''\" [fields]=\"dataView.fields\"\n (editClick)=\"onDataViewEditClicked($event)\" (deleteClick)=\"onDataViewDeleteClicked($event)\">\n </pep-profile-data-view>\n</div>",
|
|
57
|
-
styles: [".profile-data-views-card-container{padding:1rem;padding:var(--pep-spacing-lg,1rem);border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);
|
|
56
|
+
template: "<div class=\"profile-data-views-card-container\">\n <div class=\"card-top-bar pep-border-bottom\">\n <div *ngIf=\"title?.length > 0\" class=\"title ellipsis\"\n [title]=\"title + ' ' + (isDefault ? ('PROFILE_DATA_VIEWS_LIST.DEFAULT_PROFILE' | translate) : '')\">\n <span class=\"title-md\">{{title}} </span>\n <span *ngIf=\"isDefault\" class=\"color-dimmed\">{{('PROFILE_DATA_VIEWS_LIST.DEFAULT_PROFILE' |\n translate)}} \n </span>\n </div>\n <pep-menu *ngIf=\"!configurationPerScreenSize && !isDefault\" sizeType=\"sm\" [items]=\"menuItems\" (menuItemClick)=\"onMenuItemClicked($event)\">\n </pep-menu>\n </div>\n\n <pep-profile-data-view *ngFor=\"let dataView of dataViews\" [dataViewId]=\"dataView.dataViewId\"\n [title]=\"configurationPerScreenSize ? dataView.viewType : ''\" [fields]=\"dataView.fields\" [canDelete]=\"!(isDefault && dataView.viewType === 'Tablet')\"\n (editClick)=\"onDataViewEditClicked($event)\" (deleteClick)=\"onDataViewDeleteClicked($event)\">\n </pep-profile-data-view>\n</div>",
|
|
57
|
+
styles: [".profile-data-views-card-container{padding:1rem;padding:var(--pep-spacing-lg,1rem);border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);width:320px;max-width:320px}.profile-data-views-card-container .card-top-bar{height:2.5rem;height:var(--pep-top-bar-field-height,2.5rem);margin-bottom:.75rem;margin-bottom:var(--pep-spacing-md,.75rem);display:flex;justify-content:space-between}.profile-data-views-card-container .card-top-bar .title{display:block;height:calc(2.5rem - .5rem);height:calc(var(--pep-top-bar-field-height, 2.5rem) - var(--pep-spacing-sm, .5rem));align-self:center}", ".profile-data-views-card-container{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%))}"]
|
|
58
58
|
},] }
|
|
59
59
|
];
|
|
60
60
|
ProfileDataViewsCardComponent.ctorParameters = () => [
|
|
@@ -72,10 +72,13 @@ ProfileDataViewsCardComponent.propDecorators = {
|
|
|
72
72
|
|
|
73
73
|
class ProfileDataViewComponent {
|
|
74
74
|
constructor() {
|
|
75
|
+
this.canDelete = true;
|
|
75
76
|
this.editClick = new EventEmitter();
|
|
76
77
|
this.deleteClick = new EventEmitter();
|
|
78
|
+
//
|
|
77
79
|
}
|
|
78
80
|
ngOnInit() {
|
|
81
|
+
//
|
|
79
82
|
}
|
|
80
83
|
onEditClicked(event) {
|
|
81
84
|
this.editClick.emit({
|
|
@@ -91,7 +94,7 @@ class ProfileDataViewComponent {
|
|
|
91
94
|
ProfileDataViewComponent.decorators = [
|
|
92
95
|
{ type: Component, args: [{
|
|
93
96
|
selector: 'pep-profile-data-view',
|
|
94
|
-
template: "<div *ngIf=\"title?.length > 0\" class=\"data-view-title-container\">\n <div class=\"title ellipsis\" [title]=\"title\">\n <span class=\"title-md\">{{title}}</span>\n </div>\n <pep-button class=\"delete-button\" sizeType=\"xs\" (buttonClick)=\"onDeleteClicked($event)\"\n [value]=\"'ACTIONS.
|
|
97
|
+
template: "<div *ngIf=\"title?.length > 0\" class=\"data-view-title-container\">\n <div class=\"title ellipsis\" [title]=\"title\">\n <span class=\"title-md\">{{title}}</span>\n </div>\n <pep-button *ngIf=\"canDelete\" class=\"delete-button\" sizeType=\"xs\" (buttonClick)=\"onDeleteClicked($event)\"\n [value]=\"'ACTIONS.REMOVE' | translate\">\n </pep-button>\n</div>\n<div class=\"data-view-container\">\n <div class=\"fields-container\">\n <span class=\"color-caution body-xs ellipsis data-view-field\" *ngIf=\"fields === null || fields.length === 0\">\n {{('PROFILE_DATA_VIEWS_LIST.NO_FIELDS_ASSIGNED' | translate)}}</span>\n <span class=\"color-dimmed body-xs ellipsis data-view-field\" *ngFor=\"let field of fields\" [title]=\"field\">{{field}}</span>\n </div>\n <pep-button class=\"edit-button\" iconName=\"system_edit\" sizeType=\"xs\" (buttonClick)=\"onEditClicked($event)\">\n </pep-button>\n</div>",
|
|
95
98
|
styles: [".data-view-title-container{display:flex;justify-content:space-between;margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem)}.data-view-title-container .title{display:block;max-width:240px;align-self:center}.data-view-container{padding:.5rem;padding:var(--pep-spacing-sm,.5rem);border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);position:relative}.data-view-container .fields-container{margin-bottom:.5rem;margin-bottom:var(--pep-spacing-sm,.5rem);-webkit-margin-end:2rem;margin-inline-end:2rem}.data-view-container .fields-container .data-view-field{display:block}.data-view-container .edit-button{position:absolute;right:.5rem;right:var(--pep-spacing-sm,.5rem);bottom:.5rem;bottom:var(--pep-spacing-sm,.5rem)}", ".data-view-container{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%));background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}"]
|
|
96
99
|
},] }
|
|
97
100
|
];
|
|
@@ -100,6 +103,7 @@ ProfileDataViewComponent.propDecorators = {
|
|
|
100
103
|
dataViewId: [{ type: Input }],
|
|
101
104
|
title: [{ type: Input }],
|
|
102
105
|
fields: [{ type: Input }],
|
|
106
|
+
canDelete: [{ type: Input }],
|
|
103
107
|
editClick: [{ type: Output }],
|
|
104
108
|
deleteClick: [{ type: Output }]
|
|
105
109
|
};
|
|
@@ -107,7 +111,7 @@ ProfileDataViewComponent.propDecorators = {
|
|
|
107
111
|
class ProfileDataViewsListComponent {
|
|
108
112
|
constructor(dialogService) {
|
|
109
113
|
this.dialogService = dialogService;
|
|
110
|
-
this.
|
|
114
|
+
this.defaultProfileId = '';
|
|
111
115
|
this._availableProfiles = [];
|
|
112
116
|
this._profileDataViewsList = [];
|
|
113
117
|
this.configurationPerScreenSize = false;
|
|
@@ -136,6 +140,7 @@ class ProfileDataViewsListComponent {
|
|
|
136
140
|
this.nonExistingProfiles = this.availableProfiles.filter(ap => this.profileDataViewsList.findIndex(pdv => pdv.profileId === ap.id) === -1);
|
|
137
141
|
}
|
|
138
142
|
ngOnInit() {
|
|
143
|
+
//
|
|
139
144
|
}
|
|
140
145
|
setSelectedNewProfileId(value) {
|
|
141
146
|
this.selectedNewProfileId = value;
|
|
@@ -170,7 +175,7 @@ class ProfileDataViewsListComponent {
|
|
|
170
175
|
ProfileDataViewsListComponent.decorators = [
|
|
171
176
|
{ type: Component, args: [{
|
|
172
177
|
selector: 'pep-profile-data-views-list',
|
|
173
|
-
template: "<div class=\"profile-data-views-list-container\">\n <pep-profile-data-views-card *ngFor=\"let profileDataViews of profileDataViewsList\"\n [configurationPerScreenSize]=\"configurationPerScreenSize\" [title]=\"profileDataViews.title\"\n [profileId]=\"profileDataViews.profileId\" [dataViews]=\"profileDataViews.dataViews\"\n [isDefault]=\"profileDataViews.profileId ===
|
|
178
|
+
template: "<div class=\"profile-data-views-list-container\">\n <pep-profile-data-views-card *ngFor=\"let profileDataViews of profileDataViewsList\"\n [configurationPerScreenSize]=\"configurationPerScreenSize\" [title]=\"profileDataViews.title\"\n [profileId]=\"profileDataViews.profileId\" [dataViews]=\"profileDataViews.dataViews\"\n [isDefault]=\"profileDataViews.profileId === defaultProfileId\"\n (dataViewEditClick)=\"onDataViewEditClicked($event)\" (dataViewDeleteClick)=\"onDataViewDeleteClicked($event)\">\n </pep-profile-data-views-card>\n\n <pep-button *ngIf=\"nonExistingProfiles?.length > 0\" [value]=\"'PROFILE_DATA_VIEWS_LIST.ADD_PROFILE' | translate\"\n iconName=\"number_plus\" sizeType=\"lg\" (buttonClick)=\"onAddProfileClicked($event)\"></pep-button>\n</div>\n\n<ng-template #selectProfileTemplate let-data>\n <pep-dialog [title]=\"'PROFILE_DATA_VIEWS_LIST.SELECT_PROFILE_DIALOG_TITLE' | translate\">\n <ng-container pep-dialog-content>\n <pep-select [label]=\"'PROFILE_DATA_VIEWS_LIST.SELECT_PROFILE' | translate\" [options]=\"data.options\"\n [emptyOption]=\"false\" (valueChange)=\"setSelectedNewProfileId($event)\">\n </pep-select>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button md weak\" (click)=\"closeDialog()\">\n {{ 'Cancel' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" (click)=\"saveNewProfile()\"\n [disabled]=\"selectedNewProfileId === ''\">\n {{ 'Save' | translate}}\n </button>\n </div>\n </ng-container>\n </pep-dialog>\n</ng-template>",
|
|
174
179
|
styles: [".profile-data-views-list-container{display:flex;align-items:flex-start;grid-gap:1rem;gap:1rem}"]
|
|
175
180
|
},] }
|
|
176
181
|
];
|
|
@@ -178,7 +183,7 @@ ProfileDataViewsListComponent.ctorParameters = () => [
|
|
|
178
183
|
{ type: PepDialogService }
|
|
179
184
|
];
|
|
180
185
|
ProfileDataViewsListComponent.propDecorators = {
|
|
181
|
-
|
|
186
|
+
defaultProfileId: [{ type: Input }],
|
|
182
187
|
availableProfiles: [{ type: Input }],
|
|
183
188
|
profileDataViewsList: [{ type: Input }],
|
|
184
189
|
configurationPerScreenSize: [{ type: Input }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-profile-data-views-list.js","sources":["../../../projects/ngx-lib/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-view/profile-data-view.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-views-list.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-views-list.module.ts","../../../projects/ngx-lib/profile-data-views-list/public-api.ts","../../../projects/ngx-lib/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseDataView, DataViewType } from '@pepperi-addons/papi-sdk';\nimport { IPepProfileDataView, IPepProfileDataViewClickEvent } from '../profile-data-views-list.model';\nimport { IPepMenuItemClickEvent, PepMenuItem } from '@pepperi-addons/ngx-lib/menu';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pep-profile-data-views-card',\n templateUrl: './profile-data-views-card.component.html',\n styleUrls: ['./profile-data-views-card.component.scss', './profile-data-views-card.component.theme.scss']\n})\nexport class ProfileDataViewsCardComponent implements OnInit {\n @Input() profileId: string = '';\n @Input() title: string = '';\n @Input() dataViews: IPepProfileDataView[] = [];\n @Input() configurationPerScreenSize: boolean = false;\n @Input() isDefault = false;\n\n @Output() dataViewEditClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() dataViewDeleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n menuItems: Array<PepMenuItem> = [];\n\n constructor(private translate: TranslateService) { }\n\n private loadMenuItems(): void {\n // Load translation before get the options in the children.\n this.translate.get(['ACTIONS.DELETE']).subscribe((res) => {\n this.menuItems = [\n { key: 'delete', text: this.translate.instant(res['ACTIONS.DELETE']) },\n // { key: 'edit', text: this.translate.instant('ACTIONS.EDIT') },\n ];\n });\n }\n\n ngOnInit() {\n this.loadMenuItems();\n }\n\n onMenuItemClicked(action: IPepMenuItemClickEvent) {\n if (this.dataViews.length === 1) {\n if (action.source.key === 'delete') {\n this.onDataViewDeleteClicked({ dataViewId: this.dataViews[0].dataViewId });\n }\n }\n\n }\n\n onDataViewEditClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewEditClick.emit(event);\n }\n\n onDataViewDeleteClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewDeleteClick.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { IPepProfileDataViewClickEvent } from '../profile-data-views-list.model';\n\n@Component({\n selector: 'pep-profile-data-view',\n templateUrl: './profile-data-view.component.html',\n styleUrls: ['./profile-data-view.component.scss', './profile-data-view.component.theme.scss']\n})\nexport class ProfileDataViewComponent implements OnInit {\n @Input() dataViewId: string;\n @Input() title: string;\n @Input() fields: string[];\n\n @Output() editClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() deleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n onEditClicked(event: IPepButtonClickEvent): void {\n this.editClick.emit({\n dataViewId: this.dataViewId\n });\n }\n\n onDeleteClicked(event: IPepButtonClickEvent): void {\n this.deleteClick.emit({\n dataViewId: this.dataViewId\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { BaseDataView, DataViewType } from '@pepperi-addons/papi-sdk';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepProfile, IPepProfileDataViewClickEvent, IPepProfileDataViewsCard } from './profile-data-views-list.model';\n\n@Component({\n selector: 'pep-profile-data-views-list',\n templateUrl: './profile-data-views-list.component.html',\n styleUrls: ['./profile-data-views-list.component.scss']\n})\nexport class ProfileDataViewsListComponent implements OnInit {\n @Input() defaultProfile: IPepProfileDataViewsCard = null;\n\n private _availableProfiles: Array<IPepProfile> = [];\n @Input()\n set availableProfiles(value: Array<IPepProfile>) {\n this._availableProfiles = value;\n this.setNonExistingProfiles();\n }\n get availableProfiles(): Array<IPepProfile> {\n return this._availableProfiles;\n }\n\n private _profileDataViewsList: Array<IPepProfileDataViewsCard> = [];\n @Input()\n set profileDataViewsList(value: Array<IPepProfileDataViewsCard>) {\n this._profileDataViewsList = value;\n this.setNonExistingProfiles();\n }\n get profileDataViewsList(): Array<IPepProfileDataViewsCard> {\n return this._profileDataViewsList;\n }\n\n @Input() configurationPerScreenSize: boolean = false;\n\n @Output() saveNewProfileClick: EventEmitter<string> = new EventEmitter<string>();\n @Output() dataViewEditClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() dataViewDeleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n @ViewChild('selectProfileTemplate', { read: TemplateRef }) selectProfileTemplate: TemplateRef<any>;\n\n dialogRef: MatDialogRef<any>;\n selectedNewProfileId = '';\n nonExistingProfiles: Array<IPepProfile> = [];\n\n // Set the profiles that not exist already in profileDataViewsList.\n private setNonExistingProfiles() {\n this.nonExistingProfiles = this.availableProfiles.filter(ap => this.profileDataViewsList.findIndex(pdv => pdv.profileId === ap.id) === -1);\n }\n\n constructor(\n private dialogService: PepDialogService\n ) { }\n\n ngOnInit() {\n }\n\n setSelectedNewProfileId(value: string) {\n this.selectedNewProfileId = value;\n }\n\n closeDialog(): void {\n this.dialogRef?.close();\n }\n\n saveNewProfile() {\n // Add the new profile\n this.saveNewProfileClick.emit(this.selectedNewProfileId);\n this.closeDialog();\n }\n\n onAddProfileClicked(event: IPepButtonClickEvent) {\n // Raise select profile dialog\n this.selectedNewProfileId = '';\n const options: Array<IPepOption> = [];\n options.push(...(this.nonExistingProfiles.map((opt) => {\n return {\n key: opt.id, value: opt.name\n };\n })));\n this.dialogRef = this.dialogService.openDialog(this.selectProfileTemplate, { options });\n }\n\n onDataViewEditClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewEditClick.emit(event);\n }\n\n onDataViewDeleteClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewDeleteClick.emit(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n\nimport { ProfileDataViewsListComponent } from './profile-data-views-list.component';\nimport { ProfileDataViewsCardComponent } from './profile-data-views-card/profile-data-views-card.component';\nimport { ProfileDataViewComponent } from './profile-data-view/profile-data-view.component';\n\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n pepIconSystemMenu,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n declarations: [\n ProfileDataViewsListComponent,\n ProfileDataViewsCardComponent,\n ProfileDataViewComponent\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatDialogModule,\n MatMenuModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepButtonModule,\n PepDialogModule,\n PepSelectModule,\n PepMenuModule,\n PepIconModule,\n PepTopBarModule,\n ],\n exports: [\n ProfileDataViewsListComponent,\n ProfileDataViewsCardComponent,\n ProfileDataViewComponent\n ],\n})\nexport class PepProfileDataViewsListModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemEdit,\n pepIconSystemMenu,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/profile-data-views-list\n */\nexport * from './profile-data-views-card/profile-data-views-card.component';\nexport * from './profile-data-view/profile-data-view.component';\n\nexport * from './profile-data-views-list.module';\nexport * from './profile-data-views-list.model';\nexport * from './profile-data-views-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-profile-data-views-list.js","sources":["../../../projects/ngx-lib/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-view/profile-data-view.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-views-list.component.ts","../../../projects/ngx-lib/profile-data-views-list/profile-data-views-list.module.ts","../../../projects/ngx-lib/profile-data-views-list/public-api.ts","../../../projects/ngx-lib/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseDataView, DataViewType } from '@pepperi-addons/papi-sdk';\nimport { IPepProfileDataView, IPepProfileDataViewClickEvent } from '../profile-data-views-list.model';\nimport { IPepMenuItemClickEvent, PepMenuItem } from '@pepperi-addons/ngx-lib/menu';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pep-profile-data-views-card',\n templateUrl: './profile-data-views-card.component.html',\n styleUrls: ['./profile-data-views-card.component.scss', './profile-data-views-card.component.theme.scss']\n})\nexport class ProfileDataViewsCardComponent implements OnInit {\n @Input() profileId = '';\n @Input() title = '';\n @Input() dataViews: IPepProfileDataView[] = [];\n @Input() configurationPerScreenSize = false;\n @Input() isDefault = false;\n\n @Output() dataViewEditClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() dataViewDeleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n menuItems: Array<PepMenuItem> = [];\n\n constructor(private translate: TranslateService) { }\n\n private loadMenuItems(): void {\n const removeKey = 'ACTIONS.REMOVE';\n // Load translation before get the options in the children.\n this.translate.get([removeKey]).subscribe((res) => {\n this.menuItems = [\n { key: 'delete', text: this.translate.instant(res[removeKey]) }\n ];\n });\n }\n\n ngOnInit() {\n this.loadMenuItems();\n }\n\n onMenuItemClicked(action: IPepMenuItemClickEvent) {\n if (this.dataViews.length === 1) {\n if (action.source.key === 'delete') {\n this.onDataViewDeleteClicked({ dataViewId: this.dataViews[0].dataViewId });\n }\n }\n\n }\n\n onDataViewEditClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewEditClick.emit(event);\n }\n\n onDataViewDeleteClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewDeleteClick.emit(event);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { IPepProfileDataViewClickEvent } from '../profile-data-views-list.model';\n\n@Component({\n selector: 'pep-profile-data-view',\n templateUrl: './profile-data-view.component.html',\n styleUrls: ['./profile-data-view.component.scss', './profile-data-view.component.theme.scss']\n})\nexport class ProfileDataViewComponent implements OnInit {\n @Input() dataViewId: string;\n @Input() title: string;\n @Input() fields: string[];\n @Input() canDelete = true;\n\n @Output() editClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() deleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n constructor() {\n //\n }\n\n ngOnInit() {\n //\n }\n\n onEditClicked(event: IPepButtonClickEvent): void {\n this.editClick.emit({\n dataViewId: this.dataViewId\n });\n }\n\n onDeleteClicked(event: IPepButtonClickEvent): void {\n this.deleteClick.emit({\n dataViewId: this.dataViewId\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { BaseDataView, DataViewType } from '@pepperi-addons/papi-sdk';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepProfile, IPepProfileDataViewClickEvent, IPepProfileDataViewsCard } from './profile-data-views-list.model';\n\n@Component({\n selector: 'pep-profile-data-views-list',\n templateUrl: './profile-data-views-list.component.html',\n styleUrls: ['./profile-data-views-list.component.scss']\n})\nexport class ProfileDataViewsListComponent implements OnInit {\n @Input() defaultProfileId = '';\n\n private _availableProfiles: Array<IPepProfile> = [];\n @Input()\n set availableProfiles(value: Array<IPepProfile>) {\n this._availableProfiles = value;\n this.setNonExistingProfiles();\n }\n get availableProfiles(): Array<IPepProfile> {\n return this._availableProfiles;\n }\n\n private _profileDataViewsList: Array<IPepProfileDataViewsCard> = [];\n @Input()\n set profileDataViewsList(value: Array<IPepProfileDataViewsCard>) {\n this._profileDataViewsList = value;\n this.setNonExistingProfiles();\n }\n get profileDataViewsList(): Array<IPepProfileDataViewsCard> {\n return this._profileDataViewsList;\n }\n\n @Input() configurationPerScreenSize = false;\n\n @Output() saveNewProfileClick: EventEmitter<string> = new EventEmitter<string>();\n @Output() dataViewEditClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n @Output() dataViewDeleteClick: EventEmitter<IPepProfileDataViewClickEvent> = new EventEmitter<IPepProfileDataViewClickEvent>();\n\n @ViewChild('selectProfileTemplate', { read: TemplateRef }) selectProfileTemplate: TemplateRef<any>;\n\n dialogRef: MatDialogRef<any>;\n selectedNewProfileId = '';\n nonExistingProfiles: Array<IPepProfile> = [];\n\n // Set the profiles that not exist already in profileDataViewsList.\n private setNonExistingProfiles() {\n this.nonExistingProfiles = this.availableProfiles.filter(ap => this.profileDataViewsList.findIndex(pdv => pdv.profileId === ap.id) === -1);\n }\n\n constructor(\n private dialogService: PepDialogService\n ) { }\n\n ngOnInit() {\n //\n }\n\n setSelectedNewProfileId(value: string) {\n this.selectedNewProfileId = value;\n }\n\n closeDialog(): void {\n this.dialogRef?.close();\n }\n\n saveNewProfile() {\n // Add the new profile\n this.saveNewProfileClick.emit(this.selectedNewProfileId);\n this.closeDialog();\n }\n\n onAddProfileClicked(event: IPepButtonClickEvent) {\n // Raise select profile dialog\n this.selectedNewProfileId = '';\n const options: Array<IPepOption> = [];\n options.push(...(this.nonExistingProfiles.map((opt) => {\n return {\n key: opt.id, value: opt.name\n };\n })));\n this.dialogRef = this.dialogService.openDialog(this.selectProfileTemplate, { options });\n }\n\n onDataViewEditClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewEditClick.emit(event);\n }\n\n onDataViewDeleteClicked(event: IPepProfileDataViewClickEvent): void {\n this.dataViewDeleteClick.emit(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n\nimport { ProfileDataViewsListComponent } from './profile-data-views-list.component';\nimport { ProfileDataViewsCardComponent } from './profile-data-views-card/profile-data-views-card.component';\nimport { ProfileDataViewComponent } from './profile-data-view/profile-data-view.component';\n\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n pepIconSystemMenu,\n} from '@pepperi-addons/ngx-lib/icon';\n\n@NgModule({\n declarations: [\n ProfileDataViewsListComponent,\n ProfileDataViewsCardComponent,\n ProfileDataViewComponent\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatDialogModule,\n MatMenuModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepButtonModule,\n PepDialogModule,\n PepSelectModule,\n PepMenuModule,\n PepIconModule,\n PepTopBarModule,\n ],\n exports: [\n ProfileDataViewsListComponent,\n ProfileDataViewsCardComponent,\n ProfileDataViewComponent\n ],\n})\nexport class PepProfileDataViewsListModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemEdit,\n pepIconSystemMenu,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/profile-data-views-list\n */\nexport * from './profile-data-views-card/profile-data-views-card.component';\nexport * from './profile-data-view/profile-data-view.component';\n\nexport * from './profile-data-views-list.module';\nexport * from './profile-data-views-list.model';\nexport * from './profile-data-views-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -163,9 +163,10 @@ class PepSearchComponent {
|
|
|
163
163
|
this.initSearch();
|
|
164
164
|
this.search.emit({ value: '' });
|
|
165
165
|
event.preventDefault();
|
|
166
|
+
/*
|
|
166
167
|
if (this.isFloating) {
|
|
167
168
|
this.showFloatingButton();
|
|
168
|
-
}
|
|
169
|
+
} */
|
|
169
170
|
}
|
|
170
171
|
onSearchClicked() {
|
|
171
172
|
if (this.isFloating) {
|
|
@@ -180,6 +181,12 @@ class PepSearchComponent {
|
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
}
|
|
184
|
+
onFocusout() {
|
|
185
|
+
var _a;
|
|
186
|
+
if (this.isFloating && ((_a = this.searchControl.value) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
187
|
+
this.showFloatingButton();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
183
190
|
onSearch(event) {
|
|
184
191
|
// Stop the event propagation - cause we don't want fire two events.
|
|
185
192
|
event.stopPropagation();
|
|
@@ -224,7 +231,7 @@ class PepSearchComponent {
|
|
|
224
231
|
PepSearchComponent.decorators = [
|
|
225
232
|
{ type: Component, args: [{
|
|
226
233
|
selector: 'pep-search',
|
|
227
|
-
template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrink !== 'never'; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n
|
|
234
|
+
template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrink !== 'never'; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" (focusout)=\"onFocusout()\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n<ng-template #triggerOnClickBlock>\n <mat-icon class=\"pep-text-icon pep-pointer\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\"\n (click)=\"onClearClicked($event)\">\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\"\n [ngClass]=\"{'hide-clear-icon' : state == 'close' || searchControl.value?.length === 0}\">|</span>\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n</ng-template>\n\n<ng-template #triggerOnKeydownBlock>\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\n <ng-template #clearBlock>\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #searchBlock>\n <mat-icon class=\"pep-text-icon\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </ng-template>\n</ng-template>",
|
|
228
235
|
animations: [
|
|
229
236
|
trigger('slideInOut', [
|
|
230
237
|
state('close', style({
|
|
@@ -251,7 +258,7 @@ PepSearchComponent.decorators = [
|
|
|
251
258
|
transition('fadeIn => fadeOut', animate(350, style({ opacity: 0, width: '1px' }))),
|
|
252
259
|
]),
|
|
253
260
|
],
|
|
254
|
-
styles: [".pep-search-container .pep-search-input .mat-form-field{display:inherit}.pep-search-container .pep-search-input .pep-v-separator{padding:.25rem 0;padding:var(--pep-spacing-xs,.25rem) 0;height:100%}.pep-search-container .pep-search-input .pep-text-icon.pep-pointer{cursor:pointer}.pep-search-container.pep-floating-search{display:inline-flex}.pep-search-container.pep-floating-search.pep-is-action-button-visable{width:calc(100% - (.5rem * 2 + 1.5rem));width:calc(100% - (var(--pep-spacing-sm, .5rem) * 2 + var(--pep-spacing-xl, 1.5rem)))}@media (max-width:599px){.pep-search-container ::ng-deep .mat-button-wrapper{max-width:3.125rem}}"]
|
|
261
|
+
styles: [".pep-search-container .pep-search-input .mat-form-field{display:inherit}.pep-search-container .pep-search-input .pep-v-separator{padding:.25rem 0;padding:var(--pep-spacing-xs,.25rem) 0;height:100%}.pep-search-container .pep-search-input .pep-text-icon.pep-pointer{cursor:pointer}.pep-search-container .pep-search-input .hide-clear-icon{visibility:hidden}.pep-search-container.pep-floating-search{display:inline-flex}.pep-search-container.pep-floating-search.pep-is-action-button-visable{width:calc(100% - (.5rem * 2 + 1.5rem));width:calc(100% - (var(--pep-spacing-sm, .5rem) * 2 + var(--pep-spacing-xl, 1.5rem)))}@media (max-width:599px){.pep-search-container ::ng-deep .mat-button-wrapper{max-width:3.125rem}}"]
|
|
255
262
|
},] },
|
|
256
263
|
{ type: Injectable }
|
|
257
264
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-search.js","sources":["../../../projects/ngx-lib/search/search.component.ts","../../../projects/ngx-lib/search/search.module.ts","../../../projects/ngx-lib/search/public-api.ts","../../../projects/ngx-lib/search/pepperi-addons-ngx-lib-search.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n Injectable,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { FormControl } from '@angular/forms';\nimport {\n PepLayoutService,\n PepScreenSizeType,\n PepSizeType,\n} from '@pepperi-addons/ngx-lib';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport {\n IPepSearchClickEvent,\n IPepSearchAutocompleteChangeEvent,\n IPepSearchStateChangeEvent,\n PepSearchType,\n PepSearchTriggerType,\n PepSearchShrinkType,\n} from './search.model';\n\n@Component({\n selector: 'pep-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n animations: [\n trigger('slideInOut', [\n state(\n 'close',\n style({\n width: '0',\n padding: '0',\n border: 'none',\n })\n ),\n state(\n 'open',\n style({\n width: 'inherit',\n })\n ),\n transition('close => open', animate('500ms ease-in-out')),\n transition('open => close', animate('500ms ease-in-out')),\n ]),\n trigger('fadeInOut', [\n state(\n 'fadeOut',\n style({\n opacity: 0,\n width: '1px',\n })\n ),\n state(\n 'fadeIn',\n style({\n opacity: 1,\n width: '100%',\n })\n ),\n transition(\n 'fadeOut => fadeIn',\n animate(300, style({ opacity: 1, width: '100%' }))\n ),\n transition(\n 'fadeIn => fadeOut',\n animate(350, style({ opacity: 0, width: '1px' }))\n ),\n ]),\n ],\n})\n@Injectable()\nexport class PepSearchComponent implements OnInit, OnDestroy {\n @Input() triggerOn: PepSearchTriggerType = 'click';\n @Input() autoCompleteTop = 20;\n private _autoCompleteValues = [];\n @Input()\n set autoCompleteValues(val: any[]) {\n this.type = 'auto-complete';\n this._autoCompleteValues = val;\n }\n get autoCompleteValues(): any[] {\n return this._autoCompleteValues;\n }\n\n // @Input() shrinkInSmallScreen = true;\n\n private _shrink: PepSearchShrinkType = 'small-screen';\n @Input()\n set shrink(value: PepSearchShrinkType) {\n this._shrink = value;\n this.setIsFloating()\n }\n get shrink(): PepSearchShrinkType {\n return this._shrink;\n }\n\n @Input()\n set value(val: string) {\n this.createSearchControlIfNotExist();\n this.searchControl.setValue(val);\n }\n get value(): string {\n return this.searchControl.value || '';\n }\n\n private _searchControl: FormControl = null;\n @Input()\n set searchControl(ctrl: FormControl) {\n this._searchControl = ctrl;\n }\n get searchControl(): FormControl {\n return this._searchControl;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n /**\n * The size of the button.\n *\n * @type {PepSizeType}\n * @memberof PepButtonComponent\n */\n @Input() sizeType: PepSizeType = 'md';\n\n @Output()\n search: EventEmitter<IPepSearchClickEvent> = new EventEmitter<IPepSearchClickEvent>();\n @Output()\n autocompleteChange: EventEmitter<IPepSearchAutocompleteChangeEvent> = new EventEmitter<IPepSearchAutocompleteChangeEvent>();\n @Output()\n stateChange: EventEmitter<IPepSearchStateChangeEvent> = new EventEmitter<IPepSearchStateChangeEvent>();\n\n @ViewChild('searchInput') searchInput: ElementRef;\n\n private readonly _destroyed = new Subject<void>();\n type: PepSearchType = 'regular';\n fadeState: 'fadeOut' | 'fadeIn';\n state: 'open' | 'close' = 'open';\n lastValue = null;\n showFloatSrcBtn = true;\n isRtl = false;\n isFloating = false;\n screenSize: PepScreenSizeType;\n\n constructor(\n private hostElement: ElementRef,\n private layoutService: PepLayoutService\n ) {\n //\n }\n\n private setIsFloating() {\n if (this.shrink === 'small-screen') {\n this.isFloating = this.screenSize > PepScreenSizeType.SM;\n } else if (this.shrink === 'always') {\n this.isFloating = true;\n } else { // never\n this.isFloating = false;\n }\n }\n\n ngOnInit(): void {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n this.screenSize = size;\n this.setIsFloating();\n\n // Just for the smoote animation\n if (this.isFloating) {\n this.showFloatSrcBtn = false;\n\n this.showFloatingButton();\n } else {\n this.fadeState = 'fadeIn';\n }\n });\n\n this.isRtl = this.layoutService.isRtl();\n this.createSearchControlIfNotExist();\n\n this.searchControl.valueChanges\n .pipe(debounceTime(1000), takeUntil(this._destroyed))\n .subscribe((newValue) => {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n if (\n newValue &&\n newValue.length > 2 &&\n newValue !== this.lastValue\n ) {\n this.autocompleteChange.emit({\n value: newValue,\n top: this.autoCompleteTop,\n });\n }\n } else if (this.type === 'regular') {\n if (this.triggerOn === 'keydown') {\n this.emitSearchClick();\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);\n }\n\n private createSearchControlIfNotExist(): void {\n if (!this.searchControl) {\n this.searchControl = new FormControl();\n }\n }\n\n private blur() {\n setTimeout(() => {\n this.searchInput.nativeElement.blur();\n }, 0);\n }\n\n private showFloatingButton() {\n this.fadeState = 'fadeOut';\n\n setTimeout(() => {\n this.stateChange.emit({ state: 'close' });\n this.showFloatSrcBtn = true;\n }, 500);\n\n // close the phone keyboard\n this.blur();\n }\n\n initSearch() {\n this.lastValue = null;\n this.searchControl.setValue('');\n }\n\n onClearClicked(event: any) {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.initSearch();\n this.search.emit({ value: '' });\n\n event.preventDefault();\n\n if (this.isFloating) {\n this.showFloatingButton();\n }\n }\n\n onSearchClicked() {\n if (this.isFloating) {\n this.triggerSearch();\n } else {\n if (this.state === 'open') {\n this.triggerSearch();\n } else {\n this.state = 'open';\n }\n }\n }\n\n onSearch(event: Event) {\n // Stop the event propagation - cause we don't want fire two events.\n event.stopPropagation();\n this.triggerSearch();\n }\n\n triggerSearch() {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.blur();\n this.emitSearchClick();\n }\n\n animateSearch() {\n if (this.state === 'open') {\n this.fadeState =\n this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';\n if (this.fadeState === 'fadeIn') {\n this.stateChange.emit({ state: 'open' });\n this.showFloatSrcBtn = false;\n this.searchInput.nativeElement.focus();\n }\n } else {\n this.fadeState = 'fadeIn';\n }\n }\n\n // do the emit just when done because of the line break when closing the search\n // component and showen all other components before\n animateSearchDone() {\n if (this.state !== 'open') {\n this.stateChange.emit({ state: 'close' });\n }\n }\n\n emitSearchClick() {\n const value = this.searchControl.value;\n\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.search.emit({ value });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemClose,\n pepIconSystemSearch,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepSearchComponent } from './search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n MatInputModule,\n ],\n exports: [PepSearchComponent],\n declarations: [PepSearchComponent],\n})\nexport class PepSearchModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemClose,\n pepIconSystemSearch,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/search\n */\nexport * from './search.module';\nexport * from './search.model';\nexport * from './search.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-search.js","sources":["../../../projects/ngx-lib/search/search.component.ts","../../../projects/ngx-lib/search/search.module.ts","../../../projects/ngx-lib/search/public-api.ts","../../../projects/ngx-lib/search/pepperi-addons-ngx-lib-search.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n Injectable,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { FormControl } from '@angular/forms';\nimport {\n PepLayoutService,\n PepScreenSizeType,\n PepSizeType,\n} from '@pepperi-addons/ngx-lib';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport {\n IPepSearchClickEvent,\n IPepSearchAutocompleteChangeEvent,\n IPepSearchStateChangeEvent,\n PepSearchType,\n PepSearchTriggerType,\n PepSearchShrinkType,\n} from './search.model';\n\n@Component({\n selector: 'pep-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n animations: [\n trigger('slideInOut', [\n state(\n 'close',\n style({\n width: '0',\n padding: '0',\n border: 'none',\n })\n ),\n state(\n 'open',\n style({\n width: 'inherit',\n })\n ),\n transition('close => open', animate('500ms ease-in-out')),\n transition('open => close', animate('500ms ease-in-out')),\n ]),\n trigger('fadeInOut', [\n state(\n 'fadeOut',\n style({\n opacity: 0,\n width: '1px',\n })\n ),\n state(\n 'fadeIn',\n style({\n opacity: 1,\n width: '100%',\n })\n ),\n transition(\n 'fadeOut => fadeIn',\n animate(300, style({ opacity: 1, width: '100%' }))\n ),\n transition(\n 'fadeIn => fadeOut',\n animate(350, style({ opacity: 0, width: '1px' }))\n ),\n ]),\n ],\n})\n@Injectable()\nexport class PepSearchComponent implements OnInit, OnDestroy {\n @Input() triggerOn: PepSearchTriggerType = 'click';\n @Input() autoCompleteTop = 20;\n private _autoCompleteValues = [];\n @Input()\n set autoCompleteValues(val: any[]) {\n this.type = 'auto-complete';\n this._autoCompleteValues = val;\n }\n get autoCompleteValues(): any[] {\n return this._autoCompleteValues;\n }\n\n // @Input() shrinkInSmallScreen = true;\n\n private _shrink: PepSearchShrinkType = 'small-screen';\n @Input()\n set shrink(value: PepSearchShrinkType) {\n this._shrink = value;\n this.setIsFloating()\n }\n get shrink(): PepSearchShrinkType {\n return this._shrink;\n }\n\n @Input()\n set value(val: string) {\n this.createSearchControlIfNotExist();\n this.searchControl.setValue(val);\n }\n get value(): string {\n return this.searchControl.value || '';\n }\n\n private _searchControl: FormControl = null;\n @Input()\n set searchControl(ctrl: FormControl) {\n this._searchControl = ctrl;\n }\n get searchControl(): FormControl {\n return this._searchControl;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n /**\n * The size of the button.\n *\n * @type {PepSizeType}\n * @memberof PepButtonComponent\n */\n @Input() sizeType: PepSizeType = 'md';\n\n @Output()\n search: EventEmitter<IPepSearchClickEvent> = new EventEmitter<IPepSearchClickEvent>();\n @Output()\n autocompleteChange: EventEmitter<IPepSearchAutocompleteChangeEvent> = new EventEmitter<IPepSearchAutocompleteChangeEvent>();\n @Output()\n stateChange: EventEmitter<IPepSearchStateChangeEvent> = new EventEmitter<IPepSearchStateChangeEvent>();\n\n @ViewChild('searchInput') searchInput: ElementRef;\n\n private readonly _destroyed = new Subject<void>();\n type: PepSearchType = 'regular';\n fadeState: 'fadeOut' | 'fadeIn';\n state: 'open' | 'close' = 'open';\n lastValue = null;\n showFloatSrcBtn = true;\n isRtl = false;\n isFloating = false;\n screenSize: PepScreenSizeType;\n\n constructor(\n private hostElement: ElementRef,\n private layoutService: PepLayoutService\n ) {\n //\n }\n\n private setIsFloating() {\n if (this.shrink === 'small-screen') {\n this.isFloating = this.screenSize > PepScreenSizeType.SM;\n } else if (this.shrink === 'always') {\n this.isFloating = true;\n } else { // never\n this.isFloating = false;\n }\n }\n\n ngOnInit(): void {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n this.screenSize = size;\n this.setIsFloating();\n\n // Just for the smoote animation\n if (this.isFloating) {\n this.showFloatSrcBtn = false;\n\n this.showFloatingButton();\n } else {\n this.fadeState = 'fadeIn';\n }\n });\n\n this.isRtl = this.layoutService.isRtl();\n this.createSearchControlIfNotExist();\n\n this.searchControl.valueChanges\n .pipe(debounceTime(1000), takeUntil(this._destroyed))\n .subscribe((newValue) => {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n if (\n newValue &&\n newValue.length > 2 &&\n newValue !== this.lastValue\n ) {\n this.autocompleteChange.emit({\n value: newValue,\n top: this.autoCompleteTop,\n });\n }\n } else if (this.type === 'regular') {\n if (this.triggerOn === 'keydown') {\n this.emitSearchClick();\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);\n }\n\n private createSearchControlIfNotExist(): void {\n if (!this.searchControl) {\n this.searchControl = new FormControl();\n }\n }\n\n private blur() {\n setTimeout(() => {\n this.searchInput.nativeElement.blur();\n }, 0);\n }\n\n private showFloatingButton() {\n this.fadeState = 'fadeOut';\n\n setTimeout(() => {\n this.stateChange.emit({ state: 'close' });\n this.showFloatSrcBtn = true;\n }, 500);\n\n // close the phone keyboard\n this.blur();\n }\n\n initSearch() {\n this.lastValue = null;\n this.searchControl.setValue('');\n }\n\n onClearClicked(event: any) {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.initSearch();\n this.search.emit({ value: '' });\n\n event.preventDefault();\n\n /*\n if (this.isFloating) {\n this.showFloatingButton();\n } */\n }\n\n onSearchClicked() {\n if (this.isFloating) {\n this.triggerSearch();\n } else {\n if (this.state === 'open') {\n this.triggerSearch();\n } else {\n this.state = 'open';\n }\n }\n }\n\n onFocusout() {\n if (this.isFloating && this.searchControl.value?.length === 0) {\n this.showFloatingButton();\n }\n }\n\n onSearch(event: Event) {\n // Stop the event propagation - cause we don't want fire two events.\n event.stopPropagation();\n this.triggerSearch();\n }\n\n triggerSearch() {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.blur();\n this.emitSearchClick();\n }\n\n animateSearch() {\n if (this.state === 'open') {\n this.fadeState =\n this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';\n if (this.fadeState === 'fadeIn') {\n this.stateChange.emit({ state: 'open' });\n this.showFloatSrcBtn = false;\n this.searchInput.nativeElement.focus();\n }\n } else {\n this.fadeState = 'fadeIn';\n }\n }\n\n // do the emit just when done because of the line break when closing the search\n // component and showen all other components before\n animateSearchDone() {\n if (this.state !== 'open') {\n this.stateChange.emit({ state: 'close' });\n }\n }\n\n emitSearchClick() {\n const value = this.searchControl.value;\n\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.search.emit({ value });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemClose,\n pepIconSystemSearch,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepSearchComponent } from './search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n MatInputModule,\n ],\n exports: [PepSearchComponent],\n declarations: [PepSearchComponent],\n})\nexport class PepSearchModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemClose,\n pepIconSystemSearch,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/search\n */\nexport * from './search.module';\nexport * from './search.model';\nexport * from './search.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -99,9 +99,8 @@ class PepSelectComponent {
|
|
|
99
99
|
}
|
|
100
100
|
else {
|
|
101
101
|
const selectedOpt = this.options.find((opt) => opt.key === value);
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
102
|
+
// fix DI-19371 - can't select none as option : avner
|
|
103
|
+
this.fieldFormattedValue = selectedOpt ? selectedOpt.value : '';
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
setDefaultForm() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-select.js","sources":["../../../projects/ngx-lib/select/select.component.ts","../../../projects/ngx-lib/select/select.module.ts","../../../projects/ngx-lib/select/public-api.ts","../../../projects/ngx-lib/select/pepperi-addons-ngx-lib-select.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatSelect } from '@angular/material/select';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepSelectFieldType,\n PepSelectField,\n IPepOption,\n} from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss', './select.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSelectComponent implements OnChanges, OnInit, OnDestroy {\n @Input() key = '';\n @Input() value = '';\n @Input() label = '';\n @Input() type: PepSelectFieldType = 'select';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 1;\n @Input() options: Array<IPepOption> = [];\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 controlType = 'select';\n\n // @Input() field: PepFieldBase;\n @Input() form: FormGroup = null;\n @Input() layoutType: PepLayoutType = 'form';\n @Input() parentFieldKey: string = null;\n @Input() isActive = false;\n @Input() showTitle = true;\n @Input() emptyOption = true;\n @Input() renderTitle = true;\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('select') select: MatSelect;\n\n standAlone = false;\n isInEditMode = false;\n isMulti = false;\n selectedValuesModel: string[];\n selectedValueModel: string;\n fieldFormattedValue = '';\n\n constructor(\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef\n ) { }\n\n private addOptionsIfNeeded(): void {\n if (this.isMulti) {\n // Go gor all selected and add to options if not exist\n // for (let i = 0; i < this.selectedValuesModel.length; i++) {\n for (const selectedValue of this.selectedValuesModel) {\n let valueNotExist = false;\n\n if (\n this.options &&\n !this.options.find((opt) => opt.key === selectedValue)\n ) {\n valueNotExist = true;\n }\n\n // Add it to options.\n if (valueNotExist) {\n this.options.push({\n key: selectedValue,\n value: selectedValue,\n });\n }\n }\n } else {\n if (\n this.value &&\n this.value !== '' &&\n this.options &&\n !this.options.find((opt) => opt.key === this.value)\n ) {\n this.options.push({ key: this.value, value: this.value });\n }\n }\n }\n\n private setFieldFormattedValue(value: any): void {\n if (this.isMulti) {\n if (this.selectedValuesModel.length > 0) {\n this.fieldFormattedValue = this.selectedValuesModel\n .map((value) => {\n return this.options.find((opt) => opt.key === value)\n ?.value;\n })\n .join(', ');\n } else {\n this.fieldFormattedValue = '';\n }\n\n // this.fieldFormattedValue = typeof value === 'string' ? value.replace(new RegExp(';', 'g'), ', ') : '';\n } else {\n const selectedOpt = this.options.find((opt) => opt.key === value);\n\n if (selectedOpt) {\n this.fieldFormattedValue = selectedOpt.value;\n }\n }\n }\n\n private setDefaultForm(): void {\n const pepField = new PepSelectField({\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 ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\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 ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n this.isMulti = this.type === 'multi';\n if (this.isMulti) {\n this.selectedValuesModel =\n this.value.length > 0 ? this.value.split(';') : [];\n } else {\n this.selectedValueModel = this.value;\n }\n\n this.addOptionsIfNeeded();\n this.setFieldFormattedValue(this.value);\n }\n\n ngOnDestroy(): void {\n //\n }\n\n selectionChange(event: any): void {\n if (!this.isMulti) {\n this.changeValue(this.selectedValueModel);\n }\n }\n\n openedChange(event: any): void {\n // Only on close.\n if (!event) {\n if (this.isMulti) {\n this.changeValue(this.selectedValuesModel.join(';'));\n }\n\n if (this.isInEditMode) {\n this.isInEditMode = false;\n }\n }\n }\n\n changeValue(value: any): void {\n this.setFieldFormattedValue(value);\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n // value,\n this.fieldFormattedValue,\n this.parentFieldKey\n );\n\n if (this.mandatory) {\n const fieldControl = this.form.controls[this.key];\n if (value) {\n fieldControl.setErrors(null);\n } else {\n fieldControl.setErrors({\n serverError: 'Required',\n });\n }\n this.formValidationChange.emit(this.form.valid);\n }\n\n this.valueChange.emit(value);\n }\n\n cardTemplateClicked(event: any): void {\n this.isInEditMode = true;\n\n setTimeout(() => {\n this.select.open();\n }, 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\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 { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepSelectComponent } from './select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n // Material modules\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatSelectModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n ],\n exports: [PepSelectComponent],\n declarations: [PepSelectComponent],\n})\nexport class PepSelectModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/select\n */\nexport * from './select.module';\nexport * from './select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-select.js","sources":["../../../projects/ngx-lib/select/select.component.ts","../../../projects/ngx-lib/select/select.module.ts","../../../projects/ngx-lib/select/public-api.ts","../../../projects/ngx-lib/select/pepperi-addons-ngx-lib-select.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatSelect } from '@angular/material/select';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepSelectFieldType,\n PepSelectField,\n IPepOption,\n} from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss', './select.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSelectComponent implements OnChanges, OnInit, OnDestroy {\n @Input() key = '';\n @Input() value = '';\n @Input() label = '';\n @Input() type: PepSelectFieldType = 'select';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 1;\n @Input() options: Array<IPepOption> = [];\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 controlType = 'select';\n\n // @Input() field: PepFieldBase;\n @Input() form: FormGroup = null;\n @Input() layoutType: PepLayoutType = 'form';\n @Input() parentFieldKey: string = null;\n @Input() isActive = false;\n @Input() showTitle = true;\n @Input() emptyOption = true;\n @Input() renderTitle = true;\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('select') select: MatSelect;\n\n standAlone = false;\n isInEditMode = false;\n isMulti = false;\n selectedValuesModel: string[];\n selectedValueModel: string;\n fieldFormattedValue = '';\n\n constructor(\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef\n ) { }\n\n private addOptionsIfNeeded(): void {\n if (this.isMulti) {\n // Go gor all selected and add to options if not exist\n // for (let i = 0; i < this.selectedValuesModel.length; i++) {\n for (const selectedValue of this.selectedValuesModel) {\n let valueNotExist = false;\n\n if (\n this.options &&\n !this.options.find((opt) => opt.key === selectedValue)\n ) {\n valueNotExist = true;\n }\n\n // Add it to options.\n if (valueNotExist) {\n this.options.push({\n key: selectedValue,\n value: selectedValue,\n });\n }\n }\n } else {\n if (\n this.value &&\n this.value !== '' &&\n this.options &&\n !this.options.find((opt) => opt.key === this.value)\n ) {\n this.options.push({ key: this.value, value: this.value });\n }\n }\n }\n\n private setFieldFormattedValue(value: any): void {\n if (this.isMulti) {\n if (this.selectedValuesModel.length > 0) {\n this.fieldFormattedValue = this.selectedValuesModel\n .map((value) => {\n return this.options.find((opt) => opt.key === value)\n ?.value;\n })\n .join(', ');\n } else {\n this.fieldFormattedValue = '';\n }\n\n // this.fieldFormattedValue = typeof value === 'string' ? value.replace(new RegExp(';', 'g'), ', ') : '';\n } else {\n const selectedOpt = this.options.find((opt) => opt.key === value);\n\n // fix DI-19371 - can't select none as option : avner\n this.fieldFormattedValue = selectedOpt ? selectedOpt.value : '';\n\n }\n }\n\n private setDefaultForm(): void {\n const pepField = new PepSelectField({\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 ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\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 ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n this.isMulti = this.type === 'multi';\n if (this.isMulti) {\n this.selectedValuesModel =\n this.value.length > 0 ? this.value.split(';') : [];\n } else {\n this.selectedValueModel = this.value;\n }\n\n this.addOptionsIfNeeded();\n this.setFieldFormattedValue(this.value);\n }\n\n ngOnDestroy(): void {\n //\n }\n\n selectionChange(event: any): void {\n if (!this.isMulti) {\n this.changeValue(this.selectedValueModel);\n }\n }\n\n openedChange(event: any): void {\n // Only on close.\n if (!event) {\n if (this.isMulti) {\n this.changeValue(this.selectedValuesModel.join(';'));\n }\n\n if (this.isInEditMode) {\n this.isInEditMode = false;\n }\n }\n }\n\n changeValue(value: any): void {\n this.setFieldFormattedValue(value);\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n // value,\n this.fieldFormattedValue,\n this.parentFieldKey\n );\n\n if (this.mandatory) {\n const fieldControl = this.form.controls[this.key];\n if (value) {\n fieldControl.setErrors(null);\n } else {\n fieldControl.setErrors({\n serverError: 'Required',\n });\n }\n this.formValidationChange.emit(this.form.valid);\n }\n\n this.valueChange.emit(value);\n }\n\n cardTemplateClicked(event: any): void {\n this.isInEditMode = true;\n\n setTimeout(() => {\n this.select.open();\n }, 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\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 { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepSelectComponent } from './select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n // Material modules\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatSelectModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n ],\n exports: [PepSelectComponent],\n declarations: [PepSelectComponent],\n})\nexport class PepSelectModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/select\n */\nexport * from './select.module';\nexport * from './select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -699,7 +699,9 @@ class PepUtilitiesService {
|
|
|
699
699
|
}
|
|
700
700
|
getSvgElementFromString(document, svgContent) {
|
|
701
701
|
const div = document.createElement('DIV');
|
|
702
|
-
div.
|
|
702
|
+
// div.className = 'svg-icon';
|
|
703
|
+
// Add class svg-icon
|
|
704
|
+
div.innerHTML = svgContent.replace('<svg ', '<svg class="svg-icon" ');
|
|
703
705
|
return (div.querySelector('svg') ||
|
|
704
706
|
document.createElementNS('http://www.w3.org/2000/svg', 'path'));
|
|
705
707
|
}
|
|
@@ -3134,6 +3136,22 @@ class PepTextboxField extends PepFieldBase {
|
|
|
3134
3136
|
return validators;
|
|
3135
3137
|
}
|
|
3136
3138
|
}
|
|
3139
|
+
class PepLinkField extends PepFieldBase {
|
|
3140
|
+
constructor(options = {}) {
|
|
3141
|
+
super(options);
|
|
3142
|
+
this.controlType = 'link';
|
|
3143
|
+
this.type = 'link';
|
|
3144
|
+
this.update(options);
|
|
3145
|
+
}
|
|
3146
|
+
update(options) {
|
|
3147
|
+
super.update(options);
|
|
3148
|
+
// DI-11292 - add changes for link field for the "Read Only display value" prop
|
|
3149
|
+
this.formattedValue =
|
|
3150
|
+
this.disabled && this.formattedValue && this.value
|
|
3151
|
+
? this.formattedValue
|
|
3152
|
+
: this.value;
|
|
3153
|
+
}
|
|
3154
|
+
}
|
|
3137
3155
|
class PepTextareaField extends PepFieldBase {
|
|
3138
3156
|
constructor(options = {}) {
|
|
3139
3157
|
super(options);
|
|
@@ -3186,12 +3204,12 @@ class PepQuantitySelectorField extends PepFieldBase {
|
|
|
3186
3204
|
this.controlType = 'qs';
|
|
3187
3205
|
this.notificationInfo = {};
|
|
3188
3206
|
this.updatedDataCount = 0;
|
|
3189
|
-
this.allowDecimal = options.allowDecimal || false;
|
|
3190
3207
|
this.type = options.type || 'qs';
|
|
3191
3208
|
this.update(options);
|
|
3192
3209
|
}
|
|
3193
3210
|
update(options) {
|
|
3194
3211
|
super.update(options);
|
|
3212
|
+
this.allowDecimal = options.allowDecimal || false;
|
|
3195
3213
|
this.notificationInfo = options.notificationInfo;
|
|
3196
3214
|
this.updatedDataCount += 1;
|
|
3197
3215
|
}
|
|
@@ -4242,5 +4260,5 @@ PepNgxLibModule.decorators = [
|
|
|
4242
4260
|
* Generated bundle index. Do not edit.
|
|
4243
4261
|
*/
|
|
4244
4262
|
|
|
4245
|
-
export { DEFAULT_HORIZONTAL_ALIGNMENT, DEFAULT_VERTICAL_ALIGNMENT, FIELD_TYPE, FieldLayout, KeyValuePair, ObjectSingleData, ObjectsData, ObjectsDataRow, ObjectsDataRowCell, PepAddonService, PepAddressField, PepAttachDirective, PepAttachmentField, PepButtonBlurDirective, PepButtonLoaderDirective, PepCapitalizePipe, PepCheckboxField, PepClipboardDirective, PepClipboardService, PepColorService, PepCookieService, PepCustomizationService, PepDataConvertorService, PepDataQaDirective, PepDateField, PepDateFormatterPipe, PepDateStringFormatterPipe, PepEncodePipe, PepEscapePipe, PepFieldBase, PepFieldData, PepFileService, PepGuid, PepHttpService, PepImageField, PepImagesField, PepIndicatorsField, PepInputAutoWidthDirective, PepInternalButtonField, PepInternalCaruselField, PepInternalMenuField, PepInternalPageField, PepJwtHelperService, PepLayoutService, PepLoaderService, PepMenuBlurDirective, PepNgxLibModule, PepPlaceholderField, PepPortalService, PepPreventMultiClickDirective, PepPrintDirective, PepQuantitySelectorField, PepReplaceLineBreaksPipe, PepRichHtmlTextareaField, PepRowData, PepRtlClassDirective, PepRtlDirectionDirective, PepSafeHtmlPipe, PepSafePipe, PepScreenSizeType, PepScrollToService, PepSelectField, PepSeparatorField, PepSessionService, PepSignatureField, PepSplitUppercasePipe, PepTargetDirective, PepTextareaField, PepTextboxField, PepToNumberPipe, PepTranslateService, PepUtilitiesService, PepValidatorService, PepWindowScrollingService, SmartSearchResponse, SmartSearchValues, Test, UIControl, UIControlField, X_ALIGNMENT_TYPE, Y_ALIGNMENT_TYPE, httpInterceptorProviders as ɵa, PepErrorInterceptor as ɵb, PepLoaderInterceptor as ɵc, PepProfilerInterceptor as ɵd };
|
|
4263
|
+
export { DEFAULT_HORIZONTAL_ALIGNMENT, DEFAULT_VERTICAL_ALIGNMENT, FIELD_TYPE, FieldLayout, KeyValuePair, ObjectSingleData, ObjectsData, ObjectsDataRow, ObjectsDataRowCell, PepAddonService, PepAddressField, PepAttachDirective, PepAttachmentField, PepButtonBlurDirective, PepButtonLoaderDirective, PepCapitalizePipe, PepCheckboxField, PepClipboardDirective, PepClipboardService, PepColorService, PepCookieService, PepCustomizationService, PepDataConvertorService, PepDataQaDirective, PepDateField, PepDateFormatterPipe, PepDateStringFormatterPipe, PepEncodePipe, PepEscapePipe, PepFieldBase, PepFieldData, PepFileService, PepGuid, PepHttpService, PepImageField, PepImagesField, PepIndicatorsField, PepInputAutoWidthDirective, PepInternalButtonField, PepInternalCaruselField, PepInternalMenuField, PepInternalPageField, PepJwtHelperService, PepLayoutService, PepLinkField, PepLoaderService, PepMenuBlurDirective, PepNgxLibModule, PepPlaceholderField, PepPortalService, PepPreventMultiClickDirective, PepPrintDirective, PepQuantitySelectorField, PepReplaceLineBreaksPipe, PepRichHtmlTextareaField, PepRowData, PepRtlClassDirective, PepRtlDirectionDirective, PepSafeHtmlPipe, PepSafePipe, PepScreenSizeType, PepScrollToService, PepSelectField, PepSeparatorField, PepSessionService, PepSignatureField, PepSplitUppercasePipe, PepTargetDirective, PepTextareaField, PepTextboxField, PepToNumberPipe, PepTranslateService, PepUtilitiesService, PepValidatorService, PepWindowScrollingService, SmartSearchResponse, SmartSearchValues, Test, UIControl, UIControlField, X_ALIGNMENT_TYPE, Y_ALIGNMENT_TYPE, httpInterceptorProviders as ɵa, PepErrorInterceptor as ɵb, PepLoaderInterceptor as ɵc, PepProfilerInterceptor as ɵd };
|
|
4246
4264
|
//# sourceMappingURL=pepperi-addons-ngx-lib.js.map
|