From 5c0993bbf804f5fbf58806f320b55fa7b88602b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=AD=90=E6=89=AC10293829?= Date: Fri, 18 Aug 2023 16:30:32 +0800 Subject: [PATCH 1/7] amd --- .../demo/pc/date-picker/demo-set.module.ts | 8 +++- .../date-picker/keyboard/demo.component.css | 4 ++ .../date-picker/keyboard/demo.component.html | 27 +++++++++++ .../pc/date-picker/keyboard/demo.component.ts | 22 +++++++++ .../pc/date-picker/keyboard/demo.module.ts | 13 ++++++ .../date-and-time/date-picker.html | 6 +-- .../date-and-time/date-picker.scss | 1 + .../date-and-time/date-picker.ts | 46 ++++++++++++++++++- .../date-and-time/date-time-select.ts | 1 + 9 files changed, 123 insertions(+), 5 deletions(-) create mode 100644 src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.css create mode 100644 src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.html create mode 100644 src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.ts create mode 100644 src/app/for-internal/demo/pc/date-picker/keyboard/demo.module.ts diff --git a/src/app/for-internal/demo/pc/date-picker/demo-set.module.ts b/src/app/for-internal/demo/pc/date-picker/demo-set.module.ts index 005eb2d421..744f3d6c97 100644 --- a/src/app/for-internal/demo/pc/date-picker/demo-set.module.ts +++ b/src/app/for-internal/demo/pc/date-picker/demo-set.module.ts @@ -14,6 +14,8 @@ import {DatePickerWeekStartComponent} from "./week-start/demo.component"; import {DatePickerWeekStartDemoModule} from "./week-start/demo.module"; import { DatePickerOptionsDemoModule } from "./options/demo.module"; import { DatePickerOptionsDemoComponent } from "./options/demo.component"; +import { DatePickerKeyboardDemoModule } from "./keyboard/demo.module"; +import { DatePickerKeyboardDemoComponent } from "./keyboard/demo.component"; export const routerConfig = [ { @@ -37,6 +39,9 @@ export const routerConfig = [ { path: 'options', component: DatePickerOptionsDemoComponent }, + { + path: 'keyboard', component: DatePickerKeyboardDemoComponent + }, ]; @NgModule({ @@ -48,7 +53,8 @@ export const routerConfig = [ DatePickerGrItemDemoModule, DatePickerMarkDemoModule, DatePickerWeekStartDemoModule, - DatePickerOptionsDemoModule + DatePickerOptionsDemoModule, + DatePickerKeyboardDemoModule ] }) export class DatePickerDemoModule { diff --git a/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.css b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.css new file mode 100644 index 0000000000..a1ae32a4e9 --- /dev/null +++ b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.css @@ -0,0 +1,4 @@ +.demo-cntr { + display: flex; + justify-content: space-between; +} \ No newline at end of file diff --git a/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.html b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.html new file mode 100644 index 0000000000..237989e62b --- /dev/null +++ b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.html @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file diff --git a/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.ts b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.ts new file mode 100644 index 0000000000..5fc5639c67 --- /dev/null +++ b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.component.ts @@ -0,0 +1,22 @@ +import { Component } from "@angular/core"; + +@Component({ + templateUrl: './demo.component.html', + styleUrls: ['demo.component.css', './../../assets/demo.common.css'] +}) +export class DatePickerKeyboardDemoComponent { + public date; + public date2; + public date3; + + public gr = ['date']; + + public dateChange($event) { + console.log('dateChange=>', $event) + } + // ==================================================================== + // ignore the following lines, they are not important to this demo + // ==================================================================== + summary: string = ''; + description: string = ''; +} diff --git a/src/app/for-internal/demo/pc/date-picker/keyboard/demo.module.ts b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.module.ts new file mode 100644 index 0000000000..4d0b60821a --- /dev/null +++ b/src/app/for-internal/demo/pc/date-picker/keyboard/demo.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; +import { JigsawButtonBarModule, JigsawButtonModule, JigsawDatePickerModule } from "jigsaw/public_api"; +import { JigsawDemoDescriptionModule } from "app/for-internal/description/demo-description"; +import { DatePickerKeyboardDemoComponent } from "./demo.component"; + +@NgModule({ + declarations: [DatePickerKeyboardDemoComponent], + exports: [DatePickerKeyboardDemoComponent], + imports: [JigsawDatePickerModule, JigsawDemoDescriptionModule, JigsawButtonBarModule] +}) +export class DatePickerKeyboardDemoModule { + +} diff --git a/src/jigsaw/pc-components/date-and-time/date-picker.html b/src/jigsaw/pc-components/date-and-time/date-picker.html index 74600fea13..372fea69c6 100644 --- a/src/jigsaw/pc-components/date-and-time/date-picker.html +++ b/src/jigsaw/pc-components/date-and-time/date-picker.html @@ -34,7 +34,7 @@ - - @@ -64,7 +64,7 @@ -
JigsawDatePicker), multi: true}, @@ -795,6 +798,47 @@ export class JigsawDatePicker extends AbstractJigsawComponent implements Control } } + selectedRowIndex: number = 0; + selectedColIndex: number = 0; + + public _$handleKeyDown($event) { + console.log($event) + console.log(this._$selectMode); + console.log(this._$dayList); + // this._$dayList[1][1].isSelected=true; + if ($event.key === 'ArrowUp') { + this._moveSelection(-1, 0, this._$dayList); + } else if ($event.key === 'ArrowDown') { + this._moveSelection(1, 0, this._$dayList); + } else if ($event.key === 'ArrowLeft') { + this._moveSelection(0, -1, this._$dayList); + } else if ($event.key === 'ArrowRight') { + this._moveSelection(0, 1, this._$dayList); + } + } + + private _moveSelection(rowChange: number, colChange: number, grid) { + const newRow = this.selectedRowIndex + rowChange; + const newCol = this.selectedColIndex + colChange; + + if ( + newRow >= 0 && + newRow < grid.length && + newCol >= 0 && + newCol < grid[0].length && + grid[newRow][newCol].isDisabled + ) { + grid[this.selectedRowIndex][this.selectedColIndex].isSelected = false; + this.selectedRowIndex = newRow; + this.selectedColIndex = newCol; + grid[this.selectedRowIndex][this.selectedColIndex].isSelected = true; + } + } + + private _getPreselectIndex(num, min, max) { + return Math.min(Math.max(num, min), max); + } + /** * @internal */ diff --git a/src/jigsaw/pc-components/date-and-time/date-time-select.ts b/src/jigsaw/pc-components/date-and-time/date-time-select.ts index 1dae64ff61..36f8d4f78a 100644 --- a/src/jigsaw/pc-components/date-and-time/date-time-select.ts +++ b/src/jigsaw/pc-components/date-and-time/date-time-select.ts @@ -291,6 +291,7 @@ export class JigsawDateTimeSelect extends AbstractJigsawComponent implements Con * @internal */ public _$closeComboSelect(cellType: DateTimeCellType) { + console.log(cellType); if (!this._comboSelect || !(this.gr == TimeGr.date || this.gr == TimeGr.month || this.gr == TimeGr.week)) { return; } From d39a7c4fbba0fab605c63a7a37b4ba0be734c8ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:15:16 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=80=E4=B8=8Bgit?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=EF=BC=8C=E4=B8=8E=E5=85=B6=E4=BB=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 217c1096db..b55a3074e8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,6 +41,13 @@ jobs: node build/scripts/generate-external-demo-info.js node build/scripts/generate-external-navigation-info.js ./node_modules/.bin/gulp build:novice-guide + + - run: + name: Merging master into current branch + command: | + git merge --no-edit master + git log -10 + # 下面编译formly的时候需要顺便编译jigsaw,所以这里不需要了 # - run: # name: Building jigsaw lib From cb33a4b6ee73342ad9216de5ac077a1f952d465c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:17:21 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=80=E4=B8=8Bgit?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=EF=BC=8C=E4=B8=8E=E5=85=B6=E4=BB=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b55a3074e8..f2afe0da00 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,16 +31,16 @@ jobs: node build/scripts/check-html-element-type.js node build/scripts/check-import-path.js node build/scripts/check-mark-for-check.js - node build/scripts/check-public-variables.js - node build/scripts/check-scss-in-demo.js - node build/scripts/check-tagname-selector.js - node build/scripts/extract-theme-variables.js - node build/scripts/check-extraction.js - node build/scripts/check-non-i18n-terms.js - node build/scripts/create-component-wings-theme.js - node build/scripts/generate-external-demo-info.js - node build/scripts/generate-external-navigation-info.js - ./node_modules/.bin/gulp build:novice-guide +# node build/scripts/check-public-variables.js +# node build/scripts/check-scss-in-demo.js +# node build/scripts/check-tagname-selector.js +# node build/scripts/extract-theme-variables.js +# node build/scripts/check-extraction.js +# node build/scripts/check-non-i18n-terms.js +# node build/scripts/create-component-wings-theme.js +# node build/scripts/generate-external-demo-info.js +# node build/scripts/generate-external-navigation-info.js +# ./node_modules/.bin/gulp build:novice-guide - run: name: Merging master into current branch From 916b37c8dc7cef402ad4b7035d8c7c5637c45dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:20:57 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=80=E4=B8=8Bgit?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=EF=BC=8C=E4=B8=8E=E5=85=B6=E4=BB=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f2afe0da00..9c85361cdb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,6 +24,15 @@ jobs: key: jigsaw-deps-v1-{{ .Branch }}-{{checksum "package-lock.json"}} paths: - ~/.npm + + - run: + name: Merging master into current branch + command: | + git config user.email "circleci@jigsaw.com" + git config user.name "circleci" + git merge --no-edit master + git log -10 + - run: name: Static Tests command: | @@ -42,12 +51,6 @@ jobs: # node build/scripts/generate-external-navigation-info.js # ./node_modules/.bin/gulp build:novice-guide - - run: - name: Merging master into current branch - command: | - git merge --no-edit master - git log -10 - # 下面编译formly的时候需要顺便编译jigsaw,所以这里不需要了 # - run: # name: Building jigsaw lib From 295a831826e7e7ea2c36dbe82371a84bfbcdd714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:24:06 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=80=E4=B8=8Bgit?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=EF=BC=8C=E4=B8=8E=E5=85=B6=E4=BB=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9c85361cdb..89b51f98e1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,13 @@ jobs: - image: cimg/node:10.16 steps: - checkout - + - run: + name: Merging master into current branch + command: | + git config user.email "circleci@jigsaw.com" + git config user.name "circleci" + git merge --no-edit master + git log -10 --oneline - restore_cache: # See the configuration reference documentation for more details on using restore_cache and save_cache steps # https://circleci.com/docs/2.0/configuration-reference/?section=reference#save_cache @@ -24,15 +30,6 @@ jobs: key: jigsaw-deps-v1-{{ .Branch }}-{{checksum "package-lock.json"}} paths: - ~/.npm - - - run: - name: Merging master into current branch - command: | - git config user.email "circleci@jigsaw.com" - git config user.name "circleci" - git merge --no-edit master - git log -10 - - run: name: Static Tests command: | @@ -40,16 +37,16 @@ jobs: node build/scripts/check-html-element-type.js node build/scripts/check-import-path.js node build/scripts/check-mark-for-check.js -# node build/scripts/check-public-variables.js -# node build/scripts/check-scss-in-demo.js -# node build/scripts/check-tagname-selector.js -# node build/scripts/extract-theme-variables.js -# node build/scripts/check-extraction.js -# node build/scripts/check-non-i18n-terms.js -# node build/scripts/create-component-wings-theme.js -# node build/scripts/generate-external-demo-info.js -# node build/scripts/generate-external-navigation-info.js -# ./node_modules/.bin/gulp build:novice-guide + node build/scripts/check-public-variables.js + node build/scripts/check-scss-in-demo.js + node build/scripts/check-tagname-selector.js + node build/scripts/extract-theme-variables.js + node build/scripts/check-extraction.js + node build/scripts/check-non-i18n-terms.js + node build/scripts/create-component-wings-theme.js + node build/scripts/generate-external-demo-info.js + node build/scripts/generate-external-navigation-info.js + ./node_modules/.bin/gulp build:novice-guide # 下面编译formly的时候需要顺便编译jigsaw,所以这里不需要了 # - run: From ee08ee70fd53649093aac6065448756a9102bea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:26:13 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=80=E4=B8=8Bgit?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=EF=BC=8C=E4=B8=8E=E5=85=B6=E4=BB=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 89b51f98e1..41c0bd11d8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,6 @@ jobs: git config user.email "circleci@jigsaw.com" git config user.name "circleci" git merge --no-edit master - git log -10 --oneline - restore_cache: # See the configuration reference documentation for more details on using restore_cache and save_cache steps # https://circleci.com/docs/2.0/configuration-reference/?section=reference#save_cache From 0f53eab5ec7339966c1b49bda448258e40c483a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=97=AD10045812?= Date: Fri, 25 Aug 2023 18:35:00 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=9B=9E=E9=80=80=E4=B8=8A=E9=9D=A2?= =?UTF-8?q?=E8=BF=99=E4=BA=9Bgit=E5=91=BD=E4=BB=A4=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .circleci/config.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 41c0bd11d8..217c1096db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,12 +11,7 @@ jobs: - image: cimg/node:10.16 steps: - checkout - - run: - name: Merging master into current branch - command: | - git config user.email "circleci@jigsaw.com" - git config user.name "circleci" - git merge --no-edit master + - restore_cache: # See the configuration reference documentation for more details on using restore_cache and save_cache steps # https://circleci.com/docs/2.0/configuration-reference/?section=reference#save_cache @@ -46,7 +41,6 @@ jobs: node build/scripts/generate-external-demo-info.js node build/scripts/generate-external-navigation-info.js ./node_modules/.bin/gulp build:novice-guide - # 下面编译formly的时候需要顺便编译jigsaw,所以这里不需要了 # - run: # name: Building jigsaw lib