diff --git a/src/app.module.ts b/src/app.module.ts
index 6b0bf163..25015fab 100644
--- a/src/app.module.ts
+++ b/src/app.module.ts
@@ -10,11 +10,15 @@ import { KeymapComponent } from './components/keymap';
import { MacroComponent } from './components/macro';
import { LegacyLoaderComponent } from './components/legacy-loader';
import { NotificationComponent } from './components/notification';
-import { SvgKeystrokeKeyComponent, SvgOneLineTextKeyComponent, SvgTwoLineTextKeyComponent } from './components/svg/keys';
-import {SvgKeyboardWrapComponent} from './components/svg/wrap/svg-keyboard-wrap.component';
-import {LayersComponent} from './components/layers/layers.component';
-import {SvgKeyboardComponent} from './components/svg/keyboard/svg-keyboard.component';
-import {PopoverComponent} from './components/popover/popover.component';
+import {
+ SvgKeystrokeKeyComponent, SvgOneLineTextKeyComponent, SvgTwoLineTextKeyComponent
+} from './components/svg/keys';
+import { SvgKeyboardWrapComponent } from './components/svg/wrap';
+import { LayersComponent } from './components/layers';
+import { SvgKeyboardComponent } from './components/svg/keyboard';
+import { PopoverComponent } from './components/popover';
+import { KeymapAddComponent } from './components/keymap';
+import {UhkConfigurationService} from './services/uhk-configuration.service';
@NgModule({
declarations: [
@@ -29,11 +33,13 @@ import {PopoverComponent} from './components/popover/popover.component';
SvgKeyboardWrapComponent,
LayersComponent,
PopoverComponent,
- SvgKeyboardComponent
+ SvgKeyboardComponent,
+ KeymapAddComponent
],
imports: [BrowserModule],
providers: [
DataProviderService,
+ UhkConfigurationService,
MapperService,
APP_ROUTER_PROVIDERS,
{ provide: LocationStrategy, useClass: HashLocationStrategy }
diff --git a/src/components/keymap/add/keymap-add.component.html b/src/components/keymap/add/keymap-add.component.html
new file mode 100644
index 00000000..212216b8
--- /dev/null
+++ b/src/components/keymap/add/keymap-add.component.html
@@ -0,0 +1,32 @@
+
+
+ Add new keymap
+
+
+
+
+
+
+
+
+
+ {{ keymaps.length }} / {{ keymapsAll.length }} keymaps shown
+
+
+
+
+
{{ keymap.name }}
+
+ {{ keymap.description }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/keymap/add/keymap-add.component.scss b/src/components/keymap/add/keymap-add.component.scss
new file mode 100644
index 00000000..1e6d3c35
--- /dev/null
+++ b/src/components/keymap/add/keymap-add.component.scss
@@ -0,0 +1,61 @@
+:host {
+ overflow-y: auto;
+ display: block;
+ height: 100%;
+}
+
+.uhk__layer-switcher--wrapper {
+ position: relative;
+
+ &:before {
+ content: attr(data-title);
+ display: inline-block;
+ position: absolute;
+ bottom: -0.3em;
+ right: 100%;
+ font-size: 2.4rem;
+ padding-right: 0.25em;
+ margin: 0;
+ }
+}
+
+.keymap {
+ &__search {
+ margin-top: 10px;
+
+ .input-group {
+ width: 100%;
+ max-width: 350px;
+ float: left;
+ }
+
+ &_amount {
+ float: left;
+ margin: 7px 0 0 20px;
+ }
+ }
+
+ &__description {
+ margin-bottom: 20px;
+ }
+
+ &__list {
+ margin-top: 40px;
+
+ &_item {
+ margin-bottom: 50px;
+ }
+
+ .btn-group-lg {
+ margin: 30px 0 0;
+ width: 100%;
+ text-align: center;
+
+ .btn {
+ float: none;
+ padding-left: 50px;
+ padding-right: 50px;
+ }
+ }
+ }
+}
diff --git a/src/components/keymap/add/keymap-add.component.ts b/src/components/keymap/add/keymap-add.component.ts
new file mode 100644
index 00000000..e2e82be8
--- /dev/null
+++ b/src/components/keymap/add/keymap-add.component.ts
@@ -0,0 +1,27 @@
+import { Component } from '@angular/core';
+import { Keymap } from '../../../config-serializer/config-items/Keymap';
+import { Keymaps } from '../../../config-serializer/config-items/Keymaps';
+import {DataProviderService} from '../../../services/data-provider.service';
+
+@Component({
+ selector: 'keymap-add',
+ template: require('./keymap-add.component.html'),
+ styles: [require('./keymap-add.component.scss')]
+})
+export class KeymapAddComponent {
+ private keymaps: Keymap[];
+ private keymapsAll: Keymap[];
+ private currentKeyboards: number;
+
+ constructor(data: DataProviderService) {
+ let json: any = data.getDefaultKeymaps();
+ let all: Keymaps = new Keymaps().fromJsObject(json.keymaps);
+ this.keymaps = all.elements;
+ this.keymapsAll = this.keymaps.slice(0);
+ this.currentKeyboards = this.keymaps.length;
+ }
+
+ filterKeyboards(value: string) {
+ this.keymaps = this.keymapsAll.filter((item: Keymap) => item.name.toLocaleLowerCase().indexOf(value) !== -1);
+ }
+}
diff --git a/src/components/keymap/index.ts b/src/components/keymap/index.ts
index 69136468..753c64f3 100644
--- a/src/components/keymap/index.ts
+++ b/src/components/keymap/index.ts
@@ -1,2 +1,3 @@
export * from './keymap.component';
export * from './keymap.routes';
+export * from './add/keymap-add.component';
diff --git a/src/components/keymap/keymap.component.ts b/src/components/keymap/keymap.component.ts
index 73e4b0de..5a245910 100644
--- a/src/components/keymap/keymap.component.ts
+++ b/src/components/keymap/keymap.component.ts
@@ -9,8 +9,7 @@ import { Subscription } from 'rxjs/Subscription';
@Component({
selector: 'keymap',
template: require('./keymap.component.html'),
- styles: [require('./keymap.component.scss')],
- providers: [UhkConfigurationService]
+ styles: [require('./keymap.component.scss')]
})
export class KeymapComponent implements OnInit {
private keymapId: number = 0;
diff --git a/src/components/keymap/keymap.routes.ts b/src/components/keymap/keymap.routes.ts
index 1d9e5771..549cb152 100644
--- a/src/components/keymap/keymap.routes.ts
+++ b/src/components/keymap/keymap.routes.ts
@@ -1,5 +1,6 @@
import { RouterConfig } from '@angular/router';
import { KeymapComponent } from './keymap.component';
+import { KeymapAddComponent } from './add/keymap-add.component';
export const keymapRoutes: RouterConfig = [
{
@@ -11,6 +12,10 @@ export const keymapRoutes: RouterConfig = [
path: 'keymap',
component: KeymapComponent
},
+ {
+ path: 'keymap/add',
+ component: KeymapAddComponent
+ },
{
path: 'keymap/:id',
component: KeymapComponent
diff --git a/src/components/side-menu/side-menu.component.html b/src/components/side-menu/side-menu.component.html
index c79f7d6a..dfbebeea 100644
--- a/src/components/side-menu/side-menu.component.html
+++ b/src/components/side-menu/side-menu.component.html
@@ -2,7 +2,7 @@