@pepperi-addons/ngx-lib 0.2.58-beta.1 → 0.2.59
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/attachment/attachment.component.d.ts +0 -1
- package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +0 -3
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-color.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-date.umd.js +0 -3
- package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +15 -18
- package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js +0 -8
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +173 -1432
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +2 -4
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib.umd.js +101 -85
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/color/color.component.d.ts +0 -1
- package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
- package/core/common/services/color.service.d.ts +3 -3
- package/core/customization/customization.service.d.ts +0 -1
- package/esm2015/attachment/attachment.component.js +2 -7
- package/esm2015/checkbox/checkbox.component.js +1 -4
- package/esm2015/color/color.component.js +2 -7
- package/esm2015/color/public-api.js +1 -2
- package/esm2015/core/common/services/color.service.js +101 -83
- package/esm2015/core/customization/customization.service.js +2 -4
- package/esm2015/date/date.component.js +1 -4
- package/esm2015/form/internal-button.component.js +17 -20
- package/esm2015/image/image.component.js +2 -7
- package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -7
- package/esm2015/quantity-selector/quantity-selector.component.js +2 -7
- package/esm2015/rich-html-textarea/rich-html-textarea.component.js +2 -7
- package/esm2015/select/select.component.js +2 -7
- package/esm2015/separator/separator.component.js +1 -9
- package/esm2015/signature/signature.component.js +2 -7
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -12
- package/esm2015/smart-filters/common/model/base-filter-component.js +10 -40
- package/esm2015/smart-filters/common/model/creator.js +2 -8
- package/esm2015/smart-filters/common/model/field.js +1 -12
- package/esm2015/smart-filters/common/model/operator.js +8 -8
- package/esm2015/smart-filters/common/model/type.js +1 -1
- package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -45
- package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +14 -53
- package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -25
- package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +1 -8
- package/esm2015/smart-filters/public-api.js +1 -2
- package/esm2015/smart-filters/smart-filters.module.js +2 -14
- package/esm2015/textarea/textarea.component.js +2 -7
- package/esm2015/textbox/textbox.component.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +0 -3
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.js +0 -3
- package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.js +15 -18
- package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.js +0 -8
- package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +128 -1293
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js +2 -4
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.js +101 -85
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/form/internal-button.component.d.ts +1 -0
- package/image/image.component.d.ts +0 -1
- package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +0 -1
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
- package/package.json +1 -1
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +0 -1
- package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +0 -1
- package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
- package/select/select.component.d.ts +0 -1
- package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
- package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
- package/signature/signature.component.d.ts +0 -1
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -5
- package/smart-filters/common/model/base-filter-component.d.ts +1 -10
- package/smart-filters/common/model/field.d.ts +0 -4
- package/smart-filters/common/model/operator.d.ts +0 -1
- package/smart-filters/common/model/type.d.ts +2 -2
- package/smart-filters/date-filter/date-filter.component.d.ts +1 -8
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +0 -6
- package/smart-filters/number-filter/number-filter.component.d.ts +0 -5
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +0 -7
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/public-api.d.ts +0 -1
- package/src/assets/i18n/en.ngx-lib.json +1 -2
- package/src/core/style/abstracts/mixins.scss +3 -3
- package/src/core/style/components/general.scss +2 -4
- package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
- package/textarea/textarea.component.d.ts +0 -1
- package/theming.scss +0 -4
- package/esm2015/smart-filters/filter-builder/common/model/filter.js +0 -2
- package/esm2015/smart-filters/filter-builder/common/model/legacy.js +0 -2
- package/esm2015/smart-filters/filter-builder/common/model/operator-unit.js +0 -42
- package/esm2015/smart-filters/filter-builder/common/model/operator.js +0 -207
- package/esm2015/smart-filters/filter-builder/common/model/type-map.js +0 -27
- package/esm2015/smart-filters/filter-builder/common/model/type.js +0 -6
- package/esm2015/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.js +0 -18
- package/esm2015/smart-filters/filter-builder/common/services/output-filter.service.js +0 -132
- package/esm2015/smart-filters/filter-builder/common/services/type-convertor.service.js +0 -44
- package/esm2015/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.js +0 -106
- package/esm2015/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.js +0 -50
- package/esm2015/smart-filters/filter-builder/filter-builder.component.js +0 -65
- package/esm2015/smart-filters/filter-builder/filter-builder.service.js +0 -261
- package/esm2015/smart-filters/index.js +0 -5
- package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -79
- package/smart-filters/filter-builder/common/model/filter.d.ts +0 -6
- package/smart-filters/filter-builder/common/model/legacy.d.ts +0 -23
- package/smart-filters/filter-builder/common/model/operator-unit.d.ts +0 -13
- package/smart-filters/filter-builder/common/model/operator.d.ts +0 -21
- package/smart-filters/filter-builder/common/model/type-map.d.ts +0 -12
- package/smart-filters/filter-builder/common/model/type.d.ts +0 -4
- package/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.d.ts +0 -5
- package/smart-filters/filter-builder/common/services/output-filter.service.d.ts +0 -52
- package/smart-filters/filter-builder/common/services/type-convertor.service.d.ts +0 -10
- package/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.d.ts +0 -32
- package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.d.ts +0 -22
- package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.theme.scss +0 -6
- package/smart-filters/filter-builder/filter-builder.component.d.ts +0 -22
- package/smart-filters/filter-builder/filter-builder.service.d.ts +0 -90
- package/smart-filters/index.d.ts +0 -1
- package/smart-filters/text-filter/text-filter.component.d.ts +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"PepTextareaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":26,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":27,"character":8},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":29,"character":8},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":30,"character":8},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":31,"character":8},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":32,"character":8},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":33,"character":8},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":34,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib","name":"PepNgxLibModule","line":36,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconModule","line":37,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/field-title","name":"PepFieldTitleModule","line":38,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/textbox-icon","name":"PepTextboxIconModule","line":39,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/dialog","name":"PepDialogModule","line":40,"character":8}],"exports":[{"__symbolic":"reference","name":"PepTextareaComponent"}],"declarations":[{"__symbolic":"reference","name":"PepTextareaComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconRegistry","line":46,"character":41}]}]}},"PepTextareaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"pep-textarea","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":21},"member":"OnPush"},"template":"<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\">\n <div class=\"pep-textarea-container\" [ngClass]=\"{ 'stand-alone': standAlone,\n 'right-alignment': xAlignment == 'right', 'one-row': rowSpan === 1,\n 'pep-textarea-card-container': layoutType === 'card'}\">\n <pep-field-title *ngIf=\"renderTitle && isFormView\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"disabled || readonly ? 0 : maxFieldCharacters\"\n [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n [ngClass]=\"{ 'pep-table-textarea': layoutType === 'table' }\">\n <textarea #input [hidden]=\"readonly\" [id]=\"key\" class=\"body-sm\" matInput (blur)=\"onBlur($event)\"\n title=\"{{ value }}\" [value]=\"value\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [formControlName]=\"key\" [style.height]=\"fieldHeight\">\n </textarea>\n <div *ngIf=\"readonly\" class=\"body-sm disable-text-div\" title=\"{{ value }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [innerHtml]=\"value | pepSafeHtml\" [style.height]=\"fieldHeight\">\n </div>\n <!-- <pep-textbox-icon *ngIf=\"xAlignment == 'right'\" matPrefix [value]=\"value\" [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon> -->\n <pep-textbox-icon matSuffix [value]=\"value\" [label]=\"label\" [type]=\"controlType\"\n [disabled]=\"disabled || readonly\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\"\n (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <mat-error>\n <span class=\"body-xs\"\n [title]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\n [innerText]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\n </mat-error>\n </mat-form-field>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-textarea-card-container card-flex-container\"\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\n [ngStyle]=\"{ color: textColor, '-webkit-line-clamp': rowSpan }\" [class]=\"'text-align-' + xAlignment\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\" [style.height]=\"fieldHeight\">\n <span *ngIf=\" showTitle && label !=''\" class=\" body-xs title no-shrink\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ value }}\" class=\"body-sm value wrap\">{{ value }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button self-start\"\n [ngClass]=\"{'self-end' : value && value !== ''}\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"value?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n class=\"pep-report-textarea\" [ngClass]=\"{ readonly: disabled }\">\n <input matInput [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{ readonly: disabled}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ value }}\" [formControlName]=\"key\" type=\"text\" [value]=\"value\" [disabled]=\"true\" />\n <pep-textbox-icon *ngIf=\"disabled && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"disabled && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n <ng-template #emptyBlock>\n <span> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n</ng-container>\n\n<ng-template #textAreaDialogTemplate>\n <pep-dialog class=\"dialog-textarea-container\" [title]=\"label\">\n <ng-container pep-dialog-content>\n <textarea #dialogTextarea [readonly]=\"disabled || readonly\">{{ value }}</textarea>\n </ng-container>\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n <ng-container *ngIf=\"disabled || readonly; then notEditableBlock; else editableBlock\">\n </ng-container>\n <ng-template #editableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CANCEL' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\n (click)=\"closeDialog(dialogTextarea.value)\">\n {{ 'ACTIONS.SAVE' | translate }}\n </button>\n </ng-template>\n <ng-template #notEditableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CLOSE' | translate }}\n </button>\n </ng-template>\n </div>\n </pep-dialog>\n</ng-template>","styles":[":host{height:inherit;display:grid}:host>*{align-self:center}.disable-text-div{display:inline-block;vertical-align:middle;margin:0;padding:.5rem 1.5rem .5rem 0;overflow-y:hidden}.right-alignment .disable-text-div{padding:.5rem 0 .5rem 1.5rem}.dialog-textarea-container textarea{border:none;resize:none;width:25rem;height:13rem}.dialog-textarea-container textarea:focus{outline:none}"]}]}],"members":{"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"mandatory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"maxFieldCharacters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"textColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"xAlignment":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"rowSpan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":5}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5}}]}],"isActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}}]}],"showTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":5}}]}],"renderTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"layoutType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":5}}]}],"valueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":5}}]}],"textAreaDialogTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":95,"character":5},"arguments":["textAreaDialogTemplate",{"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":95,"character":49}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/dialog","name":"PepDialogService","line":105,"character":31},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib","name":"PepCustomizationService","line":106,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":107,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":108,"character":25}]}],"setFieldHeight":[{"__symbolic":"method"}],"setDefaultForm":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"changeValue":[{"__symbolic":"method"}],"cardTemplateClicked":[{"__symbolic":"method"}],"openDialog":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}}},"origins":{"PepTextareaModule":"./textarea.module","PepTextareaComponent":"./textarea.component"},"importAs":"@pepperi-addons/ngx-lib/textarea"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"PepTextareaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":26,"character":8},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":27,"character":8},{"__symbolic":"reference","module":"@angular/material/core","name":"MatCommonModule","line":29,"character":8},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":30,"character":8},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":31,"character":8},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":32,"character":8},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":33,"character":8},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":34,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib","name":"PepNgxLibModule","line":36,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconModule","line":37,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/field-title","name":"PepFieldTitleModule","line":38,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/textbox-icon","name":"PepTextboxIconModule","line":39,"character":8},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/dialog","name":"PepDialogModule","line":40,"character":8}],"exports":[{"__symbolic":"reference","name":"PepTextareaComponent"}],"declarations":[{"__symbolic":"reference","name":"PepTextareaComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/icon","name":"PepIconRegistry","line":46,"character":41}]}]}},"PepTextareaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"pep-textarea","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":29,"character":21},"member":"OnPush"},"template":"<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\">\n <div class=\"pep-textarea-container\" [ngClass]=\"{ 'stand-alone': standAlone,\n 'right-alignment': xAlignment == 'right', 'one-row': rowSpan === 1,\n 'pep-textarea-card-container': layoutType === 'card'}\">\n <pep-field-title *ngIf=\"isFormView\" [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\"\n [maxFieldCharacters]=\"disabled || readonly ? 0 : maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n [ngClass]=\"{ 'pep-table-textarea': layoutType === 'table' }\">\n <textarea #input [hidden]=\"readonly\" [id]=\"key\" class=\"body-sm\" matInput (blur)=\"onBlur($event)\"\n title=\"{{ value }}\" [value]=\"value\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [formControlName]=\"key\" [style.height]=\"fieldHeight\">\n </textarea>\n <div *ngIf=\"readonly\" class=\"body-sm disable-text-div\" title=\"{{ value }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [innerHtml]=\"value | pepSafeHtml\" [style.height]=\"fieldHeight\">\n </div>\n <!-- <pep-textbox-icon *ngIf=\"xAlignment == 'right'\" matPrefix [value]=\"value\" [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon> -->\n <pep-textbox-icon matSuffix [value]=\"value\" [label]=\"label\" [type]=\"controlType\"\n [disabled]=\"disabled || readonly\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\"\n (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <mat-error>\n <span class=\"body-xs\"\n [title]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\n [innerText]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\n </mat-error>\n </mat-form-field>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-textarea-card-container card-flex-container\"\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\n [ngStyle]=\"{ color: textColor, '-webkit-line-clamp': rowSpan }\" [class]=\"'text-align-' + xAlignment\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\" [style.height]=\"fieldHeight\">\n <span *ngIf=\" showTitle && label !=''\" class=\" body-xs title no-shrink\" title=\"{{ label }}\">{{ label\n }} </span>\n <span [id]=\"key\" title=\"{{ value }}\" class=\"body-sm value wrap\">{{ value }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button self-start\"\n [ngClass]=\"{'self-end' : value && value !== ''}\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"value?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n class=\"pep-report-textarea\" [ngClass]=\"{ readonly: disabled }\">\n <input matInput [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{ readonly: disabled}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ value }}\" [formControlName]=\"key\" type=\"text\" [value]=\"value\" [disabled]=\"true\" />\n <pep-textbox-icon *ngIf=\"disabled && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"disabled && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n <ng-template #emptyBlock>\n <span> </span>\n </ng-template>\n </ng-template>\n </ng-container>\n</ng-container>\n\n<ng-template #textAreaDialogTemplate>\n <pep-dialog class=\"dialog-textarea-container\" [title]=\"label\">\n <ng-container pep-dialog-content>\n <textarea #dialogTextarea [readonly]=\"disabled || readonly\">{{ value }}</textarea>\n </ng-container>\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n <ng-container *ngIf=\"disabled || readonly; then notEditableBlock; else editableBlock\">\n </ng-container>\n <ng-template #editableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CANCEL' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\n (click)=\"closeDialog(dialogTextarea.value)\">\n {{ 'ACTIONS.SAVE' | translate }}\n </button>\n </ng-template>\n <ng-template #notEditableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CLOSE' | translate }}\n </button>\n </ng-template>\n </div>\n </pep-dialog>\n</ng-template>","styles":[":host{height:inherit;display:grid}:host>*{align-self:center}.disable-text-div{display:inline-block;vertical-align:middle;margin:0;padding:.5rem 1.5rem .5rem 0;overflow-y:hidden}.right-alignment .disable-text-div{padding:.5rem 0 .5rem 1.5rem}.dialog-textarea-container textarea{border:none;resize:none;width:25rem;height:13rem}.dialog-textarea-container textarea:focus{outline:none}"]}]}],"members":{"key":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"mandatory":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"readonly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"maxFieldCharacters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"textColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"xAlignment":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"rowSpan":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":5}}]}],"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5}}]}],"isActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":77,"character":5}}]}],"showTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":5}}]}],"layoutType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":5}}]}],"valueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":90,"character":5}}]}],"textAreaDialogTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":94,"character":5},"arguments":["textAreaDialogTemplate",{"read":{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","line":94,"character":49}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib/dialog","name":"PepDialogService","line":104,"character":31},{"__symbolic":"reference","module":"@pepperi-addons/ngx-lib","name":"PepCustomizationService","line":105,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":106,"character":26},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":107,"character":25}]}],"setFieldHeight":[{"__symbolic":"method"}],"setDefaultForm":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"changeValue":[{"__symbolic":"method"}],"cardTemplateClicked":[{"__symbolic":"method"}],"openDialog":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}}},"origins":{"PepTextareaModule":"./textarea.module","PepTextareaComponent":"./textarea.component"},"importAs":"@pepperi-addons/ngx-lib/textarea"}
|
|
@@ -27,7 +27,6 @@ export declare class PepTextareaComponent implements OnChanges, OnInit, OnDestro
|
|
|
27
27
|
form: FormGroup;
|
|
28
28
|
isActive: boolean;
|
|
29
29
|
showTitle: boolean;
|
|
30
|
-
renderTitle: boolean;
|
|
31
30
|
private _layoutType;
|
|
32
31
|
set layoutType(value: PepLayoutType);
|
|
33
32
|
get layoutType(): PepLayoutType;
|
package/theming.scss
CHANGED
|
@@ -88,8 +88,6 @@ $pep-typography: mat.define-typography-config(
|
|
|
88
88
|
@import './list/list-views.component.theme';
|
|
89
89
|
@import './list/list.component.theme';
|
|
90
90
|
|
|
91
|
-
@import './smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.theme';
|
|
92
|
-
|
|
93
91
|
// Use this import in a real project instead
|
|
94
92
|
// @import '~@mat-datetimepicker/core/datetimepicker/datetimepicker-theme.scss';
|
|
95
93
|
@import './src/core/style/themes/default-theme.scss';
|
|
@@ -184,8 +182,6 @@ $material-theme-for-pep: $material-default-theme;
|
|
|
184
182
|
@include pep-list-total-component-theme($pepperi-theme);
|
|
185
183
|
@include pep-list-views-component-theme($pepperi-theme);
|
|
186
184
|
@include pep-list-component-theme($pepperi-theme);
|
|
187
|
-
|
|
188
|
-
@include pep-filter-builder-section-theme($pepperi-theme);
|
|
189
185
|
}
|
|
190
186
|
}
|
|
191
187
|
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2ZpbHRlci1idWlsZGVyL2NvbW1vbi9tb2RlbC9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpbHRlckJ1aWxkZXJWYWx1ZXMge1xuICAgIGZpcnN0OiBhbnk7XG4gICAgc2Vjb25kOiBhbnk7XG4gICAgb3BlcmF0aW9uVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0O1xufVxuXG5cblxuXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2ZpbHRlci1idWlsZGVyL2NvbW1vbi9tb2RlbC9sZWdhY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuL3R5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBGaWVsZCB7XG4gICAgRmllbGRJRDogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogc3RyaW5nO1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgT3B0aW9uYWxWYWx1ZXM6IElQZXBGaWVsZE9wdGlvbmFsVmFsdWVzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpZWxkT3B0aW9uYWxWYWx1ZXMge1xuICAgIEtleTogc3RyaW5nO1xuICAgIFZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEpTT05TZWN0aW9uIHtcbiAgICBDb21wbGV4SWQ6IHN0cmluZztcbiAgICBPcGVyYXRpb246IFBlcE9wZXJhdG9yVHlwZXM7XG4gICAgTGVmdE5vZGU/OiBJUGVwSlNPTlNlY3Rpb24gfCBJUGVwSlNPTkl0ZW07XG4gICAgUmlnaHROb2RlPzogSVBlcEpTT05TZWN0aW9uIHwgSVBlcEpTT05JdGVtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBKU09OSXRlbSB7XG4gICAgRXhwcmVzc2lvbklkOiBzdHJpbmc7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIE9wZXJhdGlvbjogc3RyaW5nO1xuICAgIFZhbHVlczogYW55W107XG59XG5cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { PepSmartFilterOperatorUnits } from '../../../common/model/operator';
|
|
2
|
-
const Days = {
|
|
3
|
-
legacy: 'Days',
|
|
4
|
-
smartFilter: PepSmartFilterOperatorUnits.Days
|
|
5
|
-
};
|
|
6
|
-
const Weeks = {
|
|
7
|
-
legacy: 'Weeks',
|
|
8
|
-
smartFilter: PepSmartFilterOperatorUnits.Weeks
|
|
9
|
-
};
|
|
10
|
-
const Months = {
|
|
11
|
-
legacy: 'Months',
|
|
12
|
-
smartFilter: PepSmartFilterOperatorUnits.Months
|
|
13
|
-
};
|
|
14
|
-
const Years = {
|
|
15
|
-
legacy: 'Years',
|
|
16
|
-
smartFilter: PepSmartFilterOperatorUnits.Years
|
|
17
|
-
};
|
|
18
|
-
const PepFilterBuilderOperationUnit = [
|
|
19
|
-
Days,
|
|
20
|
-
Weeks,
|
|
21
|
-
Months,
|
|
22
|
-
Years,
|
|
23
|
-
];
|
|
24
|
-
/**
|
|
25
|
-
* gets a smart filter operation unit item
|
|
26
|
-
* @param operationUnit legacy operation unit
|
|
27
|
-
* @returns smart filter operation unit item
|
|
28
|
-
*/
|
|
29
|
-
export function getSmartBuilderOperationUnit(operationUnit) {
|
|
30
|
-
const smartFilterOperationUnit = PepFilterBuilderOperationUnit.find(unit => unit.legacy === operationUnit);
|
|
31
|
-
return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* gets a legacy operation unit value
|
|
35
|
-
* @param operationUnit smart filter operation unit item
|
|
36
|
-
* @returns legacy operation unit value
|
|
37
|
-
*/
|
|
38
|
-
export function getLegacyOperationUnit(operationUnit) {
|
|
39
|
-
const legacyOperationUnit = PepFilterBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);
|
|
40
|
-
return legacyOperationUnit ? legacyOperationUnit.legacy : null;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3ItdW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9maWx0ZXItYnVpbGRlci9jb21tb24vbW9kZWwvb3BlcmF0b3ItdW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQStCLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPMUcsTUFBTSxJQUFJLEdBQW1DO0lBQ3pDLE1BQU0sRUFBRSxNQUFNO0lBQ2QsV0FBVyxFQUFFLDJCQUEyQixDQUFDLElBQUk7Q0FDaEQsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFtQztJQUMxQyxNQUFNLEVBQUUsT0FBTztJQUNmLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLO0NBQ2pELENBQUM7QUFFRixNQUFNLE1BQU0sR0FBbUM7SUFDM0MsTUFBTSxFQUFFLFFBQVE7SUFDaEIsV0FBVyxFQUFFLDJCQUEyQixDQUFDLE1BQU07Q0FDbEQsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFtQztJQUMxQyxNQUFNLEVBQUUsT0FBTztJQUNmLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLO0NBQ2pELENBQUM7QUFFRixNQUFNLDZCQUE2QixHQUFHO0lBQ2xDLElBQUk7SUFDSixLQUFLO0lBQ0wsTUFBTTtJQUNOLEtBQUs7Q0FDUixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxhQUFxQjtJQUM5RCxNQUFNLHdCQUF3QixHQUFtQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxDQUFDO0lBQzNJLE9BQU8sd0JBQXdCLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLGFBQTBDO0lBQzdFLE1BQU0sbUJBQW1CLEdBQW1DLDZCQUE2QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssYUFBYSxDQUFDLENBQUM7SUFDM0ksT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0LCBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vbW9kZWwvb3BlcmF0b3InO1xuXG5pbnRlcmZhY2UgSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRpb25Vbml0IHtcbiAgICBsZWdhY3k6IHN0cmluZyxcbiAgICBzbWFydEZpbHRlcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0LFxufVxuXG5jb25zdCBEYXlzOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdGlvblVuaXQgPSB7XG4gICAgbGVnYWN5OiAnRGF5cycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cy5EYXlzXG59O1xuXG5jb25zdCBXZWVrczogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRpb25Vbml0ID0ge1xuICAgIGxlZ2FjeTogJ1dlZWtzJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzLldlZWtzXG59O1xuXG5jb25zdCBNb250aHM6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0aW9uVW5pdCA9IHtcbiAgICBsZWdhY3k6ICdNb250aHMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMuTW9udGhzXG59O1xuXG5jb25zdCBZZWFyczogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRpb25Vbml0ID0ge1xuICAgIGxlZ2FjeTogJ1llYXJzJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzLlllYXJzXG59O1xuXG5jb25zdCBQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0aW9uVW5pdCA9IFtcbiAgICBEYXlzLFxuICAgIFdlZWtzLFxuICAgIE1vbnRocyxcbiAgICBZZWFycyxcbl07XG5cbi8qKlxuICogZ2V0cyBhIHNtYXJ0IGZpbHRlciBvcGVyYXRpb24gdW5pdCBpdGVtXG4gKiBAcGFyYW0gb3BlcmF0aW9uVW5pdCBsZWdhY3kgb3BlcmF0aW9uIHVuaXRcbiAqIEByZXR1cm5zIHNtYXJ0IGZpbHRlciBvcGVyYXRpb24gdW5pdCBpdGVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTbWFydEJ1aWxkZXJPcGVyYXRpb25Vbml0KG9wZXJhdGlvblVuaXQ6IHN0cmluZyk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB8IG51bGwge1xuICAgIGNvbnN0IHNtYXJ0RmlsdGVyT3BlcmF0aW9uVW5pdDogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRpb25Vbml0ID0gUGVwRmlsdGVyQnVpbGRlck9wZXJhdGlvblVuaXQuZmluZCh1bml0ID0+IHVuaXQubGVnYWN5ID09PSBvcGVyYXRpb25Vbml0KTtcbiAgICByZXR1cm4gc21hcnRGaWx0ZXJPcGVyYXRpb25Vbml0ID8gc21hcnRGaWx0ZXJPcGVyYXRpb25Vbml0LnNtYXJ0RmlsdGVyIDogbnVsbDtcbn1cblxuLyoqXG4gKiBnZXRzIGEgbGVnYWN5IG9wZXJhdGlvbiB1bml0IHZhbHVlXG4gKiBAcGFyYW0gb3BlcmF0aW9uVW5pdCBzbWFydCBmaWx0ZXIgb3BlcmF0aW9uIHVuaXQgaXRlbVxuICogQHJldHVybnMgbGVnYWN5IG9wZXJhdGlvbiB1bml0IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWdhY3lPcGVyYXRpb25Vbml0KG9wZXJhdGlvblVuaXQ6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGxlZ2FjeU9wZXJhdGlvblVuaXQ6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0aW9uVW5pdCA9IFBlcEZpbHRlckJ1aWxkZXJPcGVyYXRpb25Vbml0LmZpbmQodW5pdCA9PiB1bml0LnNtYXJ0RmlsdGVyID09PSBvcGVyYXRpb25Vbml0KTtcbiAgICByZXR1cm4gbGVnYWN5T3BlcmF0aW9uVW5pdCA/IGxlZ2FjeU9wZXJhdGlvblVuaXQubGVnYWN5IDogbnVsbDtcbn1cbiJdfQ==
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { PepSmartFilterOperators } from '../../../common/model/operator';
|
|
2
|
-
const Equals = {
|
|
3
|
-
legacy: 'IsEqual',
|
|
4
|
-
smartFilter: PepSmartFilterOperators.Equals,
|
|
5
|
-
type: ['boolean', 'int', 'text']
|
|
6
|
-
};
|
|
7
|
-
const NotEqual = {
|
|
8
|
-
legacy: 'IsNotEqual',
|
|
9
|
-
smartFilter: PepSmartFilterOperators.NotEqual,
|
|
10
|
-
type: null
|
|
11
|
-
};
|
|
12
|
-
const LessThan = {
|
|
13
|
-
legacy: '<',
|
|
14
|
-
smartFilter: PepSmartFilterOperators.LessThan,
|
|
15
|
-
type: null
|
|
16
|
-
};
|
|
17
|
-
const GreaterThan = {
|
|
18
|
-
legacy: '>',
|
|
19
|
-
smartFilter: PepSmartFilterOperators.GreaterThan,
|
|
20
|
-
type: null
|
|
21
|
-
};
|
|
22
|
-
/*
|
|
23
|
-
const GreaterThanOrEquals: IPepFilterBuilderOperator = {
|
|
24
|
-
legacy: {
|
|
25
|
-
operator: '>=',
|
|
26
|
-
type: 'Integer'
|
|
27
|
-
},
|
|
28
|
-
smartFilter: {
|
|
29
|
-
item: PepSmartFilterOperators.GreaterThanOrEquals,
|
|
30
|
-
type: 'int'
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const LessThanOrEquals: IPepFilterBuilderOperator = {
|
|
35
|
-
legacy: {
|
|
36
|
-
operator: '<=',
|
|
37
|
-
type: 'Integer'
|
|
38
|
-
},
|
|
39
|
-
smartFilter: {
|
|
40
|
-
item: PepSmartFilterOperators.LessThanOrEquals,
|
|
41
|
-
type: 'int',
|
|
42
|
-
type: 'Integer'
|
|
43
|
-
}
|
|
44
|
-
}; */
|
|
45
|
-
const NumberRange = {
|
|
46
|
-
legacy: 'Between',
|
|
47
|
-
smartFilter: PepSmartFilterOperators.NumberRange,
|
|
48
|
-
type: ['int']
|
|
49
|
-
};
|
|
50
|
-
const Contains = {
|
|
51
|
-
legacy: 'Contains',
|
|
52
|
-
smartFilter: PepSmartFilterOperators.Contains,
|
|
53
|
-
type: null
|
|
54
|
-
};
|
|
55
|
-
/*
|
|
56
|
-
const BeginsWith: IPepFilterBuilderOperator = {
|
|
57
|
-
legacy: {
|
|
58
|
-
operator: 'BeginsWith',
|
|
59
|
-
type: 'String'
|
|
60
|
-
},
|
|
61
|
-
smartFilter: {
|
|
62
|
-
item: PepSmartFilterOperators.BeginsWith,
|
|
63
|
-
type: 'text'
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const EndsWith: IPepFilterBuilderOperator = {
|
|
68
|
-
legacy: {
|
|
69
|
-
operator: 'EndsWith',
|
|
70
|
-
type: 'String'
|
|
71
|
-
},
|
|
72
|
-
smartFilter: {
|
|
73
|
-
item: PepSmartFilterOperators.EndsWith,
|
|
74
|
-
type: 'text'
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const Before: IPepFilterBuilderOperator = {
|
|
79
|
-
legacy: {
|
|
80
|
-
operator: 'Before',
|
|
81
|
-
type: 'Date'
|
|
82
|
-
},
|
|
83
|
-
smartFilter: {
|
|
84
|
-
item: PepSmartFilterOperators.Before,
|
|
85
|
-
type: 'date'
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
const After: IPepFilterBuilderOperator = {
|
|
90
|
-
legacy: {
|
|
91
|
-
operator: 'After',
|
|
92
|
-
type: 'Date'
|
|
93
|
-
},
|
|
94
|
-
smartFilter: {
|
|
95
|
-
item: PepSmartFilterOperators.After,
|
|
96
|
-
type: 'date'
|
|
97
|
-
}
|
|
98
|
-
}; */
|
|
99
|
-
const InTheLast = {
|
|
100
|
-
legacy: 'InTheLast',
|
|
101
|
-
smartFilter: PepSmartFilterOperators.InTheLast,
|
|
102
|
-
type: null
|
|
103
|
-
};
|
|
104
|
-
const NotInTheLast = {
|
|
105
|
-
legacy: 'NotInTheLast',
|
|
106
|
-
smartFilter: PepSmartFilterOperators.NotInTheLast,
|
|
107
|
-
type: null
|
|
108
|
-
};
|
|
109
|
-
const Today = {
|
|
110
|
-
legacy: 'Today',
|
|
111
|
-
smartFilter: PepSmartFilterOperators.Today,
|
|
112
|
-
type: null
|
|
113
|
-
};
|
|
114
|
-
const ThisWeek = {
|
|
115
|
-
legacy: 'ThisWeek',
|
|
116
|
-
smartFilter: PepSmartFilterOperators.ThisWeek,
|
|
117
|
-
type: null
|
|
118
|
-
};
|
|
119
|
-
const ThisMonth = {
|
|
120
|
-
legacy: 'ThisMonth',
|
|
121
|
-
smartFilter: PepSmartFilterOperators.ThisMonth,
|
|
122
|
-
type: null
|
|
123
|
-
};
|
|
124
|
-
const DateRange = {
|
|
125
|
-
legacy: 'Between',
|
|
126
|
-
smartFilter: PepSmartFilterOperators.DateRange,
|
|
127
|
-
type: ['date-time']
|
|
128
|
-
};
|
|
129
|
-
const DueIn = {
|
|
130
|
-
legacy: 'DueIn',
|
|
131
|
-
smartFilter: PepSmartFilterOperators.DueIn,
|
|
132
|
-
type: null
|
|
133
|
-
};
|
|
134
|
-
const NotDueIn = {
|
|
135
|
-
legacy: 'NotDueIn',
|
|
136
|
-
smartFilter: PepSmartFilterOperators.NotDueIn,
|
|
137
|
-
type: null
|
|
138
|
-
};
|
|
139
|
-
const On = {
|
|
140
|
-
legacy: 'On',
|
|
141
|
-
smartFilter: PepSmartFilterOperators.On,
|
|
142
|
-
type: null
|
|
143
|
-
};
|
|
144
|
-
const IsEmpty = {
|
|
145
|
-
legacy: 'IsEmpty',
|
|
146
|
-
smartFilter: PepSmartFilterOperators.IsEmpty,
|
|
147
|
-
type: null
|
|
148
|
-
};
|
|
149
|
-
const IsNotEmpty = {
|
|
150
|
-
legacy: 'IsNotEmpty',
|
|
151
|
-
smartFilter: PepSmartFilterOperators.IsNotEmpty,
|
|
152
|
-
type: null
|
|
153
|
-
};
|
|
154
|
-
const In = {
|
|
155
|
-
legacy: 'IsEqual',
|
|
156
|
-
smartFilter: PepSmartFilterOperators.In,
|
|
157
|
-
type: ['multi-select']
|
|
158
|
-
};
|
|
159
|
-
const PepFilterBuilderOperators = [
|
|
160
|
-
Equals,
|
|
161
|
-
NotEqual,
|
|
162
|
-
LessThan,
|
|
163
|
-
// LessThanOrEquals,
|
|
164
|
-
GreaterThan,
|
|
165
|
-
// GreaterThanOrEquals,
|
|
166
|
-
NumberRange,
|
|
167
|
-
Contains,
|
|
168
|
-
// BeginsWith,
|
|
169
|
-
// EndsWith,
|
|
170
|
-
// After,
|
|
171
|
-
// Before,
|
|
172
|
-
InTheLast,
|
|
173
|
-
NotInTheLast,
|
|
174
|
-
Today,
|
|
175
|
-
ThisWeek,
|
|
176
|
-
ThisMonth,
|
|
177
|
-
DateRange,
|
|
178
|
-
DueIn,
|
|
179
|
-
NotDueIn,
|
|
180
|
-
On,
|
|
181
|
-
IsEmpty,
|
|
182
|
-
IsNotEmpty,
|
|
183
|
-
In
|
|
184
|
-
];
|
|
185
|
-
/**
|
|
186
|
-
* gets a smart filter operator item
|
|
187
|
-
* @param operator legacy operator
|
|
188
|
-
* @param type smart filter's type
|
|
189
|
-
* @returns smart filter operator item
|
|
190
|
-
*/
|
|
191
|
-
export function getSmartBuilderOperator(operator, type) {
|
|
192
|
-
const smartFilterOperator = PepFilterBuilderOperators.find(item => item.legacy === operator &&
|
|
193
|
-
(item.type === null || item.type.includes(type)));
|
|
194
|
-
return smartFilterOperator ? smartFilterOperator.smartFilter : null;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* gets a legacy operator value
|
|
198
|
-
* @param operator smart filter operator item
|
|
199
|
-
* @param type smart filter's type
|
|
200
|
-
* @returns legacy operator value
|
|
201
|
-
*/
|
|
202
|
-
export function getLegacyOperator(operator, type) {
|
|
203
|
-
const legacyOperator = PepFilterBuilderOperators.find(item => item.smartFilter === operator &&
|
|
204
|
-
(item.type === null || item.type.includes(type)));
|
|
205
|
-
return legacyOperator ? legacyOperator.legacy : null;
|
|
206
|
-
}
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvZmlsdGVyLWJ1aWxkZXIvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBMkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNsRyxNQUFNLE1BQU0sR0FBOEI7SUFDdEMsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLHVCQUF1QixDQUFDLE1BQU07SUFDM0MsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDbkMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE4QjtJQUN4QyxNQUFNLEVBQUUsWUFBWTtJQUNwQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtJQUM3QyxJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBOEI7SUFDeEMsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtJQUM3QyxJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBOEI7SUFDM0MsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsdUJBQXVCLENBQUMsV0FBVztJQUNoRCxJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNCSztBQUVMLE1BQU0sV0FBVyxHQUE4QjtJQUMzQyxNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsV0FBVztJQUNoRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE4QjtJQUN4QyxNQUFNLEVBQUUsVUFBVTtJQUNsQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsUUFB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QUssUUFBUTtRQUN4QixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUM7SUFDRixPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBaUMsRUFBRSxJQUF3QjtJQUN6RixNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDekQsSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQzdCLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLCBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciB7XG4gICAgbGVnYWN5OiBzdHJpbmcsIC8vbGVnYWN5IE9wZXJhdG9yICAgIFxuICAgIHNtYXJ0RmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciwgLy9zbWFydCBmaWx0ZXIgb3BlcmF0b3IgICAgXG4gICAgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlW10gfCBudWxsIC8vc21hcnQgZmlsdGVyIHR5cGVcbn1cblxuY29uc3QgRXF1YWxzOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0lzRXF1YWwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5FcXVhbHMsXG4gICAgdHlwZTogWydib29sZWFuJywgJ2ludCcsICd0ZXh0J11cbn07XG5cbmNvbnN0IE5vdEVxdWFsOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0lzTm90RXF1YWwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3RFcXVhbCxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBMZXNzVGhhbjogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc8JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTGVzc1RoYW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW46IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnPicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbi8qXG5jb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJz49JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5HcmVhdGVyVGhhbk9yRXF1YWxzLFxuICAgICAgICB0eXBlOiAnaW50J1xuICAgIH1cbn07XG5cbmNvbnN0IExlc3NUaGFuT3JFcXVhbHM6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnPD0nLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkxlc3NUaGFuT3JFcXVhbHMsXG4gICAgICAgIHR5cGU6ICdpbnQnLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9XG59OyAqL1xuXG5jb25zdCBOdW1iZXJSYW5nZTogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UsXG4gICAgdHlwZTogWydpbnQnXVxufTtcblxuY29uc3QgQ29udGFpbnM6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnQ29udGFpbnMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Db250YWlucyxcbiAgICB0eXBlOiBudWxsXG59O1xuXG4vKlxuY29uc3QgQmVnaW5zV2l0aDogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6IHtcbiAgICAgICAgb3BlcmF0b3I6ICdCZWdpbnNXaXRoJyxcbiAgICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkJlZ2luc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEVuZHNXaXRoOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0VuZHNXaXRoJyxcbiAgICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkVuZHNXaXRoLFxuICAgICAgICB0eXBlOiAndGV4dCdcbiAgICB9XG59O1xuXG5jb25zdCBCZWZvcmU6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnQmVmb3JlJyxcbiAgICAgICAgdHlwZTogJ0RhdGUnXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5CZWZvcmUsXG4gICAgICAgIHR5cGU6ICdkYXRlJ1xuICAgIH1cbn07XG5cbmNvbnN0IEFmdGVyOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0FmdGVyJyxcbiAgICAgICAgdHlwZTogJ0RhdGUnXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5BZnRlcixcbiAgICAgICAgdHlwZTogJ2RhdGUnXG4gICAgfVxufTsgKi9cblxuY29uc3QgSW5UaGVMYXN0OiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0luVGhlTGFzdCcsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkluVGhlTGFzdCxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBOb3RJblRoZUxhc3Q6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnTm90SW5UaGVMYXN0JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90SW5UaGVMYXN0LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IFRvZGF5OiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ1RvZGF5JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVG9kYXksXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgVGhpc1dlZWs6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc1dlZWsnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5UaGlzV2VlayxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBUaGlzTW9udGg6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc01vbnRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc01vbnRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRGF0ZVJhbmdlLFxuICAgIHR5cGU6IFsnZGF0ZS10aW1lJ11cbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwRmlsdGVyQnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0R1ZUluJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRHVlSW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90RHVlSW46IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnTm90RHVlSW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3REdWVJbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBPbjogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdPbicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk9uLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNFbXB0eScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLklzRW1wdHksXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSXNOb3RFbXB0eTogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVtcHR5JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSXNOb3RFbXB0eSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBJbjogSVBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4sXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnXVxufTtcblxuXG5jb25zdCBQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3JzID0gW1xuICAgIEVxdWFscyxcbiAgICBOb3RFcXVhbCxcbiAgICBMZXNzVGhhbixcbiAgICAvLyAgIExlc3NUaGFuT3JFcXVhbHMsXG4gICAgR3JlYXRlclRoYW4sXG4gICAgLy8gICBHcmVhdGVyVGhhbk9yRXF1YWxzLFxuICAgIE51bWJlclJhbmdlLFxuICAgIENvbnRhaW5zLFxuICAgIC8vICAgQmVnaW5zV2l0aCxcbiAgICAvLyAgIEVuZHNXaXRoLFxuICAgIC8vICAgQWZ0ZXIsXG4gICAgLy8gICBCZWZvcmUsXG4gICAgSW5UaGVMYXN0LFxuICAgIE5vdEluVGhlTGFzdCxcbiAgICBUb2RheSxcbiAgICBUaGlzV2VlayxcbiAgICBUaGlzTW9udGgsXG4gICAgRGF0ZVJhbmdlLFxuICAgIER1ZUluLFxuICAgIE5vdER1ZUluLFxuICAgIE9uLFxuICAgIElzRW1wdHksXG4gICAgSXNOb3RFbXB0eSxcbiAgICBJblxuXVxuXG4vKipcbiAqIGdldHMgYSBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIG9wZXJhdG9yIGxlZ2FjeSBvcGVyYXRvclxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0QnVpbGRlck9wZXJhdG9yKG9wZXJhdG9yOiBzdHJpbmcsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHwgbnVsbCB7XG4gICAgY29uc3Qgc21hcnRGaWx0ZXJPcGVyYXRvciA9IFBlcEZpbHRlckJ1aWxkZXJPcGVyYXRvcnMuZmluZChpdGVtID0+XG4gICAgICAgIGl0ZW0ubGVnYWN5ID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBzbWFydEZpbHRlck9wZXJhdG9yID8gc21hcnRGaWx0ZXJPcGVyYXRvci5zbWFydEZpbHRlciA6IG51bGw7XG59XG5cbi8qKlxuICogZ2V0cyBhIGxlZ2FjeSBvcGVyYXRvciB2YWx1ZVxuICogQHBhcmFtIG9wZXJhdG9yIHNtYXJ0IGZpbHRlciBvcGVyYXRvciBpdGVtXG4gKiBAcGFyYW0gdHlwZSBzbWFydCBmaWx0ZXIncyB0eXBlXG4gKiBAcmV0dXJucyBsZWdhY3kgb3BlcmF0b3IgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExlZ2FjeU9wZXJhdG9yKG9wZXJhdG9yOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciwgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgbGVnYWN5T3BlcmF0b3IgPSBQZXBGaWx0ZXJCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLnNtYXJ0RmlsdGVyID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBsZWdhY3lPcGVyYXRvciA/IGxlZ2FjeU9wZXJhdG9yLmxlZ2FjeSA6IG51bGw7XG59XG4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export class PepFilterBuilderTypeMap {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.loadTypes();
|
|
4
|
-
}
|
|
5
|
-
loadTypes() {
|
|
6
|
-
this.map = new Map();
|
|
7
|
-
this.map.set('Bool', 'boolean');
|
|
8
|
-
this.map.set('JsonBool', 'boolean');
|
|
9
|
-
this.map.set('Integer', 'int');
|
|
10
|
-
this.map.set('Double', 'int');
|
|
11
|
-
this.map.set('String', 'text');
|
|
12
|
-
this.map.set('Guid', 'text');
|
|
13
|
-
this.map.set('Date', 'date');
|
|
14
|
-
this.map.set('DateTime', 'date-time');
|
|
15
|
-
this.map.set('MultipleStringValues', 'multi-select');
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Converts legacy field type to smart builder type
|
|
19
|
-
* @param type legacy type
|
|
20
|
-
* @returns smart builder field type
|
|
21
|
-
*/
|
|
22
|
-
getSmartBuilderType(key) {
|
|
23
|
-
let item = this.map.get(key);
|
|
24
|
-
return item ? item : null;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvZmlsdGVyLWJ1aWxkZXIvY29tbW9uL21vZGVsL3R5cGUtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyx1QkFBdUI7SUFHaEM7UUFDSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxHQUFXO1FBQzNCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQZXBTbWFydEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBQZXBGaWx0ZXJCdWlsZGVyVHlwZU1hcCB7XG4gICAgcHJpdmF0ZSBtYXA6IE1hcDxzdHJpbmcsIFBlcFNtYXJ0RmlsdGVyVHlwZT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5sb2FkVHlwZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRUeXBlcygpIHtcbiAgICAgICAgdGhpcy5tYXAgPSBuZXcgTWFwPHN0cmluZywgUGVwU21hcnRGaWx0ZXJUeXBlPigpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0Jvb2wnLCAnYm9vbGVhbicpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0pzb25Cb29sJywgJ2Jvb2xlYW4nKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KCdJbnRlZ2VyJywgJ2ludCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RvdWJsZScsICdpbnQnKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KCdTdHJpbmcnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0d1aWQnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGUnLCAnZGF0ZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGVUaW1lJywgJ2RhdGUtdGltZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ011bHRpcGxlU3RyaW5nVmFsdWVzJywgJ211bHRpLXNlbGVjdCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGxlZ2FjeSBmaWVsZCB0eXBlIHRvIHNtYXJ0IGJ1aWxkZXIgdHlwZVxuICAgICAqIEBwYXJhbSB0eXBlIGxlZ2FjeSB0eXBlXG4gICAgICogQHJldHVybnMgc21hcnQgYnVpbGRlciBmaWVsZCB0eXBlXG4gICAgICovXG4gICAgZ2V0U21hcnRCdWlsZGVyVHlwZShrZXk6IHN0cmluZyk6IFBlcFNtYXJ0RmlsdGVyVHlwZSB8IG51bGwge1xuICAgICAgICBsZXQgaXRlbSA9IHRoaXMubWFwLmdldChrZXkpO1xuICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0gOiBudWxsO1xuICAgIH1cblxufVxuXG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var PepOperatorTypes;
|
|
2
|
-
(function (PepOperatorTypes) {
|
|
3
|
-
PepOperatorTypes["And"] = "AND";
|
|
4
|
-
PepOperatorTypes["Or"] = "OR";
|
|
5
|
-
})(PepOperatorTypes || (PepOperatorTypes = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9maWx0ZXItYnVpbGRlci9jb21tb24vbW9kZWwvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLCtCQUFXLENBQUE7SUFDWCw2QkFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQZXBPcGVyYXRvclR5cGVzIHtcbiAgICBBbmQgPSAnQU5EJyxcbiAgICBPciA9ICdPUidcbn1cblxuXG5cblxuXG5cblxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
export class FilterItemCounterPipe {
|
|
3
|
-
transform(container) {
|
|
4
|
-
console.log('init filter', container);
|
|
5
|
-
let counter = 0;
|
|
6
|
-
Object.keys(container.controls).forEach(item => { if (item.includes('item') || item.includes('section')) {
|
|
7
|
-
counter++;
|
|
8
|
-
} });
|
|
9
|
-
console.log('filter counter', counter);
|
|
10
|
-
return counter;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
FilterItemCounterPipe.decorators = [
|
|
14
|
-
{ type: Pipe, args: [{
|
|
15
|
-
name: 'filterItemCounter'
|
|
16
|
-
},] }
|
|
17
|
-
];
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWl0ZW0tY291bnRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2ZpbHRlci1idWlsZGVyL2NvbW1vbi9waXBlcy9maWx0ZXItaXRlbS1jb3VudGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixTQUFTLENBQUMsU0FBb0I7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUM7U0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNILE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7O1lBVkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxtQkFBbUI7YUFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsdGVySXRlbUNvdW50ZXInXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckl0ZW1Db3VudGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShjb250YWluZXI6IEZvcm1Hcm91cCk6IG51bWJlciB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpbml0IGZpbHRlcicsIGNvbnRhaW5lcik7XG4gICAgICAgIGxldCBjb3VudGVyID0gMDtcbiAgICAgICAgT2JqZWN0LmtleXMoY29udGFpbmVyLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnaXRlbScpIHx8IGl0ZW0uaW5jbHVkZXMoJ3NlY3Rpb24nKSkgeyBjb3VudGVyKys7IH0gfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdmaWx0ZXIgY291bnRlcicsIGNvdW50ZXIpO1xuICAgICAgICByZXR1cm4gY291bnRlcjtcbiAgICB9XG59Il19
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { getLegacyOperator } from '../model/operator';
|
|
3
|
-
import { getLegacyOperationUnit } from '../model/operator-unit';
|
|
4
|
-
import { PepSmartFilterOperators } from '../../../common/model/operator';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class PepOutputFilterService {
|
|
7
|
-
constructor() {
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* generates a legacy JSON
|
|
11
|
-
* @param json UI smart filters structure
|
|
12
|
-
* @param fields smart filter field
|
|
13
|
-
* @returns legacy JSON
|
|
14
|
-
*/
|
|
15
|
-
generateJson(json, fields) {
|
|
16
|
-
this.initProperties();
|
|
17
|
-
this._fields = fields;
|
|
18
|
-
this.treeWalk(json);
|
|
19
|
-
return this._json ? this._json : this._firstItem ? this._firstItem : null;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* reset properties
|
|
23
|
-
*/
|
|
24
|
-
initProperties() {
|
|
25
|
-
this._json = undefined;
|
|
26
|
-
this._firstItem = undefined;
|
|
27
|
-
this._complexIdCounter = 1;
|
|
28
|
-
this._expressionIdCounter = 1;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* a recursive function dynamically builds legacy JSON structure
|
|
32
|
-
* @param current UI object represents either a section or filter component
|
|
33
|
-
*/
|
|
34
|
-
treeWalk(current) {
|
|
35
|
-
Object.keys(current).forEach(key => {
|
|
36
|
-
if (key.includes('item')) {
|
|
37
|
-
this.createItem({
|
|
38
|
-
ExpressionId: (this._expressionIdCounter++).toString(),
|
|
39
|
-
ApiName: current[key].fieldId,
|
|
40
|
-
Operation: getLegacyOperator(current[key].operator, current[key].fieldType),
|
|
41
|
-
Values: this.getItemValues(current[key])
|
|
42
|
-
}, current.operator);
|
|
43
|
-
}
|
|
44
|
-
else if (key.includes('section')) {
|
|
45
|
-
this.treeWalk(current[key]);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* adds a filter to json and wrap it with complex operator
|
|
51
|
-
* @param item expression item
|
|
52
|
-
* @param operator complex operator
|
|
53
|
-
*/
|
|
54
|
-
createItem(item, operator) {
|
|
55
|
-
if (this._json) {
|
|
56
|
-
this._json = this.createSection(this._json, item, operator);
|
|
57
|
-
}
|
|
58
|
-
else if (this._firstItem) {
|
|
59
|
-
this._json = this.createSection(this._firstItem, item, operator);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this._firstItem = item;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* creates a legacy complex object
|
|
67
|
-
* @param left LeftNode object
|
|
68
|
-
* @param right RightNode object
|
|
69
|
-
* @param operator AND/OR operator
|
|
70
|
-
* @returns complex object
|
|
71
|
-
*/
|
|
72
|
-
createSection(left, right, operator) {
|
|
73
|
-
return {
|
|
74
|
-
ComplexId: (this._complexIdCounter++).toString(),
|
|
75
|
-
LeftNode: left,
|
|
76
|
-
RightNode: right,
|
|
77
|
-
Operation: operator
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* gets legacy filter values object
|
|
82
|
-
* @param current UI filter object's values
|
|
83
|
-
* @returns an array represents legacy values
|
|
84
|
-
*/
|
|
85
|
-
getItemValues(current) {
|
|
86
|
-
var _a;
|
|
87
|
-
let values = [];
|
|
88
|
-
if ((_a = current === null || current === void 0 ? void 0 : current.values) === null || _a === void 0 ? void 0 : _a.first) {
|
|
89
|
-
if (current.operator === PepSmartFilterOperators.In) { //multi select
|
|
90
|
-
values = current.values.first;
|
|
91
|
-
}
|
|
92
|
-
else if (current.operator === PepSmartFilterOperators.InTheLast ||
|
|
93
|
-
current.operator === PepSmartFilterOperators.NotInTheLast ||
|
|
94
|
-
current.operator === PepSmartFilterOperators.DueIn ||
|
|
95
|
-
current.operator === PepSmartFilterOperators.NotDueIn) { //operation unit
|
|
96
|
-
values.push(current.values.first);
|
|
97
|
-
if (current.operatorUnit) {
|
|
98
|
-
values.push(getLegacyOperationUnit(current.operatorUnit));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
values.push(current.values.first);
|
|
103
|
-
if (current.values.second) {
|
|
104
|
-
values.push(current.values.second);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return values;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* generates an array of keys of multi-select control
|
|
112
|
-
* @param values an array of the selected values
|
|
113
|
-
* @param id filter's selected field
|
|
114
|
-
* @returns an array of keys
|
|
115
|
-
*/
|
|
116
|
-
getFieldKeys(values, id) {
|
|
117
|
-
let keys = [];
|
|
118
|
-
let field = this._fields.find(item => item.id === id);
|
|
119
|
-
if (field) {
|
|
120
|
-
keys = field === null || field === void 0 ? void 0 : field.options.filter(item => values.includes(item.value)).map((option) => option.key);
|
|
121
|
-
}
|
|
122
|
-
return keys;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
PepOutputFilterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PepOutputFilterService_Factory() { return new PepOutputFilterService(); }, token: PepOutputFilterService, providedIn: "root" });
|
|
126
|
-
PepOutputFilterService.decorators = [
|
|
127
|
-
{ type: Injectable, args: [{
|
|
128
|
-
providedIn: 'root',
|
|
129
|
-
},] }
|
|
130
|
-
];
|
|
131
|
-
PepOutputFilterService.ctorParameters = () => [];
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2ZpbHRlci1idWlsZGVyL2NvbW1vbi9zZXJ2aWNlcy9vdXRwdXQtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sZ0NBQWdDLENBQUM7O0FBTWxHLE1BQU0sT0FBTyxzQkFBc0I7SUFPL0I7SUFFQSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsSUFBUyxFQUFFLE1BQW1DO1FBQ3ZELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lB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QUFDLENBQUM7aUJBQzdEO2FBQ0o7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3RDO2FBQ0o7U0FDSjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFlBQVksQ0FBQyxNQUFhLEVBQUUsRUFBVTtRQUMxQyxJQUFJLElBQUksR0FBVSxFQUFFLENBQUM7UUFFckIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEc7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7O1lBdklKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBKU09OSXRlbSB9IGZyb20gJy4uL21vZGVsL2xlZ2FjeSc7XG5pbXBvcnQgeyBnZXRMZWdhY3lPcGVyYXRvciB9IGZyb20gJy4uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdGlvblVuaXQgfSBmcm9tICcuLi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLCBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBJUGVwU21hcnRGaWx0ZXJGaWVsZCB9IGZyb20gJ3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcE91dHB1dEZpbHRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2pzb246IGFueTtcbiAgICBwcml2YXRlIF9maWVsZHM6IEFycmF5PElQZXBTbWFydEZpbHRlckZpZWxkPjtcbiAgICBwcml2YXRlIF9maXJzdEl0ZW06IGFueTtcbiAgICBwcml2YXRlIF9jb21wbGV4SWRDb3VudGVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZXhwcmVzc2lvbklkQ291bnRlcjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZW5lcmF0ZXMgYSBsZWdhY3kgSlNPTiBcbiAgICAgKiBAcGFyYW0ganNvbiBVSSBzbWFydCBmaWx0ZXJzIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBmaWVsZHMgc21hcnQgZmlsdGVyIGZpZWxkXG4gICAgICogQHJldHVybnMgbGVnYWN5IEpTT05cbiAgICAgKi9cbiAgICBnZW5lcmF0ZUpzb24oanNvbjogYW55LCBmaWVsZHM6IEFycmF5PElQZXBTbWFydEZpbHRlckZpZWxkPikge1xuICAgICAgICB0aGlzLmluaXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuX2ZpZWxkcyA9IGZpZWxkcztcbiAgICAgICAgdGhpcy50cmVlV2Fsayhqc29uKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2pzb24gPyB0aGlzLl9qc29uIDogdGhpcy5fZmlyc3RJdGVtID8gdGhpcy5fZmlyc3RJdGVtIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXNldCBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0UHJvcGVydGllcygpIHtcbiAgICAgICAgdGhpcy5fanNvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fZmlyc3RJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9jb21wbGV4SWRDb3VudGVyID0gMTtcbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbklkQ291bnRlciA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIGxlZ2FjeSBKU09OIHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIG9iamVjdCByZXByZXNlbnRzIGVpdGhlciBhIHNlY3Rpb24gb3IgZmlsdGVyIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgdHJlZVdhbGsoY3VycmVudDogYW55KSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2l0ZW0nKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbSh7XG4gICAgICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JZDogKHRoaXMuX2V4cHJlc3Npb25JZENvdW50ZXIrKykudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgQXBpTmFtZTogY3VycmVudFtrZXldLmZpZWxkSWQsXG4gICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbjogZ2V0TGVnYWN5T3BlcmF0b3IoY3VycmVudFtrZXldLm9wZXJhdG9yLCBjdXJyZW50W2tleV0uZmllbGRUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiB0aGlzLmdldEl0ZW1WYWx1ZXMoY3VycmVudFtrZXldKVxuICAgICAgICAgICAgICAgIH0gYXMgSVBlcEpTT05JdGVtLCBjdXJyZW50Lm9wZXJhdG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdzZWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVXYWxrKGN1cnJlbnRba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZHMgYSBmaWx0ZXIgdG8ganNvbiBhbmQgd3JhcCBpdCB3aXRoIGNvbXBsZXggb3BlcmF0b3JcbiAgICAgKiBAcGFyYW0gaXRlbSBleHByZXNzaW9uIGl0ZW1cbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgY29tcGxleCBvcGVyYXRvciBcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUl0ZW0oaXRlbTogYW55LCBvcGVyYXRvcjogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9qc29uKSB7XG4gICAgICAgICAgICB0aGlzLl9qc29uID0gdGhpcy5jcmVhdGVTZWN0aW9uKHRoaXMuX2pzb24sIGl0ZW0sIG9wZXJhdG9yKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9maXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuX2pzb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24odGhpcy5fZmlyc3RJdGVtLCBpdGVtLCBvcGVyYXRvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9maXJzdEl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgbGVnYWN5IGNvbXBsZXggb2JqZWN0XG4gICAgICogQHBhcmFtIGxlZnQgTGVmdE5vZGUgb2JqZWN0XG4gICAgICogQHBhcmFtIHJpZ2h0IFJpZ2h0Tm9kZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHJldHVybnMgY29tcGxleCBvYmplY3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVNlY3Rpb24obGVmdDogYW55LCByaWdodDogYW55LCBvcGVyYXRvcjogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBDb21wbGV4SWQ6ICh0aGlzLl9jb21wbGV4SWRDb3VudGVyKyspLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBMZWZ0Tm9kZTogbGVmdCxcbiAgICAgICAgICAgIFJpZ2h0Tm9kZTogcmlnaHQsXG4gICAgICAgICAgICBPcGVyYXRpb246IG9wZXJhdG9yXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXRzIGxlZ2FjeSBmaWx0ZXIgdmFsdWVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIGZpbHRlciBvYmplY3QncyB2YWx1ZXNcbiAgICAgKiBAcmV0dXJucyBhbiBhcnJheSByZXByZXNlbnRzIGxlZ2FjeSB2YWx1ZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEl0ZW1WYWx1ZXMoY3VycmVudDogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZXM6IGFueVtdID0gW107XG5cbiAgICAgICAgaWYgKGN1cnJlbnQ/LnZhbHVlcz8uZmlyc3QpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Lm9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5JbikgeyAvL211bHRpIHNlbGVjdCBcbiAgICAgICAgICAgICAgICB2YWx1ZXMgPSBjdXJyZW50LnZhbHVlcy5maXJzdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW5UaGVMYXN0IHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90SW5UaGVMYXN0IHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRHVlSW4gfHxcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3REdWVJblxuICAgICAgICAgICAgKSB7IC8vb3BlcmF0aW9uIHVuaXQgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5maXJzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQub3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldExlZ2FjeU9wZXJhdGlvblVuaXQoY3VycmVudC5vcGVyYXRvclVuaXQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGN1cnJlbnQudmFsdWVzLmZpcnN0KTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudC52YWx1ZXMuc2Vjb25kKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGN1cnJlbnQudmFsdWVzLnNlY29uZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZW5lcmF0ZXMgYW4gYXJyYXkgb2Yga2V5cyBvZiBtdWx0aS1zZWxlY3QgY29udHJvbFxuICAgICAqIEBwYXJhbSB2YWx1ZXMgYW4gYXJyYXkgb2YgdGhlIHNlbGVjdGVkIHZhbHVlc1xuICAgICAqIEBwYXJhbSBpZCBmaWx0ZXIncyBzZWxlY3RlZCBmaWVsZFxuICAgICAqIEByZXR1cm5zIGFuIGFycmF5IG9mIGtleXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEZpZWxkS2V5cyh2YWx1ZXM6IGFueVtdLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIGxldCBrZXlzOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGxldCBmaWVsZCA9IHRoaXMuX2ZpZWxkcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIGtleXMgPSBmaWVsZD8ub3B0aW9ucy5maWx0ZXIoaXRlbSA9PiB2YWx1ZXMuaW5jbHVkZXMoaXRlbS52YWx1ZSkpLm1hcCgob3B0aW9uOiBhbnkpID0+IG9wdGlvbi5rZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgfVxufSJdfQ==
|