mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-3615] created a pipe to replace empty space in strings with a special character (#4005)
This commit is contained in:
28
docs/core/format-space.pipe.md
Normal file
28
docs/core/format-space.pipe.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
Added: v2.0.0
|
||||
Status: Active
|
||||
Last reviewed: 2018-11-19
|
||||
---
|
||||
|
||||
# Format Space pipe
|
||||
|
||||
Replace all the white space in a string into a character given.
|
||||
|
||||
## Basic Usage
|
||||
|
||||
<!-- {% raw %} -->
|
||||
|
||||
```HTML
|
||||
<div [id]="'CHECK MY ID' | formatSpace">
|
||||
BATTLESTAR GALACTICA
|
||||
</div>
|
||||
```
|
||||
|
||||
<!-- {% endraw %} -->
|
||||
|
||||
## Details
|
||||
|
||||
The pipe will replace all the white space between the string into `_` by default and will transform the string in lowercase (ex. `test a pipe` => `test_a_pipe`).
|
||||
It is possible specify a different character for the replacing by passing the character you want in input.
|
||||
It is possible avoid the transformation into lowercase by passing `false` for the `lowercase` option.
|
||||
|
@@ -37,7 +37,7 @@
|
||||
</mat-card-content>
|
||||
<mat-card-actions *ngIf="form.hasOutcomes()" class="adf-form-mat-card-actions">
|
||||
<!--[class.mdl-button--colored]="!outcome.isSystem"-->
|
||||
<button [id]="'adf-form-'+ outcome.name | lowercase" *ngFor="let outcome of form.outcomes"
|
||||
<button [id]="'adf-form-'+ outcome.name | formatSpace" *ngFor="let outcome of form.outcomes"
|
||||
[color]="getColorForOutcome(outcome.name)"
|
||||
mat-button
|
||||
[disabled]="!isOutcomeButtonEnabled(outcome)"
|
||||
|
65
lib/core/pipes/format-space.pipe.spec.ts
Normal file
65
lib/core/pipes/format-space.pipe.spec.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { FormatSpacePipe } from './format-space.pipe';
|
||||
|
||||
describe('FormatSpacePipe', () => {
|
||||
|
||||
let pipe: FormatSpacePipe;
|
||||
|
||||
beforeEach(() => {
|
||||
pipe = new FormatSpacePipe();
|
||||
});
|
||||
|
||||
it('should replace the white space with an underscore by default', () => {
|
||||
let result = pipe.transform('FAKE TEST');
|
||||
expect(result).toBe('fake_test');
|
||||
});
|
||||
|
||||
it('should replace all the white spaces with an underscore by default', () => {
|
||||
let result = pipe.transform('FAKE TEST CHECK ');
|
||||
expect(result).toBe('fake_test_check');
|
||||
});
|
||||
|
||||
it('should trim the space at the end of the string and replace the ones in the middle', () => {
|
||||
let result = pipe.transform(' FAKE TEST CHECK ');
|
||||
expect(result).toBe('fake_test_check');
|
||||
});
|
||||
|
||||
it('should return a lower case string by default', () => {
|
||||
const testString = 'FAKE_TEST_LOWERCASE';
|
||||
let result = pipe.transform(testString);
|
||||
expect(result).toBe(testString.toLocaleLowerCase());
|
||||
});
|
||||
|
||||
it('should replace the empty space with the character given', () => {
|
||||
const testString = 'FAKE TEST LOWERCASE';
|
||||
let result = pipe.transform(testString, '+');
|
||||
expect(result).toBe('fake+test+lowercase');
|
||||
});
|
||||
|
||||
it('should leave the string uppercase if explicitly set', () => {
|
||||
const testString = 'FAKE TEST LOWERCASE';
|
||||
let result = pipe.transform(testString, '-', false);
|
||||
expect(result).toBe('FAKE-TEST-LOWERCASE');
|
||||
});
|
||||
|
||||
it('should return an empty string when input is null', () => {
|
||||
let result = pipe.transform(null);
|
||||
expect(result).toBe('');
|
||||
});
|
||||
});
|
34
lib/core/pipes/format-space.pipe.ts
Normal file
34
lib/core/pipes/format-space.pipe.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Pipe, PipeTransform } from '@angular/core';
|
||||
|
||||
@Pipe({
|
||||
name: 'formatSpace'
|
||||
})
|
||||
export class FormatSpacePipe implements PipeTransform {
|
||||
|
||||
transform(inputValue: string, replaceChar: string = '_', lowerCase: boolean = true): string {
|
||||
let transformedString = '';
|
||||
if (inputValue) {
|
||||
transformedString = lowerCase ? inputValue.trim().split(' ').join(replaceChar).toLocaleLowerCase() :
|
||||
inputValue.trim().split(' ').join(replaceChar);
|
||||
}
|
||||
return transformedString;
|
||||
}
|
||||
|
||||
}
|
@@ -25,6 +25,7 @@ import { HighlightPipe } from './text-highlight.pipe';
|
||||
import { TimeAgoPipe } from './time-ago.pipe';
|
||||
import { InitialUsernamePipe } from './user-initial.pipe';
|
||||
import { FullNamePipe } from './full-name.pipe';
|
||||
import { FormatSpacePipe } from './format-space.pipe';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -37,7 +38,8 @@ import { FullNamePipe } from './full-name.pipe';
|
||||
MimeTypeIconPipe,
|
||||
InitialUsernamePipe,
|
||||
FullNamePipe,
|
||||
NodeNameTooltipPipe
|
||||
NodeNameTooltipPipe,
|
||||
FormatSpacePipe
|
||||
],
|
||||
providers: [
|
||||
FileSizePipe,
|
||||
@@ -45,7 +47,8 @@ import { FullNamePipe } from './full-name.pipe';
|
||||
TimeAgoPipe,
|
||||
MimeTypeIconPipe,
|
||||
InitialUsernamePipe,
|
||||
NodeNameTooltipPipe
|
||||
NodeNameTooltipPipe,
|
||||
FormatSpacePipe
|
||||
],
|
||||
exports: [
|
||||
FileSizePipe,
|
||||
@@ -54,7 +57,8 @@ import { FullNamePipe } from './full-name.pipe';
|
||||
MimeTypeIconPipe,
|
||||
InitialUsernamePipe,
|
||||
FullNamePipe,
|
||||
NodeNameTooltipPipe
|
||||
NodeNameTooltipPipe,
|
||||
FormatSpacePipe
|
||||
]
|
||||
})
|
||||
export class PipeModule {
|
||||
|
Reference in New Issue
Block a user