Merge pull request #235 in TEA/mina-sidor-fa-web from feature/TV-857-digi-ng-icon-custom to develop
Squashed commit of the following:
commit f09e5111d82dce884f83ebf1150a04890c165f39
Merge: 2184d793 4b4e5a64
Author: WP\holno <nikola.holst-nikolic@arbetsformedlingen.se>
Date: Mon Nov 1 14:21:47 2021 +0100
Merge branch 'develop' into feature/TV-857-digi-ng-icon-custom
commit 2184d7939f92956cb6f5aedc51a9f694692cb9a5
Author: WP\holno <nikola.holst-nikolic@arbetsformedlingen.se>
Date: Fri Oct 29 14:47:29 2021 +0200
Created a ui-icon-custom and removed references to digi-ng-icon-custom
This commit is contained in:
@@ -1,7 +1,3 @@
|
|||||||
import { DigiNgIconExclamationCircleModule } from '@af/digi-ng/_icon/icon-exclamation-circle';
|
|
||||||
import { DigiNgIconExclamationTriangleModule } from '@af/digi-ng/_icon/icon-exclamation-triangle';
|
|
||||||
import { DigiNgIconInfoCircleRegModule } from '@af/digi-ng/_icon/icon-info-circle-reg';
|
|
||||||
import { DigiNgIconXModule } from '@af/digi-ng/_icon/icon-x';
|
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||||
import { IconModule } from '@msfa-shared/components/icon/icon.module';
|
import { IconModule } from '@msfa-shared/components/icon/icon.module';
|
||||||
@@ -12,10 +8,6 @@ import { ToastComponent } from './toast.component';
|
|||||||
declarations: [ToastComponent],
|
declarations: [ToastComponent],
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
DigiNgIconXModule,
|
|
||||||
DigiNgIconExclamationCircleModule,
|
|
||||||
DigiNgIconExclamationTriangleModule,
|
|
||||||
DigiNgIconInfoCircleRegModule,
|
|
||||||
IconModule,
|
IconModule,
|
||||||
],
|
],
|
||||||
exports: [ToastComponent],
|
exports: [ToastComponent],
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<digi-ng-icon-custom *ngIf="isCustomIcon; else DigiNgIcon" aria-hidden="true" class="icon" [ngClass]="[iconClass]">
|
<ui-icon-custom *ngIf="isCustomIcon; else digiIcon" aria-hidden="true" class="icon" [ngClass]="[iconClass]">
|
||||||
<svg *ngIf="icon === iconType.HOME" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="25" height="25">
|
<svg *ngIf="icon === iconType.HOME" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="25" height="25">
|
||||||
<path
|
<path
|
||||||
d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"
|
d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"
|
||||||
@@ -57,9 +57,9 @@
|
|||||||
d="M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"
|
d="M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"
|
||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</digi-ng-icon-custom>
|
</ui-icon-custom>
|
||||||
|
|
||||||
<ng-template #DigiNgIcon>
|
<ng-template #digiIcon>
|
||||||
<ng-container [ngSwitch]="icon">
|
<ng-container [ngSwitch]="icon">
|
||||||
<digi-icon-user-alt *ngSwitchCase="iconType.USER" [ngClass]="iconClass"></digi-icon-user-alt>
|
<digi-icon-user-alt *ngSwitchCase="iconType.USER" [ngClass]="iconClass"></digi-icon-user-alt>
|
||||||
<digi-icon-users-solid *ngSwitchCase="iconType.USERS" [ngClass]="iconClass"></digi-icon-users-solid>
|
<digi-icon-users-solid *ngSwitchCase="iconType.USERS" [ngClass]="iconClass"></digi-icon-users-solid>
|
||||||
|
|||||||
@@ -6,18 +6,18 @@
|
|||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
&--s {
|
&--s {
|
||||||
@include msfa__digi-ng-icon(0.875em);
|
@include msfa__ui-icon(0.875em);
|
||||||
}
|
}
|
||||||
&--m {
|
&--m {
|
||||||
@include msfa__digi-ng-icon(1em);
|
@include msfa__ui-icon(1em);
|
||||||
}
|
}
|
||||||
&--l {
|
&--l {
|
||||||
@include msfa__digi-ng-icon(1.25em);
|
@include msfa__ui-icon(1.25em);
|
||||||
}
|
}
|
||||||
&--xl {
|
&--xl {
|
||||||
@include msfa__digi-ng-icon(1.5em);
|
@include msfa__ui-icon(1.5em);
|
||||||
}
|
}
|
||||||
&--xxl {
|
&--xxl {
|
||||||
@include msfa__digi-ng-icon(2em);
|
@include msfa__ui-icon(2em);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@mixin msfa__digi-ng-icon($width: 1em) {
|
@mixin msfa__ui-icon($width: 1em) {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
1
libs/ui/_icon/icon-custom/icon-custom.component.html
Normal file
1
libs/ui/_icon/icon-custom/icon-custom.component.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<ng-content select="svg"></ng-content>
|
||||||
31
libs/ui/_icon/icon-custom/icon-custom.component.stories.ts
Normal file
31
libs/ui/_icon/icon-custom/icon-custom.component.stories.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { IconCustomComponent } from './icon-custom.component';
|
||||||
|
import { UiIconCustomModule } from './icon-custom.module';
|
||||||
|
|
||||||
|
export default { title: 'Icon/IconCustom', component: IconCustomComponent };
|
||||||
|
|
||||||
|
const componentModule = {
|
||||||
|
moduleMetadata: {
|
||||||
|
declarations: [],
|
||||||
|
imports: [UiIconCustomModule]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const standard = () => ({
|
||||||
|
...componentModule,
|
||||||
|
template: `
|
||||||
|
<ui-icon-custom>
|
||||||
|
<svg
|
||||||
|
width="25"
|
||||||
|
height="25"
|
||||||
|
viewBox="0 0 25 25"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M12.5 0C5.595 0 0 5.595 0 12.5S5.595 25 12.5 25 25 19.405 25 12.5 19.405 0 12.5 0zm0 22.58c-5.57 0-10.08-4.51-10.08-10.08S6.93 2.42 12.5 2.42 22.58 6.93 22.58 12.5 18.07 22.58 12.5 22.58zm3.115-5.261l-4.28-3.11a.609.609 0 01-.246-.49V5.445c0-.333.272-.605.605-.605h1.612c.333 0 .605.272.605.605v7.142l3.367 2.45a.604.604 0 01.131.846l-.947 1.306a.609.609 0 01-.847.13z"
|
||||||
|
fill="currentColor"
|
||||||
|
fill-rule="nonzero"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</ui-icon-custom>
|
||||||
|
`
|
||||||
|
});
|
||||||
24
libs/ui/_icon/icon-custom/icon-custom.component.ts
Normal file
24
libs/ui/_icon/icon-custom/icon-custom.component.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a component for custom icons. It expects an svg as a child (with ng-content's select property explicitly set to 'svg').
|
||||||
|
* The component acts as a simple wrapper that provides icon-specific css etc.
|
||||||
|
*
|
||||||
|
* NOTE: It is encouraged to use one of the existing icon components. This is a fallback for custom needs.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* ## Usage
|
||||||
|
* ``import {UiIconCustomModule} from '@ui/_icon/icon-custom';``
|
||||||
|
*
|
||||||
|
* `<ui-icon-custom><svg>your custom svg markup here</svg></ui-icon-custom>`
|
||||||
|
*
|
||||||
|
* ## Styling
|
||||||
|
* All icons in the system makes use of `currentColor` as a default for fills and strokes. This allows for maximum flexibility for usage.
|
||||||
|
* In order for your custom svg to behave as the other icons do, it should do this also.
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ui-icon-custom',
|
||||||
|
templateUrl: './icon-custom.component.html',
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush
|
||||||
|
})
|
||||||
|
export class IconCustomComponent {}
|
||||||
10
libs/ui/_icon/icon-custom/icon-custom.module.ts
Normal file
10
libs/ui/_icon/icon-custom/icon-custom.module.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { IconCustomComponent } from './icon-custom.component';
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [CommonModule],
|
||||||
|
declarations: [IconCustomComponent],
|
||||||
|
exports: [IconCustomComponent]
|
||||||
|
})
|
||||||
|
export class UiIconCustomModule {}
|
||||||
Reference in New Issue
Block a user