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-content>
|
||||||
<mat-card-actions *ngIf="form.hasOutcomes()" class="adf-form-mat-card-actions">
|
<mat-card-actions *ngIf="form.hasOutcomes()" class="adf-form-mat-card-actions">
|
||||||
<!--[class.mdl-button--colored]="!outcome.isSystem"-->
|
<!--[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)"
|
[color]="getColorForOutcome(outcome.name)"
|
||||||
mat-button
|
mat-button
|
||||||
[disabled]="!isOutcomeButtonEnabled(outcome)"
|
[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 { TimeAgoPipe } from './time-ago.pipe';
|
||||||
import { InitialUsernamePipe } from './user-initial.pipe';
|
import { InitialUsernamePipe } from './user-initial.pipe';
|
||||||
import { FullNamePipe } from './full-name.pipe';
|
import { FullNamePipe } from './full-name.pipe';
|
||||||
|
import { FormatSpacePipe } from './format-space.pipe';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -37,7 +38,8 @@ import { FullNamePipe } from './full-name.pipe';
|
|||||||
MimeTypeIconPipe,
|
MimeTypeIconPipe,
|
||||||
InitialUsernamePipe,
|
InitialUsernamePipe,
|
||||||
FullNamePipe,
|
FullNamePipe,
|
||||||
NodeNameTooltipPipe
|
NodeNameTooltipPipe,
|
||||||
|
FormatSpacePipe
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
FileSizePipe,
|
FileSizePipe,
|
||||||
@@ -45,7 +47,8 @@ import { FullNamePipe } from './full-name.pipe';
|
|||||||
TimeAgoPipe,
|
TimeAgoPipe,
|
||||||
MimeTypeIconPipe,
|
MimeTypeIconPipe,
|
||||||
InitialUsernamePipe,
|
InitialUsernamePipe,
|
||||||
NodeNameTooltipPipe
|
NodeNameTooltipPipe,
|
||||||
|
FormatSpacePipe
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
FileSizePipe,
|
FileSizePipe,
|
||||||
@@ -54,7 +57,8 @@ import { FullNamePipe } from './full-name.pipe';
|
|||||||
MimeTypeIconPipe,
|
MimeTypeIconPipe,
|
||||||
InitialUsernamePipe,
|
InitialUsernamePipe,
|
||||||
FullNamePipe,
|
FullNamePipe,
|
||||||
NodeNameTooltipPipe
|
NodeNameTooltipPipe,
|
||||||
|
FormatSpacePipe
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class PipeModule {
|
export class PipeModule {
|
||||||
|
Reference in New Issue
Block a user