mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 18:17:31 +08:00
chore(): sync next with master
chore(): sync next with master
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
## [5.5.5](https://github.com/ionic-team/ionic/compare/v5.5.4...v5.5.5) (2021-02-26)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **vue:** account for event name changes in vue 3.0.6+ ([#22980](https://github.com/ionic-team/ionic/issues/22980)) ([7dd2e6d](https://github.com/ionic-team/ionic/commit/7dd2e6d287b47cca758e1d4a71928dd3dc9ac24d)), closes [#22977](https://github.com/ionic-team/ionic/issues/22977)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [5.5.4](https://github.com/ionic-team/ionic/compare/v5.5.3...v5.5.4) (2021-02-04)
|
## [5.5.4](https://github.com/ionic-team/ionic/compare/v5.5.3...v5.5.4) (2021-02-04)
|
||||||
|
|
||||||
|
|
||||||
|
129
angular/package-lock.json
generated
129
angular/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "file:../core",
|
"@ionic/core": "5.5.4",
|
||||||
"tslib": "^1.9.3"
|
"tslib": "^1.9.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -42,43 +42,6 @@
|
|||||||
"zone.js": ">=0.8.26"
|
"zone.js": ">=0.8.26"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../core": {
|
|
||||||
"version": "5.5.3",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"ionicons": "^5.1.2",
|
|
||||||
"tslib": "^1.10.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"jest": "^26.4.1",
|
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@angular-devkit/core": {
|
"node_modules/@angular-devkit/core": {
|
||||||
"version": "8.3.17",
|
"version": "8.3.17",
|
||||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.17.tgz",
|
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.17.tgz",
|
||||||
@ -241,8 +204,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"resolved": "../core",
|
"version": "5.5.4",
|
||||||
"link": true
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
|
"dependencies": {
|
||||||
|
"ionicons": "^5.1.2",
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/plugin-commonjs": {
|
"node_modules/@rollup/plugin-commonjs": {
|
||||||
"version": "11.1.0",
|
"version": "11.1.0",
|
||||||
@ -322,6 +290,18 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@stencil/core": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-gU6+Yyd6O0KrCSS/O6j8KKqmRo+/Dcs2fI0+APCpbAWK+nqhwDISpdnSEfGDCLMoAC08XOZCycBRk2K1VGnEcg==",
|
||||||
|
"bin": {
|
||||||
|
"stencil": "bin/stencil"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.10.0",
|
||||||
|
"npm": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@szmarczak/http-timer": {
|
"node_modules/@szmarczak/http-timer": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
||||||
@ -945,7 +925,6 @@
|
|||||||
"anymatch": "^2.0.0",
|
"anymatch": "^2.0.0",
|
||||||
"async-each": "^1.0.1",
|
"async-each": "^1.0.1",
|
||||||
"braces": "^2.3.2",
|
"braces": "^2.3.2",
|
||||||
"fsevents": "^1.2.7",
|
|
||||||
"glob-parent": "^3.1.0",
|
"glob-parent": "^3.1.0",
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
"is-binary-path": "^1.0.0",
|
"is-binary-path": "^1.0.0",
|
||||||
@ -2047,6 +2026,14 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ionicons": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-0DUHTeoIrGSY+KNyNDaQW7v5+mDstjSkjx8dzT925kXKYBDrN3sGs8kUcSSQbTK132U4CbgDEZkn7FDUa9x8Qw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stencil/core": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-accessor-descriptor": {
|
"node_modules/is-accessor-descriptor": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
||||||
@ -2429,13 +2416,7 @@
|
|||||||
"integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==",
|
"integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"errno": "^0.1.1",
|
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"image-size": "~0.5.0",
|
|
||||||
"make-dir": "^2.1.0",
|
|
||||||
"mime": "^1.4.1",
|
|
||||||
"native-request": "^1.0.5",
|
|
||||||
"source-map": "~0.6.0",
|
|
||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@ -2818,7 +2799,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.1",
|
"anymatch": "~3.1.1",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
"fsevents": "~2.1.2",
|
|
||||||
"glob-parent": "~5.1.0",
|
"glob-parent": "~5.1.0",
|
||||||
"is-binary-path": "~2.1.0",
|
"is-binary-path": "~2.1.0",
|
||||||
"is-glob": "~4.0.1",
|
"is-glob": "~4.0.1",
|
||||||
@ -2959,9 +2939,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.7.5.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.7.5.tgz",
|
||||||
"integrity": "sha512-xQSM8uzhgtF6tTnTVEvOQThrcG3LPUP3T/4l4EukzDp0kbTY1QRDuXjiwtYzs9odKj9Bj/PccRG6viFfS7DmCQ==",
|
"integrity": "sha512-xQSM8uzhgtF6tTnTVEvOQThrcG3LPUP3T/4l4EukzDp0kbTY1QRDuXjiwtYzs9odKj9Bj/PccRG6viFfS7DmCQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"fsevents": "~2.1.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@ -5173,37 +5150,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "file:../core",
|
"version": "5.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"ionicons": "^5.1.2",
|
"ionicons": "^5.1.2",
|
||||||
"jest": "^26.4.1",
|
"tslib": "^1.10.0"
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslib": "^1.10.0",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@rollup/plugin-commonjs": {
|
"@rollup/plugin-commonjs": {
|
||||||
@ -5276,6 +5228,11 @@
|
|||||||
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@stencil/core": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-gU6+Yyd6O0KrCSS/O6j8KKqmRo+/Dcs2fI0+APCpbAWK+nqhwDISpdnSEfGDCLMoAC08XOZCycBRk2K1VGnEcg=="
|
||||||
|
},
|
||||||
"@szmarczak/http-timer": {
|
"@szmarczak/http-timer": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
||||||
@ -6690,6 +6647,14 @@
|
|||||||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ionicons": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-0DUHTeoIrGSY+KNyNDaQW7v5+mDstjSkjx8dzT925kXKYBDrN3sGs8kUcSSQbTK132U4CbgDEZkn7FDUa9x8Qw==",
|
||||||
|
"requires": {
|
||||||
|
"@stencil/core": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"is-accessor-descriptor": {
|
"is-accessor-descriptor": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Angular specific wrappers for @ionic/core",
|
"description": "Angular specific wrappers for @ionic/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"validate": "npm i && npm run lint && npm run test && npm run build"
|
"validate": "npm i && npm run lint && npm run test && npm run build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"tslib": "^1.9.3"
|
"tslib": "^1.9.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -643,8 +643,8 @@ export class IonRow {
|
|||||||
}
|
}
|
||||||
export declare interface IonSearchbar extends Components.IonSearchbar {
|
export declare interface IonSearchbar extends Components.IonSearchbar {
|
||||||
}
|
}
|
||||||
@ProxyCmp({ inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "spellcheck", "type", "value"], "methods": ["setFocus", "getInputElement"] })
|
@ProxyCmp({ inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"], "methods": ["setFocus", "getInputElement"] })
|
||||||
@Component({ selector: "ion-searchbar", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "spellcheck", "type", "value"] })
|
@Component({ selector: "ion-searchbar", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] })
|
||||||
export class IonSearchbar {
|
export class IonSearchbar {
|
||||||
ionInput!: EventEmitter<CustomEvent>;
|
ionInput!: EventEmitter<CustomEvent>;
|
||||||
ionChange!: EventEmitter<CustomEvent>;
|
ionChange!: EventEmitter<CustomEvent>;
|
||||||
|
@ -987,6 +987,7 @@ ion-searchbar,prop,mode,"ios" | "md",undefined,false,false
|
|||||||
ion-searchbar,prop,placeholder,string,'Search',false,false
|
ion-searchbar,prop,placeholder,string,'Search',false,false
|
||||||
ion-searchbar,prop,searchIcon,string | undefined,undefined,false,false
|
ion-searchbar,prop,searchIcon,string | undefined,undefined,false,false
|
||||||
ion-searchbar,prop,showCancelButton,"always" | "focus" | "never",'never',false,false
|
ion-searchbar,prop,showCancelButton,"always" | "focus" | "never",'never',false,false
|
||||||
|
ion-searchbar,prop,showClearButton,"always" | "focus" | "never",'focus',false,false
|
||||||
ion-searchbar,prop,spellcheck,boolean,false,false,false
|
ion-searchbar,prop,spellcheck,boolean,false,false,false
|
||||||
ion-searchbar,prop,type,"email" | "number" | "password" | "search" | "tel" | "text" | "url",'search',false,false
|
ion-searchbar,prop,type,"email" | "number" | "password" | "search" | "tel" | "text" | "url",'search',false,false
|
||||||
ion-searchbar,prop,value,null | string | undefined,'',false,false
|
ion-searchbar,prop,value,null | string | undefined,'',false,false
|
||||||
|
71
core/package-lock.json
generated
71
core/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.4.0",
|
"@stencil/core": "^2.4.0",
|
||||||
@ -18,7 +18,7 @@
|
|||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
"@rollup/plugin-virtual": "^2.0.3",
|
||||||
"@stencil/sass": "1.3.2",
|
"@stencil/sass": "1.3.2",
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
"@stencil/vue-output-target": "^0.4.1",
|
||||||
"@types/jest": "^26.0.20",
|
"@types/jest": "^26.0.20",
|
||||||
"@types/node": "^14.6.0",
|
"@types/node": "^14.6.0",
|
||||||
"@types/puppeteer": "5.4.3",
|
"@types/puppeteer": "5.4.3",
|
||||||
@ -906,7 +906,6 @@
|
|||||||
"jest-resolve": "^26.6.2",
|
"jest-resolve": "^26.6.2",
|
||||||
"jest-util": "^26.6.2",
|
"jest-util": "^26.6.2",
|
||||||
"jest-worker": "^26.6.2",
|
"jest-worker": "^26.6.2",
|
||||||
"node-notifier": "^8.0.0",
|
|
||||||
"slash": "^3.0.0",
|
"slash": "^3.0.0",
|
||||||
"source-map": "^0.6.0",
|
"source-map": "^0.6.0",
|
||||||
"string-length": "^4.0.1",
|
"string-length": "^4.0.1",
|
||||||
@ -1014,10 +1013,31 @@
|
|||||||
"integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
|
"integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@bcoe/v8-coverage": "^0.2.3",
|
||||||
"@jest/console": "^26.6.2",
|
"@jest/console": "^26.6.2",
|
||||||
|
"@jest/test-result": "^26.3.0",
|
||||||
|
"@jest/transform": "^26.3.0",
|
||||||
"@jest/types": "^26.6.2",
|
"@jest/types": "^26.6.2",
|
||||||
"@types/istanbul-lib-coverage": "^2.0.0",
|
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||||
"collect-v8-coverage": "^1.0.0"
|
"chalk": "^4.0.0",
|
||||||
|
"collect-v8-coverage": "^1.0.0",
|
||||||
|
"exit": "^0.1.2",
|
||||||
|
"glob": "^7.1.2",
|
||||||
|
"graceful-fs": "^4.2.4",
|
||||||
|
"istanbul-lib-coverage": "^3.0.0",
|
||||||
|
"istanbul-lib-instrument": "^4.0.3",
|
||||||
|
"istanbul-lib-report": "^3.0.0",
|
||||||
|
"istanbul-lib-source-maps": "^4.0.0",
|
||||||
|
"istanbul-reports": "^3.0.2",
|
||||||
|
"jest-haste-map": "^26.3.0",
|
||||||
|
"jest-resolve": "^26.4.0",
|
||||||
|
"jest-util": "^26.3.0",
|
||||||
|
"jest-worker": "^26.3.0",
|
||||||
|
"slash": "^3.0.0",
|
||||||
|
"source-map": "^0.6.0",
|
||||||
|
"string-length": "^4.0.1",
|
||||||
|
"terminal-link": "^2.0.0",
|
||||||
|
"v8-to-istanbul": "^5.0.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 10.14.2"
|
"node": ">= 10.14.2"
|
||||||
@ -1337,9 +1357,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@stencil/vue-output-target": {
|
"node_modules/@stencil/vue-output-target": {
|
||||||
"version": "0.3.0",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.4.1.tgz",
|
||||||
"integrity": "sha512-uiBe+o7M+NU0gMRgJfrlepxLPBXK0lX4TL2jIPwhBfxYw++pbtg7BLRO2HxE69GR0nxw+7Uf3uJzOGbMsl+ZUQ==",
|
"integrity": "sha512-B4urIlIb+I95NkKeCt3Ygpor1D0x5RMezuFyCFp6DYXshUaT1TbiJcW1FgA+gfwlquNzT1AMvEbi96YLnsOg3w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@stencil/core": ">=1.8.0"
|
"@stencil/core": ">=1.8.0"
|
||||||
@ -2582,7 +2602,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.1",
|
"anymatch": "~3.1.1",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
"fsevents": "~2.1.2",
|
|
||||||
"glob-parent": "~5.1.0",
|
"glob-parent": "~5.1.0",
|
||||||
"is-binary-path": "~2.1.0",
|
"is-binary-path": "~2.1.0",
|
||||||
"is-glob": "~4.0.1",
|
"is-glob": "~4.0.1",
|
||||||
@ -4227,7 +4246,6 @@
|
|||||||
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/yauzl": "^2.9.1",
|
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"get-stream": "^5.1.0",
|
"get-stream": "^5.1.0",
|
||||||
"yauzl": "^2.10.0"
|
"yauzl": "^2.10.0"
|
||||||
@ -6724,7 +6742,6 @@
|
|||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"anymatch": "^3.0.3",
|
"anymatch": "^3.0.3",
|
||||||
"fb-watchman": "^2.0.0",
|
"fb-watchman": "^2.0.0",
|
||||||
"fsevents": "^2.1.2",
|
|
||||||
"graceful-fs": "^4.2.4",
|
"graceful-fs": "^4.2.4",
|
||||||
"jest-regex-util": "^26.0.0",
|
"jest-regex-util": "^26.0.0",
|
||||||
"jest-serializer": "^26.6.2",
|
"jest-serializer": "^26.6.2",
|
||||||
@ -10977,9 +10994,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz",
|
||||||
"integrity": "sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==",
|
"integrity": "sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"fsevents": "~2.1.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@ -14596,10 +14610,31 @@
|
|||||||
"integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
|
"integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"@bcoe/v8-coverage": "^0.2.3",
|
||||||
"@jest/console": "^26.6.2",
|
"@jest/console": "^26.6.2",
|
||||||
|
"@jest/test-result": "^26.3.0",
|
||||||
|
"@jest/transform": "^26.3.0",
|
||||||
"@jest/types": "^26.6.2",
|
"@jest/types": "^26.6.2",
|
||||||
"@types/istanbul-lib-coverage": "^2.0.0",
|
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||||
"collect-v8-coverage": "^1.0.0"
|
"chalk": "^4.0.0",
|
||||||
|
"collect-v8-coverage": "^1.0.0",
|
||||||
|
"exit": "^0.1.2",
|
||||||
|
"glob": "^7.1.2",
|
||||||
|
"graceful-fs": "^4.2.4",
|
||||||
|
"istanbul-lib-coverage": "^3.0.0",
|
||||||
|
"istanbul-lib-instrument": "^4.0.3",
|
||||||
|
"istanbul-lib-report": "^3.0.0",
|
||||||
|
"istanbul-lib-source-maps": "^4.0.0",
|
||||||
|
"istanbul-reports": "^3.0.2",
|
||||||
|
"jest-haste-map": "^26.3.0",
|
||||||
|
"jest-resolve": "^26.4.0",
|
||||||
|
"jest-util": "^26.3.0",
|
||||||
|
"jest-worker": "^26.3.0",
|
||||||
|
"slash": "^3.0.0",
|
||||||
|
"source-map": "^0.6.0",
|
||||||
|
"string-length": "^4.0.1",
|
||||||
|
"terminal-link": "^2.0.0",
|
||||||
|
"v8-to-istanbul": "^5.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jest/types": {
|
"@jest/types": {
|
||||||
@ -14852,9 +14887,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@stencil/vue-output-target": {
|
"@stencil/vue-output-target": {
|
||||||
"version": "0.3.0",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.4.1.tgz",
|
||||||
"integrity": "sha512-uiBe+o7M+NU0gMRgJfrlepxLPBXK0lX4TL2jIPwhBfxYw++pbtg7BLRO2HxE69GR0nxw+7Uf3uJzOGbMsl+ZUQ==",
|
"integrity": "sha512-B4urIlIb+I95NkKeCt3Ygpor1D0x5RMezuFyCFp6DYXshUaT1TbiJcW1FgA+gfwlquNzT1AMvEbi96YLnsOg3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@stylelint/postcss-css-in-js": {
|
"@stylelint/postcss-css-in-js": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Base components for Ionic",
|
"description": "Base components for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -40,7 +40,7 @@
|
|||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
"@rollup/plugin-virtual": "^2.0.3",
|
||||||
"@stencil/sass": "1.3.2",
|
"@stencil/sass": "1.3.2",
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
"@stencil/vue-output-target": "^0.4.1",
|
||||||
"@types/jest": "^26.0.20",
|
"@types/jest": "^26.0.20",
|
||||||
"@types/node": "^14.6.0",
|
"@types/node": "^14.6.0",
|
||||||
"@types/puppeteer": "5.4.3",
|
"@types/puppeteer": "5.4.3",
|
||||||
|
8
core/src/components.d.ts
vendored
8
core/src/components.d.ts
vendored
@ -2034,6 +2034,10 @@ export namespace Components {
|
|||||||
* Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state.
|
* Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state.
|
||||||
*/
|
*/
|
||||||
"showCancelButton": 'never' | 'focus' | 'always';
|
"showCancelButton": 'never' | 'focus' | 'always';
|
||||||
|
/**
|
||||||
|
* Sets the behavior for the clear button. Defaults to `"focus"`. Setting to `"focus"` shows the clear button on focus if the input is not empty. Setting to `"never"` hides the clear button. Setting to `"always"` shows the clear button regardless of focus state, but only if the input is not empty.
|
||||||
|
*/
|
||||||
|
"showClearButton": 'never' | 'focus' | 'always';
|
||||||
/**
|
/**
|
||||||
* If `true`, enable spellcheck on the input.
|
* If `true`, enable spellcheck on the input.
|
||||||
*/
|
*/
|
||||||
@ -5336,6 +5340,10 @@ declare namespace LocalJSX {
|
|||||||
* Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state.
|
* Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state.
|
||||||
*/
|
*/
|
||||||
"showCancelButton"?: 'never' | 'focus' | 'always';
|
"showCancelButton"?: 'never' | 'focus' | 'always';
|
||||||
|
/**
|
||||||
|
* Sets the behavior for the clear button. Defaults to `"focus"`. Setting to `"focus"` shows the clear button on focus if the input is not empty. Setting to `"never"` hides the clear button. Setting to `"always"` shows the clear button regardless of focus state, but only if the input is not empty.
|
||||||
|
*/
|
||||||
|
"showClearButton"?: 'never' | 'focus' | 'always';
|
||||||
/**
|
/**
|
||||||
* If `true`, enable spellcheck on the input.
|
* If `true`, enable spellcheck on the input.
|
||||||
*/
|
*/
|
||||||
|
@ -120,7 +120,7 @@ export class Header implements ComponentInterface {
|
|||||||
* as well as progressively showing/hiding the main header
|
* as well as progressively showing/hiding the main header
|
||||||
* border as the top-most toolbar collapses or expands.
|
* border as the top-most toolbar collapses or expands.
|
||||||
*/
|
*/
|
||||||
const toolbarIntersection = (ev: any) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex); };
|
const toolbarIntersection = (ev: any) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex, this.scrollEl!); };
|
||||||
|
|
||||||
this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] });
|
this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] });
|
||||||
this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);
|
this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);
|
||||||
|
@ -72,7 +72,7 @@ export const setToolbarBackgroundOpacity = (toolbar: ToolbarIndex, opacity?: num
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleToolbarBorderIntersection = (ev: any, mainHeaderIndex: HeaderIndex) => {
|
const handleToolbarBorderIntersection = (ev: any, mainHeaderIndex: HeaderIndex, scrollTop: number) => {
|
||||||
if (!ev[0].isIntersecting) { return; }
|
if (!ev[0].isIntersecting) { return; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -80,8 +80,13 @@ const handleToolbarBorderIntersection = (ev: any, mainHeaderIndex: HeaderIndex)
|
|||||||
* does not always reset the scrollTop position to 0 when letting go. It will
|
* does not always reset the scrollTop position to 0 when letting go. It will
|
||||||
* set to 1 once the rubber band effect has ended. This causes the background to
|
* set to 1 once the rubber band effect has ended. This causes the background to
|
||||||
* appear slightly on certain app setups.
|
* appear slightly on certain app setups.
|
||||||
|
*
|
||||||
|
* Additionally, we check if user is rubber banding (scrolling is negative)
|
||||||
|
* as this can mean they are using pull to refresh. Once the refresher starts,
|
||||||
|
* the content is transformed which can cause the intersection observer to erroneously
|
||||||
|
* fire here as well.
|
||||||
*/
|
*/
|
||||||
const scale = (ev[0].intersectionRatio > 0.9) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;
|
const scale = (ev[0].intersectionRatio > 0.9 || scrollTop <= 0) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;
|
||||||
|
|
||||||
mainHeaderIndex.toolbars.forEach(toolbar => {
|
mainHeaderIndex.toolbars.forEach(toolbar => {
|
||||||
setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale);
|
setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale);
|
||||||
@ -93,9 +98,10 @@ const handleToolbarBorderIntersection = (ev: any, mainHeaderIndex: HeaderIndex)
|
|||||||
* and show the primary toolbar content. If the toolbars are not intersecting,
|
* and show the primary toolbar content. If the toolbars are not intersecting,
|
||||||
* hide the primary toolbar content and show the scrollable toolbar content
|
* hide the primary toolbar content and show the scrollable toolbar content
|
||||||
*/
|
*/
|
||||||
export const handleToolbarIntersection = (ev: any, mainHeaderIndex: HeaderIndex, scrollHeaderIndex: HeaderIndex) => {
|
export const handleToolbarIntersection = (ev: any, mainHeaderIndex: HeaderIndex, scrollHeaderIndex: HeaderIndex, scrollEl: HTMLElement) => {
|
||||||
writeTask(() => {
|
writeTask(() => {
|
||||||
handleToolbarBorderIntersection(ev, mainHeaderIndex);
|
const scrollTop = scrollEl.scrollTop;
|
||||||
|
handleToolbarBorderIntersection(ev, mainHeaderIndex, scrollTop);
|
||||||
|
|
||||||
const event = ev[0];
|
const event = ev[0];
|
||||||
|
|
||||||
@ -127,7 +133,7 @@ export const handleToolbarIntersection = (ev: any, mainHeaderIndex: HeaderIndex,
|
|||||||
|
|
||||||
const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);
|
const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);
|
||||||
|
|
||||||
if (hasValidIntersection) {
|
if (hasValidIntersection && scrollTop > 0) {
|
||||||
setHeaderActive(mainHeaderIndex);
|
setHeaderActive(mainHeaderIndex);
|
||||||
setHeaderActive(scrollHeaderIndex, false);
|
setHeaderActive(scrollHeaderIndex, false);
|
||||||
setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]);
|
setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]);
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
* @prop --progress-background: Color of the progress bar
|
* @prop --progress-background: Color of the progress bar
|
||||||
* @prop --buffer-background: Color of the buffer bar
|
* @prop --buffer-background: Color of the buffer bar
|
||||||
*/
|
*/
|
||||||
--background: #{ion-color(primary, base, 0.2)};
|
--background: #{ion-color(primary, base, 0.3)};
|
||||||
--progress-background: #{ion-color(primary, base)};
|
--progress-background: #{ion-color(primary, base)};
|
||||||
--buffer-background: var(--background);
|
--buffer-background: var(--background);
|
||||||
display: block;
|
display: block;
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
:host(.ion-color) {
|
:host(.ion-color) {
|
||||||
--progress-background: #{current-color(base)};
|
--progress-background: #{current-color(base)};
|
||||||
--buffer-background: #{current-color(base, 0.2)};
|
--buffer-background: #{current-color(base, 0.3)};
|
||||||
}
|
}
|
||||||
|
|
||||||
// indeterminate has no progress-buffer-bar, so it will be added to the host
|
// indeterminate has no progress-buffer-bar, so it will be added to the host
|
||||||
@ -39,22 +39,34 @@
|
|||||||
.progress-indeterminate,
|
.progress-indeterminate,
|
||||||
.indeterminate-bar-primary,
|
.indeterminate-bar-primary,
|
||||||
.indeterminate-bar-secondary,
|
.indeterminate-bar-secondary,
|
||||||
.progress-buffer-bar,
|
.progress-buffer-bar {
|
||||||
.progress-buffer-bar:before,
|
|
||||||
.buffer-circles {
|
|
||||||
@include position(0, 0, 0, 0);
|
@include position(0, 0, 0, 0);
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.buffer-circles-container,
|
||||||
|
.buffer-circles {
|
||||||
|
@include position(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extend a bit to overflow. The size of animated distance.
|
||||||
|
.buffer-circles {
|
||||||
|
/* stylelint-disable property-blacklist */
|
||||||
|
right: -10px;
|
||||||
|
left: -10px;
|
||||||
|
/* stylelint-enable property-blacklist */
|
||||||
|
}
|
||||||
|
|
||||||
// Determinate progress bar
|
// Determinate progress bar
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
.progress,
|
.progress,
|
||||||
.progress-buffer-bar {
|
.progress-buffer-bar,
|
||||||
|
.buffer-circles-container {
|
||||||
/* stylelint-disable-next-line property-blacklist */
|
/* stylelint-disable-next-line property-blacklist */
|
||||||
transform-origin: left top;
|
transform-origin: left top;
|
||||||
|
|
||||||
@ -72,17 +84,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.progress-buffer-bar {
|
.progress-buffer-bar {
|
||||||
// It's currently here because --buffer-background has an alpha
|
background: var(--buffer-background);
|
||||||
// Otherwise the buffer circles would be seen through
|
|
||||||
background: #fff;
|
|
||||||
|
|
||||||
z-index: 1; // Make it behind the progress
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
&:before {
|
.buffer-circles-container {
|
||||||
background: var(--buffer-background);
|
overflow: hidden;
|
||||||
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MD based animation on indeterminate type
|
// MD based animation on indeterminate type
|
||||||
@ -109,7 +117,7 @@
|
|||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: -54.888891%;
|
left: -54.888891%;
|
||||||
/* stylelint-enable property-blacklist */
|
/* stylelint-enable property-blacklist */
|
||||||
|
|
||||||
animation: secondary-indeterminate-translate 2s infinite linear;
|
animation: secondary-indeterminate-translate 2s infinite linear;
|
||||||
@ -136,18 +144,7 @@
|
|||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
:host(.progress-bar-reversed) {
|
:host(.progress-bar-reversed) {
|
||||||
.progress,
|
transform: scaleX(-1);
|
||||||
.progress-buffer-bar {
|
|
||||||
/* stylelint-disable-next-line property-blacklist */
|
|
||||||
transform-origin: right top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buffer-circles,
|
|
||||||
.indeterminate-bar-primary,
|
|
||||||
.indeterminate-bar-secondary,
|
|
||||||
.progress-indeterminate {
|
|
||||||
animation-direction: reverse;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Progress paused
|
// Progress paused
|
||||||
|
@ -89,7 +89,18 @@ const renderProgress = (value: number, buffer: number) => {
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
<div class="progress" style={{ transform: `scaleX(${finalValue})` }}></div>,
|
<div class="progress" style={{ transform: `scaleX(${finalValue})` }}></div>,
|
||||||
finalBuffer !== 1 && <div class="buffer-circles"></div>,
|
/**
|
||||||
|
* Buffer circles with two container to move
|
||||||
|
* the circles behind the buffer progress
|
||||||
|
* with respecting the animation.
|
||||||
|
* When finalBuffer === 1, we use display: none
|
||||||
|
* instead of removing the element to avoid flickering.
|
||||||
|
*/
|
||||||
|
<div class={{ 'buffer-circles-container': true, 'ion-hide': finalBuffer === 1 }} style={{ transform: `translateX(${finalBuffer * 100}%)` }}>
|
||||||
|
<div class="buffer-circles-container" style={{ transform: `translateX(-${finalBuffer * 100}%)` }}>
|
||||||
|
<div class="buffer-circles"></div>
|
||||||
|
</div>
|
||||||
|
</div>,
|
||||||
<div class="progress-buffer-bar" style={{ transform: `scaleX(${finalBuffer})` }}></div>,
|
<div class="progress-buffer-bar" style={{ transform: `scaleX(${finalBuffer})` }}></div>,
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet">
|
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet">
|
||||||
<script src="../../../../../scripts/testing/scripts.js"></script>
|
<script src="../../../../../scripts/testing/scripts.js"></script>
|
||||||
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
|
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
|
||||||
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script> <style>
|
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
.custom-bar-background {
|
.custom-bar-background {
|
||||||
--buffer-background: red;
|
--buffer-background: red;
|
||||||
}
|
}
|
||||||
@ -126,13 +128,26 @@
|
|||||||
</ion-list-header>
|
</ion-list-header>
|
||||||
<ion-progress-bar color="tertiary" buffer="0"></ion-progress-bar>
|
<ion-progress-bar color="tertiary" buffer="0"></ion-progress-bar>
|
||||||
|
|
||||||
|
<ion-list-header>
|
||||||
|
<ion-label>
|
||||||
|
Buffer (change buffer with slider)
|
||||||
|
</ion-label>
|
||||||
|
</ion-list-header>
|
||||||
|
<ion-progress-bar class="progressBarBuffer" value="0.20" buffer="0.4"></ion-progress-bar>
|
||||||
|
<ion-progress-bar class="progressBarBuffer" value="0.20" buffer="0.4" reversed="true"></ion-progress-bar>
|
||||||
|
|
||||||
|
<ion-item>
|
||||||
|
<ion-range pin="true" value="0" id="progressValueBuffer">
|
||||||
|
<ion-label slot="start">0</ion-label>
|
||||||
|
<ion-label slot="end">100</ion-label>
|
||||||
|
</ion-range>
|
||||||
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
</ion-app>
|
</ion-app>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Progress Bar Value
|
||||||
const progressValue = document.getElementById('progressValue');
|
const progressValue = document.getElementById('progressValue');
|
||||||
const progressBar = document.getElementById('progressBar');
|
const progressBar = document.getElementById('progressBar');
|
||||||
|
|
||||||
@ -140,6 +155,13 @@
|
|||||||
progressBar.value = ev.detail.value / 100;
|
progressBar.value = ev.detail.value / 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Progress Bar Buffer
|
||||||
|
const progressValueBuffer = document.getElementById('progressValueBuffer');
|
||||||
|
const progressBarBuffer = document.querySelectorAll('.progressBarBuffer');
|
||||||
|
|
||||||
|
progressValueBuffer.addEventListener('ionChange', function (ev) {
|
||||||
|
progressBarBuffer.forEach(ele => ele.buffer = ev.detail.value / 100);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
@ -328,6 +328,7 @@ export default defineComponent({
|
|||||||
| `placeholder` | `placeholder` | Set the input's placeholder. `placeholder` can accept either plaintext or HTML as a string. To display characters normally reserved for HTML, they must be escaped. For example `<Ionic>` would become `<Ionic>` For more information: [Security Documentation](https://ionicframework.com/docs/faq/security) | `string` | `'Search'` |
|
| `placeholder` | `placeholder` | Set the input's placeholder. `placeholder` can accept either plaintext or HTML as a string. To display characters normally reserved for HTML, they must be escaped. For example `<Ionic>` would become `<Ionic>` For more information: [Security Documentation](https://ionicframework.com/docs/faq/security) | `string` | `'Search'` |
|
||||||
| `searchIcon` | `search-icon` | The icon to use as the search icon. Defaults to `"search-outline"` in `ios` mode and `"search-sharp"` in `md` mode. | `string \| undefined` | `undefined` |
|
| `searchIcon` | `search-icon` | The icon to use as the search icon. Defaults to `"search-outline"` in `ios` mode and `"search-sharp"` in `md` mode. | `string \| undefined` | `undefined` |
|
||||||
| `showCancelButton` | `show-cancel-button` | Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state. | `"always" \| "focus" \| "never"` | `'never'` |
|
| `showCancelButton` | `show-cancel-button` | Sets the behavior for the cancel button. Defaults to `"never"`. Setting to `"focus"` shows the cancel button on focus. Setting to `"never"` hides the cancel button. Setting to `"always"` shows the cancel button regardless of focus state. | `"always" \| "focus" \| "never"` | `'never'` |
|
||||||
|
| `showClearButton` | `show-clear-button` | Sets the behavior for the clear button. Defaults to `"focus"`. Setting to `"focus"` shows the clear button on focus if the input is not empty. Setting to `"never"` hides the clear button. Setting to `"always"` shows the clear button regardless of focus state, but only if the input is not empty. | `"always" \| "focus" \| "never"` | `'focus'` |
|
||||||
| `spellcheck` | `spellcheck` | If `true`, enable spellcheck on the input. | `boolean` | `false` |
|
| `spellcheck` | `spellcheck` | If `true`, enable spellcheck on the input. | `boolean` | `false` |
|
||||||
| `type` | `type` | Set the type of the input. | `"email" \| "number" \| "password" \| "search" \| "tel" \| "text" \| "url"` | `'search'` |
|
| `type` | `type` | Set the type of the input. | `"email" \| "number" \| "password" \| "search" \| "tel" \| "text" \| "url"` | `'search'` |
|
||||||
| `value` | `value` | the value of the searchbar. | `null \| string \| undefined` | `''` |
|
| `value` | `value` | the value of the searchbar. | `null \| string \| undefined` | `''` |
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
appearance: none;
|
appearance: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
:host(.searchbar-has-value.searchbar-has-focus) .searchbar-clear-button {
|
:host(.searchbar-has-value.searchbar-should-show-clear) .searchbar-clear-button {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,6 +121,16 @@ export class Searchbar implements ComponentInterface {
|
|||||||
*/
|
*/
|
||||||
@Prop() showCancelButton: 'never' | 'focus' | 'always' = 'never';
|
@Prop() showCancelButton: 'never' | 'focus' | 'always' = 'never';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the behavior for the clear button. Defaults to `"focus"`.
|
||||||
|
* Setting to `"focus"` shows the clear button on focus if the
|
||||||
|
* input is not empty.
|
||||||
|
* Setting to `"never"` hides the clear button.
|
||||||
|
* Setting to `"always"` shows the clear button regardless
|
||||||
|
* of focus state, but only if the input is not empty.
|
||||||
|
*/
|
||||||
|
@Prop() showClearButton: 'never' | 'focus' | 'always' = 'focus';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If `true`, enable spellcheck on the input.
|
* If `true`, enable spellcheck on the input.
|
||||||
*/
|
*/
|
||||||
@ -231,7 +241,7 @@ export class Searchbar implements ComponentInterface {
|
|||||||
/**
|
/**
|
||||||
* Clears the input field and triggers the control change.
|
* Clears the input field and triggers the control change.
|
||||||
*/
|
*/
|
||||||
private onClearInput = (ev?: Event) => {
|
private onClearInput = (ev?: Event, shouldFocus?: boolean) => {
|
||||||
this.ionClear.emit();
|
this.ionClear.emit();
|
||||||
|
|
||||||
if (ev) {
|
if (ev) {
|
||||||
@ -246,6 +256,16 @@ export class Searchbar implements ComponentInterface {
|
|||||||
if (value !== '') {
|
if (value !== '') {
|
||||||
this.value = '';
|
this.value = '';
|
||||||
this.ionInput.emit();
|
this.ionInput.emit();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When tapping clear button
|
||||||
|
* ensure input is focused after
|
||||||
|
* clearing input so users
|
||||||
|
* can quickly start typing.
|
||||||
|
*/
|
||||||
|
if (shouldFocus && !this.focused) {
|
||||||
|
this.setFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, 16 * 4);
|
}, 16 * 4);
|
||||||
}
|
}
|
||||||
@ -419,6 +439,20 @@ export class Searchbar implements ComponentInterface {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines whether or not the clear button should be visible onscreen.
|
||||||
|
* Clear button should be shown if one of two conditions applies:
|
||||||
|
* 1. `showClearButton` is set to `always`.
|
||||||
|
* 2. `showClearButton` is set to `focus`, and the searchbar has been focused.
|
||||||
|
*/
|
||||||
|
private shouldShowClearButton(): boolean {
|
||||||
|
if ((this.showClearButton === 'never') || (this.showClearButton === 'focus' && !this.focused)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { cancelButtonText } = this;
|
const { cancelButtonText } = this;
|
||||||
const animated = this.animated && config.getBoolean('animated', true);
|
const animated = this.animated && config.getBoolean('animated', true);
|
||||||
@ -460,6 +494,7 @@ export class Searchbar implements ComponentInterface {
|
|||||||
'searchbar-has-value': this.hasValue(),
|
'searchbar-has-value': this.hasValue(),
|
||||||
'searchbar-left-aligned': this.shouldAlignLeft,
|
'searchbar-left-aligned': this.shouldAlignLeft,
|
||||||
'searchbar-has-focus': this.focused,
|
'searchbar-has-focus': this.focused,
|
||||||
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
||||||
'searchbar-should-show-cancel': this.shouldShowCancelButton()
|
'searchbar-should-show-cancel': this.shouldShowCancelButton()
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
@ -492,8 +527,8 @@ export class Searchbar implements ComponentInterface {
|
|||||||
type="button"
|
type="button"
|
||||||
no-blur
|
no-blur
|
||||||
class="searchbar-clear-button"
|
class="searchbar-clear-button"
|
||||||
onMouseDown={this.onClearInput}
|
onMouseDown={ev => this.onClearInput(ev, true)}
|
||||||
onTouchStart={this.onClearInput}
|
onTouchStart={ev => this.onClearInput(ev, true)}
|
||||||
>
|
>
|
||||||
<ion-icon aria-hidden="true" mode={mode} icon={clearIcon} lazy={false} class="searchbar-clear-icon"></ion-icon>
|
<ion-icon aria-hidden="true" mode={mode} icon={clearIcon} lazy={false} class="searchbar-clear-icon"></ion-icon>
|
||||||
</button>
|
</button>
|
||||||
|
@ -49,6 +49,14 @@
|
|||||||
<ion-searchbar id="noCancel" value="after view" autocorrect="off" autocomplete="off" spellcheck="true" type="text" show-cancel-button="focus">
|
<ion-searchbar id="noCancel" value="after view" autocorrect="off" autocomplete="off" spellcheck="true" type="text" show-cancel-button="focus">
|
||||||
</ion-searchbar>
|
</ion-searchbar>
|
||||||
|
|
||||||
|
<h5 class="ion-padding-start ion-padding-top"> Search - No Clear Button </h5>
|
||||||
|
<ion-searchbar id="noCancel" value="after view" type="text" show-clear-button="never">
|
||||||
|
</ion-searchbar>
|
||||||
|
|
||||||
|
<h5 class="ion-padding-start ion-padding-top"> Search - Always Show Clear Button </h5>
|
||||||
|
<ion-searchbar id="noCancel" value="after view" type="text" show-clear-button="always">
|
||||||
|
</ion-searchbar>
|
||||||
|
|
||||||
<h5 class="ion-padding-start ion-padding-top"> Search - Input mode set to numeric</h5>
|
<h5 class="ion-padding-start ion-padding-top"> Search - Input mode set to numeric</h5>
|
||||||
<ion-searchbar id="noCancel" value="after view" inputmode="numeric" autocorrect="off" autocomplete="off" spellcheck="true" type="text" show-cancel-button="focus">
|
<ion-searchbar id="noCancel" value="after view" inputmode="numeric" autocorrect="off" autocomplete="off" spellcheck="true" type="text" show-cancel-button="focus">
|
||||||
</ion-searchbar>
|
</ion-searchbar>
|
||||||
|
@ -132,4 +132,5 @@ ion-modal.ios {
|
|||||||
--ion-background-color: var(--ion-color-step-100);
|
--ion-background-color: var(--ion-color-step-100);
|
||||||
--ion-toolbar-background: var(--ion-color-step-150);
|
--ion-toolbar-background: var(--ion-color-step-150);
|
||||||
--ion-toolbar-border-color: var(--ion-color-step-250);
|
--ion-toolbar-border-color: var(--ion-color-step-250);
|
||||||
|
--ion-item-background: var(--ion-color-step-150);
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
font-size: 48px;
|
font-size: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ion-progress-bar {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -619,10 +622,6 @@
|
|||||||
|
|
||||||
<section>
|
<section>
|
||||||
<p>
|
<p>
|
||||||
<ion-toolbar>
|
|
||||||
<ion-title>Default</ion-title>
|
|
||||||
</ion-toolbar>
|
|
||||||
|
|
||||||
<ion-toolbar>
|
<ion-toolbar>
|
||||||
<ion-buttons slot="start">
|
<ion-buttons slot="start">
|
||||||
<ion-button color="danger">
|
<ion-button color="danger">
|
||||||
@ -759,6 +758,18 @@
|
|||||||
<ion-title>Dark</ion-title>
|
<ion-title>Dark</ion-title>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ion-progress-bar value="0.5"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.5" color="secondary"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.5" color="tertiary"></ion-progress-bar>
|
||||||
|
<ion-progress-bar type="indeterminate" color="danger"></ion-progress-bar>
|
||||||
|
<ion-progress-bar type="indeterminate" color="warning"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.2" buffer="0.3" color="success"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.5" color="light"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.5" color="medium"></ion-progress-bar>
|
||||||
|
<ion-progress-bar value="0.2" buffer="0.3" color="dark"></ion-progress-bar>
|
||||||
|
</p>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
@ -924,6 +935,9 @@
|
|||||||
<ion-header translucent="true">
|
<ion-header translucent="true">
|
||||||
<ion-toolbar>
|
<ion-toolbar>
|
||||||
<ion-title>Super Modal</ion-title>
|
<ion-title>Super Modal</ion-title>
|
||||||
|
<ion-buttons slot="start">
|
||||||
|
<ion-button class="dismiss">Close</ion-button>
|
||||||
|
</ion-buttons>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<ion-content fullscreen="true">
|
<ion-content fullscreen="true">
|
||||||
@ -932,10 +946,21 @@
|
|||||||
<ion-title size="large">Super Modal</ion-title>
|
<ion-title size="large">Super Modal</ion-title>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
<div class="ion-padding">
|
|
||||||
<h1>Content of doom</h1>
|
<br />
|
||||||
<div>Here's some more content</div>
|
|
||||||
<ion-button class="dismiss">Dismiss Modal</ion-button>
|
<div>
|
||||||
|
<ion-list>
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>Item A</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>Item B</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>Item C</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
`;
|
`;
|
||||||
|
@ -91,13 +91,15 @@ export const config: Config = {
|
|||||||
{
|
{
|
||||||
elements: ['ion-checkbox', 'ion-toggle'],
|
elements: ['ion-checkbox', 'ion-toggle'],
|
||||||
targetAttr: 'checked',
|
targetAttr: 'checked',
|
||||||
event: 'v-ionChange',
|
// TODO Ionic v6 remove in favor of v-ion-change
|
||||||
|
event: ['v-ionChange', 'v-ion-change'],
|
||||||
externalEvent: 'ionChange'
|
externalEvent: 'ionChange'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
elements: ['ion-datetime', 'ion-input', 'ion-radio-group', 'ion-radio', 'ion-range', 'ion-searchbar', 'ion-segment', 'ion-segment-button', 'ion-select', 'ion-textarea'],
|
elements: ['ion-datetime', 'ion-input', 'ion-radio-group', 'ion-radio', 'ion-range', 'ion-searchbar', 'ion-segment', 'ion-segment-button', 'ion-select', 'ion-textarea'],
|
||||||
targetAttr: 'value',
|
targetAttr: 'value',
|
||||||
event: 'v-ionChange',
|
// TODO Ionic v6 remove in favor of v-ion-change
|
||||||
|
event: ['v-ionChange', 'v-ion-change'],
|
||||||
externalEvent: 'ionChange'
|
externalEvent: 'ionChange'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Pre-packaged API documentation for the Ionic docs.",
|
"description": "Pre-packaged API documentation for the Ionic docs.",
|
||||||
"main": "core.json",
|
"main": "core.json",
|
||||||
"types": "core.d.ts",
|
"types": "core.d.ts",
|
||||||
|
132
packages/angular-server/package-lock.json
generated
132
packages/angular-server/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular/animations": "8.2.13",
|
"@angular/animations": "8.2.13",
|
||||||
@ -16,7 +16,7 @@
|
|||||||
"@angular/core": "8.2.13",
|
"@angular/core": "8.2.13",
|
||||||
"@angular/platform-browser": "8.2.13",
|
"@angular/platform-browser": "8.2.13",
|
||||||
"@angular/platform-server": "8.2.13",
|
"@angular/platform-server": "8.2.13",
|
||||||
"@ionic/core": "file:../../core",
|
"@ionic/core": "5.5.4",
|
||||||
"ng-packagr": "5.7.1",
|
"ng-packagr": "5.7.1",
|
||||||
"tslint": "^5.12.1",
|
"tslint": "^5.12.1",
|
||||||
"tslint-ionic-rules": "0.0.21",
|
"tslint-ionic-rules": "0.0.21",
|
||||||
@ -31,44 +31,6 @@
|
|||||||
"zone.js": ">=0.8.26"
|
"zone.js": ">=0.8.26"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../../core": {
|
|
||||||
"version": "5.5.3",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"ionicons": "^5.1.2",
|
|
||||||
"tslib": "^1.10.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"jest": "^26.4.1",
|
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@angular/animations": {
|
"node_modules/@angular/animations": {
|
||||||
"version": "8.2.13",
|
"version": "8.2.13",
|
||||||
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.13.tgz",
|
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.13.tgz",
|
||||||
@ -175,8 +137,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"resolved": "../../core",
|
"version": "5.5.4",
|
||||||
"link": true
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ionicons": "^5.1.2",
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sindresorhus/is": {
|
"node_modules/@sindresorhus/is": {
|
||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
@ -187,6 +155,19 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@stencil/core": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-gU6+Yyd6O0KrCSS/O6j8KKqmRo+/Dcs2fI0+APCpbAWK+nqhwDISpdnSEfGDCLMoAC08XOZCycBRk2K1VGnEcg==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"stencil": "bin/stencil"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.10.0",
|
||||||
|
"npm": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@szmarczak/http-timer": {
|
"node_modules/@szmarczak/http-timer": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
||||||
@ -697,7 +678,6 @@
|
|||||||
"anymatch": "^2.0.0",
|
"anymatch": "^2.0.0",
|
||||||
"async-each": "^1.0.1",
|
"async-each": "^1.0.1",
|
||||||
"braces": "^2.3.2",
|
"braces": "^2.3.2",
|
||||||
"fsevents": "^1.2.7",
|
|
||||||
"glob-parent": "^3.1.0",
|
"glob-parent": "^3.1.0",
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
"is-binary-path": "^1.0.0",
|
"is-binary-path": "^1.0.0",
|
||||||
@ -2423,6 +2403,15 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ionicons": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-0DUHTeoIrGSY+KNyNDaQW7v5+mDstjSkjx8dzT925kXKYBDrN3sGs8kUcSSQbTK132U4CbgDEZkn7FDUa9x8Qw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@stencil/core": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-accessor-descriptor": {
|
"node_modules/is-accessor-descriptor": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
||||||
@ -2808,12 +2797,7 @@
|
|||||||
"integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==",
|
"integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"errno": "^0.1.1",
|
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"image-size": "~0.5.0",
|
|
||||||
"make-dir": "^2.1.0",
|
|
||||||
"mime": "^1.4.1",
|
|
||||||
"native-request": "^1.0.5",
|
|
||||||
"source-map": "~0.6.0",
|
"source-map": "~0.6.0",
|
||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
},
|
},
|
||||||
@ -3246,7 +3230,6 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.1",
|
"anymatch": "~3.1.1",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
"fsevents": "~2.1.2",
|
|
||||||
"glob-parent": "~5.1.0",
|
"glob-parent": "~5.1.0",
|
||||||
"is-binary-path": "~2.1.0",
|
"is-binary-path": "~2.1.0",
|
||||||
"is-glob": "~4.0.1",
|
"is-glob": "~4.0.1",
|
||||||
@ -5434,37 +5417,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "file:../../core",
|
"version": "5.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"ionicons": "^5.1.2",
|
"ionicons": "^5.1.2",
|
||||||
"jest": "^26.4.1",
|
"tslib": "^1.10.0"
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslib": "^1.10.0",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@sindresorhus/is": {
|
"@sindresorhus/is": {
|
||||||
@ -5473,6 +5432,12 @@
|
|||||||
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@stencil/core": {
|
||||||
|
"version": "2.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.4.0.tgz",
|
||||||
|
"integrity": "sha512-gU6+Yyd6O0KrCSS/O6j8KKqmRo+/Dcs2fI0+APCpbAWK+nqhwDISpdnSEfGDCLMoAC08XOZCycBRk2K1VGnEcg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@szmarczak/http-timer": {
|
"@szmarczak/http-timer": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
|
||||||
@ -7357,6 +7322,15 @@
|
|||||||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ionicons": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-0DUHTeoIrGSY+KNyNDaQW7v5+mDstjSkjx8dzT925kXKYBDrN3sGs8kUcSSQbTK132U4CbgDEZkn7FDUa9x8Qw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@stencil/core": "^2.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"is-accessor-descriptor": {
|
"is-accessor-descriptor": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Angular SSR Module for Ionic",
|
"description": "Angular SSR Module for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -49,7 +49,7 @@
|
|||||||
"@angular/core": "8.2.13",
|
"@angular/core": "8.2.13",
|
||||||
"@angular/platform-browser": "8.2.13",
|
"@angular/platform-browser": "8.2.13",
|
||||||
"@angular/platform-server": "8.2.13",
|
"@angular/platform-server": "8.2.13",
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"ng-packagr": "5.7.1",
|
"ng-packagr": "5.7.1",
|
||||||
"tslint": "^5.12.1",
|
"tslint": "^5.12.1",
|
||||||
"tslint-ionic-rules": "0.0.21",
|
"tslint-ionic-rules": "0.0.21",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "React Router wrapper for @ionic/react",
|
"description": "React Router wrapper for @ionic/react",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -39,16 +39,16 @@
|
|||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"@ionic/react": "5.5.4",
|
"@ionic/react": "5.5.5",
|
||||||
"react": ">=16.8.6",
|
"react": ">=16.8.6",
|
||||||
"react-dom": ">=16.8.6",
|
"react-dom": ">=16.8.6",
|
||||||
"react-router": "^5.0.1",
|
"react-router": "^5.0.1",
|
||||||
"react-router-dom": "^5.0.1"
|
"react-router-dom": "^5.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"@ionic/react": "5.5.4",
|
"@ionic/react": "5.5.5",
|
||||||
"@rollup/plugin-node-resolve": "^8.1.0",
|
"@rollup/plugin-node-resolve": "^8.1.0",
|
||||||
"@testing-library/jest-dom": "^5.11.6",
|
"@testing-library/jest-dom": "^5.11.6",
|
||||||
"@testing-library/react": "^11.2.2",
|
"@testing-library/react": "^11.2.2",
|
||||||
|
@ -241,7 +241,7 @@ class IonRouterInner extends React.PureComponent<IonRouteProps, IonRouteState> {
|
|||||||
routeDirection: 'back',
|
routeDirection: 'back',
|
||||||
routeAnimation: routeAnimation || routeInfo.routeAnimation,
|
routeAnimation: routeAnimation || routeInfo.routeAnimation,
|
||||||
};
|
};
|
||||||
if (routeInfo.lastPathname === routeInfo.pushedByRoute) {
|
if (routeInfo.lastPathname === routeInfo.pushedByRoute || prevInfo.pathname === routeInfo.pushedByRoute) {
|
||||||
this.props.history.goBack();
|
this.props.history.goBack();
|
||||||
} else {
|
} else {
|
||||||
this.handleNavigate(prevInfo.pathname + (prevInfo.search || ''), 'pop', 'back');
|
this.handleNavigate(prevInfo.pathname + (prevInfo.search || ''), 'pop', 'back');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react",
|
"name": "@ionic/react",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "React specific wrapper for @ionic/core",
|
"description": "React specific wrapper for @ionic/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -39,7 +39,7 @@
|
|||||||
"css/"
|
"css/"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"ionicons": "^5.1.2",
|
"ionicons": "^5.1.2",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
|
23
packages/vue-router/package-lock.json
generated
23
packages/vue-router/package-lock.json
generated
@ -1,16 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
|
||||||
"@ionic/core": "file:../../core"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ionic/vue": "5.4.1",
|
"@ionic/vue": "5.4.1",
|
||||||
"@types/jest": "^26.0.13",
|
"@types/jest": "^26.0.13",
|
||||||
@ -25,7 +22,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../../core": {
|
"../../core": {
|
||||||
"version": "5.4.1",
|
"name": "@ionic/core",
|
||||||
|
"version": "5.5.4",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ionicons": "^5.1.2",
|
"ionicons": "^5.1.2",
|
||||||
@ -36,7 +35,7 @@
|
|||||||
"@rollup/plugin-virtual": "^2.0.3",
|
"@rollup/plugin-virtual": "^2.0.3",
|
||||||
"@stencil/core": "2.1.2",
|
"@stencil/core": "2.1.2",
|
||||||
"@stencil/sass": "1.3.2",
|
"@stencil/sass": "1.3.2",
|
||||||
"@stencil/vue-output-target": "0.1.8",
|
"@stencil/vue-output-target": "^0.4.1",
|
||||||
"@types/jest": "^26.0.10",
|
"@types/jest": "^26.0.10",
|
||||||
"@types/node": "^14.6.0",
|
"@types/node": "^14.6.0",
|
||||||
"@types/puppeteer": "3.0.1",
|
"@types/puppeteer": "3.0.1",
|
||||||
@ -908,7 +907,6 @@
|
|||||||
"jest-resolve": "^26.6.2",
|
"jest-resolve": "^26.6.2",
|
||||||
"jest-util": "^26.6.2",
|
"jest-util": "^26.6.2",
|
||||||
"jest-worker": "^26.6.2",
|
"jest-worker": "^26.6.2",
|
||||||
"node-notifier": "^8.0.0",
|
|
||||||
"slash": "^3.0.0",
|
"slash": "^3.0.0",
|
||||||
"source-map": "^0.6.0",
|
"source-map": "^0.6.0",
|
||||||
"string-length": "^4.0.1",
|
"string-length": "^4.0.1",
|
||||||
@ -2324,8 +2322,7 @@
|
|||||||
"esprima": "^4.0.1",
|
"esprima": "^4.0.1",
|
||||||
"estraverse": "^4.2.0",
|
"estraverse": "^4.2.0",
|
||||||
"esutils": "^2.0.2",
|
"esutils": "^2.0.2",
|
||||||
"optionator": "^0.8.1",
|
"optionator": "^0.8.1"
|
||||||
"source-map": "~0.6.1"
|
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"escodegen": "bin/escodegen.js",
|
"escodegen": "bin/escodegen.js",
|
||||||
@ -3924,7 +3921,6 @@
|
|||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"anymatch": "^3.0.3",
|
"anymatch": "^3.0.3",
|
||||||
"fb-watchman": "^2.0.0",
|
"fb-watchman": "^2.0.0",
|
||||||
"fsevents": "^2.1.2",
|
|
||||||
"graceful-fs": "^4.2.4",
|
"graceful-fs": "^4.2.4",
|
||||||
"jest-regex-util": "^26.0.0",
|
"jest-regex-util": "^26.0.0",
|
||||||
"jest-serializer": "^26.6.2",
|
"jest-serializer": "^26.6.2",
|
||||||
@ -6235,9 +6231,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz",
|
||||||
"integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==",
|
"integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"fsevents": "~2.1.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@ -8251,7 +8244,7 @@
|
|||||||
"@rollup/plugin-virtual": "^2.0.3",
|
"@rollup/plugin-virtual": "^2.0.3",
|
||||||
"@stencil/core": "2.1.2",
|
"@stencil/core": "2.1.2",
|
||||||
"@stencil/sass": "1.3.2",
|
"@stencil/sass": "1.3.2",
|
||||||
"@stencil/vue-output-target": "0.1.8",
|
"@stencil/vue-output-target": "^0.4.1",
|
||||||
"@types/jest": "^26.0.10",
|
"@types/jest": "^26.0.10",
|
||||||
"@types/node": "^14.6.0",
|
"@types/node": "^14.6.0",
|
||||||
"@types/puppeteer": "3.0.1",
|
"@types/puppeteer": "3.0.1",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Vue Router integration for @ionic/vue",
|
"description": "Vue Router integration for @ionic/vue",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test.spec": "jest",
|
"test.spec": "jest",
|
||||||
|
@ -88,7 +88,7 @@ export const createIonRouter = (opts: IonicVueRouterOptions, router: Router) =>
|
|||||||
const prevInfo = locationHistory.findLastLocation(routeInfo);
|
const prevInfo = locationHistory.findLastLocation(routeInfo);
|
||||||
if (prevInfo) {
|
if (prevInfo) {
|
||||||
incomingRouteParams = { ...prevInfo, routerAction: 'pop', routerDirection: 'back', routerAnimation: routerAnimation || routeInfo.routerAnimation };
|
incomingRouteParams = { ...prevInfo, routerAction: 'pop', routerDirection: 'back', routerAnimation: routerAnimation || routeInfo.routerAnimation };
|
||||||
if (routeInfo.lastPathname === routeInfo.pushedByRoute) {
|
if (routeInfo.lastPathname === routeInfo.pushedByRoute || prevInfo.pathname === routeInfo.pushedByRoute) {
|
||||||
router.back();
|
router.back();
|
||||||
} else {
|
} else {
|
||||||
router.replace({ path: prevInfo.pathname, query: parseQuery(prevInfo.search) });
|
router.replace({ path: prevInfo.pathname, query: parseQuery(prevInfo.search) });
|
||||||
|
186
packages/vue/package-lock.json
generated
186
packages/vue/package-lock.json
generated
@ -1,20 +1,21 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "file:../../core",
|
"@ionic/core": "5.5.4",
|
||||||
"ionicons": "^5.1.2"
|
"ionicons": "^5.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@stencil/core": "^1.17.0",
|
"@stencil/core": "^1.17.0",
|
||||||
"change-case": "^4.1.1",
|
"change-case": "^4.1.1",
|
||||||
|
"fs-extra": "^9.1.0",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rollup": "^2.32.1",
|
"rollup": "^2.32.1",
|
||||||
"typescript": "^4.0.5",
|
"typescript": "^4.0.5",
|
||||||
@ -22,43 +23,6 @@
|
|||||||
"vue-router": "^4.0.0-rc.4"
|
"vue-router": "^4.0.0-rc.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"../../core": {
|
|
||||||
"version": "5.5.3",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"ionicons": "^5.1.2",
|
|
||||||
"tslib": "^1.10.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"jest": "^26.4.1",
|
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-validator-identifier": {
|
"node_modules/@babel/helper-validator-identifier": {
|
||||||
"version": "7.10.4",
|
"version": "7.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
|
||||||
@ -89,8 +53,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"resolved": "../../core",
|
"version": "5.5.4",
|
||||||
"link": true
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
|
"dependencies": {
|
||||||
|
"ionicons": "^5.1.2",
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@stencil/core": {
|
"node_modules/@stencil/core": {
|
||||||
"version": "1.17.3",
|
"version": "1.17.3",
|
||||||
@ -180,6 +149,15 @@
|
|||||||
"integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==",
|
"integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/at-least-node": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
@ -276,6 +254,21 @@
|
|||||||
"integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==",
|
"integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/fs-extra": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||||
|
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"at-least-node": "^1.0.0",
|
||||||
|
"graceful-fs": "^4.2.0",
|
||||||
|
"jsonfile": "^6.0.1",
|
||||||
|
"universalify": "^2.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fs.realpath": {
|
"node_modules/fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
@ -312,6 +305,12 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/graceful-fs": {
|
||||||
|
"version": "4.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||||
|
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/header-case": {
|
"node_modules/header-case": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
|
||||||
@ -343,6 +342,18 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz",
|
||||||
"integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA=="
|
"integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/jsonfile": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"universalify": "^2.0.0"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"graceful-fs": "^4.1.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lodash": {
|
"node_modules/lodash": {
|
||||||
"version": "4.17.20",
|
"version": "4.17.20",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||||
@ -445,9 +456,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz",
|
||||||
"integrity": "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==",
|
"integrity": "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
|
||||||
"fsevents": "~2.1.2"
|
|
||||||
},
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@ -500,8 +508,7 @@
|
|||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "4.0.5",
|
"version": "4.0.5",
|
||||||
@ -516,6 +523,15 @@
|
|||||||
"node": ">=4.2.0"
|
"node": ">=4.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/universalify": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/upper-case": {
|
"node_modules/upper-case": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
|
||||||
@ -583,37 +599,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "file:../../core",
|
"version": "5.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.4.tgz",
|
||||||
|
"integrity": "sha512-IjbGN8vh3XuJ2ulo3BMlMflcWlUhvEGEexr29JKFvb+O4bWKP5sC2fkqSrswrIstOmv7axm7CeIi2MNRkwYwVA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
||||||
"@rollup/plugin-virtual": "^2.0.3",
|
|
||||||
"@stencil/core": "2.1.2",
|
|
||||||
"@stencil/sass": "1.3.2",
|
|
||||||
"@stencil/vue-output-target": "0.3.0",
|
|
||||||
"@types/jest": "^26.0.10",
|
|
||||||
"@types/node": "^14.6.0",
|
|
||||||
"@types/puppeteer": "3.0.1",
|
|
||||||
"@types/swiper": "5.4.0",
|
|
||||||
"aws-sdk": "^2.738.0",
|
|
||||||
"clean-css-cli": "^4.1.11",
|
|
||||||
"domino": "^2.1.6",
|
|
||||||
"fs-extra": "^9.0.1",
|
|
||||||
"ionicons": "^5.1.2",
|
"ionicons": "^5.1.2",
|
||||||
"jest": "^26.4.1",
|
"tslib": "^1.10.0"
|
||||||
"jest-cli": "^26.4.1",
|
|
||||||
"np": "^6.4.0",
|
|
||||||
"pixelmatch": "4.0.2",
|
|
||||||
"puppeteer": "^5.2.1",
|
|
||||||
"rollup": "^2.26.4",
|
|
||||||
"sass": "^1.26.10",
|
|
||||||
"stylelint": "^13.6.1",
|
|
||||||
"stylelint-order": "^4.1.0",
|
|
||||||
"swiper": "5.4.1",
|
|
||||||
"tslib": "^1.10.0",
|
|
||||||
"tslint": "^6.1.3",
|
|
||||||
"tslint-ionic-rules": "0.0.21",
|
|
||||||
"tslint-react": "^5.0.0",
|
|
||||||
"typescript": "^4.0.5"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@stencil/core": {
|
"@stencil/core": {
|
||||||
@ -692,6 +683,12 @@
|
|||||||
"integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==",
|
"integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"at-least-node": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
@ -788,6 +785,18 @@
|
|||||||
"integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==",
|
"integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"fs-extra": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
|
||||||
|
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"at-least-node": "^1.0.0",
|
||||||
|
"graceful-fs": "^4.2.0",
|
||||||
|
"jsonfile": "^6.0.1",
|
||||||
|
"universalify": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
@ -815,6 +824,12 @@
|
|||||||
"path-is-absolute": "^1.0.0"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"graceful-fs": {
|
||||||
|
"version": "4.2.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||||
|
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"header-case": {
|
"header-case": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
|
||||||
@ -846,6 +861,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz",
|
||||||
"integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA=="
|
"integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA=="
|
||||||
},
|
},
|
||||||
|
"jsonfile": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "^4.1.6",
|
||||||
|
"universalify": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash": {
|
"lodash": {
|
||||||
"version": "4.17.20",
|
"version": "4.17.20",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||||
@ -979,8 +1004,7 @@
|
|||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "4.0.5",
|
"version": "4.0.5",
|
||||||
@ -988,6 +1012,12 @@
|
|||||||
"integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==",
|
"integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"universalify": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"upper-case": {
|
"upper-case": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "5.5.4",
|
"version": "5.5.5",
|
||||||
"description": "Vue specific wrapper for @ionic/core",
|
"description": "Vue specific wrapper for @ionic/core",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "echo add linter",
|
"lint": "echo add linter",
|
||||||
@ -49,6 +49,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@stencil/core": "^1.17.0",
|
"@stencil/core": "^1.17.0",
|
||||||
"change-case": "^4.1.1",
|
"change-case": "^4.1.1",
|
||||||
|
"fs-extra": "^9.1.0",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rollup": "^2.32.1",
|
"rollup": "^2.32.1",
|
||||||
"typescript": "^4.0.5",
|
"typescript": "^4.0.5",
|
||||||
@ -56,7 +57,7 @@
|
|||||||
"vue-router": "^4.0.0-rc.4"
|
"vue-router": "^4.0.0-rc.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "5.5.4",
|
"@ionic/core": "5.5.5",
|
||||||
"ionicons": "^5.1.2"
|
"ionicons": "^5.1.2"
|
||||||
},
|
},
|
||||||
"vetur": {
|
"vetur": {
|
||||||
|
@ -2,22 +2,39 @@ import { App, Plugin } from 'vue';
|
|||||||
import { IonicConfig, setupConfig } from '@ionic/core';
|
import { IonicConfig, setupConfig } from '@ionic/core';
|
||||||
import { applyPolyfills, defineCustomElements } from '@ionic/core/loader';
|
import { applyPolyfills, defineCustomElements } from '@ionic/core/loader';
|
||||||
|
|
||||||
|
const needsKebabCase = (version: string) => !['3.0.0', '3.0.1', '3.0.2', '3.0.3', '3.0.4', '3.0.5'].includes(version);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We need to make sure that the web component fires an event
|
* We need to make sure that the web component fires an event
|
||||||
* that will not conflict with the user's @ionChange binding,
|
* that will not conflict with the user's @ionChange binding,
|
||||||
* otherwise the binding's callback will fire before any
|
* otherwise the binding's callback will fire before any
|
||||||
* v-model values have been updated.
|
* v-model values have been updated.
|
||||||
|
*/
|
||||||
|
const toLowerCase = (eventName: string) => eventName === 'ionChange' ? 'v-ionchange' : eventName.toLowerCase();
|
||||||
|
const toKebabCase = (eventName: string) => eventName === 'ionChange' ? 'v-ion-change' : eventName.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vue 3.0.6 fixed a bug where events on custom elements
|
||||||
|
* were always converted to lower case, so "ionRefresh"
|
||||||
|
* became "ionRefresh". We need to account for the old
|
||||||
|
* issue as well as the new behavior where "ionRefresh"
|
||||||
|
* is converted to "ion-refresh".
|
||||||
|
* See https://github.com/vuejs/vue-next/pull/2847
|
||||||
*/
|
*/
|
||||||
const transformEventName = (eventName: string) => {
|
const getHelperFunctions = (needsKebabCase: boolean = true) => {
|
||||||
return eventName === 'ionChange' ? 'v-ionchange' : eventName.toLowerCase();
|
const conversionFn = (needsKebabCase) ? toKebabCase : toLowerCase;
|
||||||
}
|
return {
|
||||||
const ael = (el: any, eventName: string, cb: any, opts: any) => el.addEventListener(transformEventName(eventName), cb, opts);
|
ael: (el: any, eventName: string, cb: any, opts: any) => el.addEventListener(conversionFn(eventName), cb, opts),
|
||||||
const rel = (el: any, eventName: string, cb: any, opts: any) => el.removeEventListener(transformEventName(eventName), cb, opts);
|
rel: (el: any, eventName: string, cb: any, opts: any) => el.removeEventListener(conversionFn(eventName), cb, opts),
|
||||||
|
ce: (eventName: string, opts: any) => new CustomEvent(conversionFn(eventName), opts)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export const IonicVue: Plugin = {
|
export const IonicVue: Plugin = {
|
||||||
|
|
||||||
async install(_app: App, config: IonicConfig = {}) {
|
async install(app: App, config: IonicConfig = {}) {
|
||||||
if (typeof (window as any) !== 'undefined') {
|
if (typeof (window as any) !== 'undefined') {
|
||||||
|
const { ael, rel, ce } = getHelperFunctions(needsKebabCase(app.version));
|
||||||
setupConfig({
|
setupConfig({
|
||||||
...config,
|
...config,
|
||||||
_ael: ael,
|
_ael: ael,
|
||||||
@ -26,7 +43,7 @@ export const IonicVue: Plugin = {
|
|||||||
await applyPolyfills();
|
await applyPolyfills();
|
||||||
await defineCustomElements(window, {
|
await defineCustomElements(window, {
|
||||||
exclude: ['ion-tabs'],
|
exclude: ['ion-tabs'],
|
||||||
ce: (eventName: string, opts: any) => new CustomEvent(transformEventName(eventName), opts),
|
ce,
|
||||||
ael,
|
ael,
|
||||||
rel
|
rel
|
||||||
} as any);
|
} as any);
|
||||||
|
@ -97,7 +97,10 @@ export const IonCheckbox = /*@__PURE__*/ defineContainer<JSX.IonCheckbox>('ion-c
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "checked",
|
"modelProp": "checked",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -181,7 +184,10 @@ export const IonDatetime = /*@__PURE__*/ defineContainer<JSX.IonDatetime>('ion-d
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -296,7 +302,10 @@ export const IonInput = /*@__PURE__*/ defineContainer<JSX.IonInput>('ion-input',
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -448,7 +457,10 @@ export const IonRadio = /*@__PURE__*/ defineContainer<JSX.IonRadio>('ion-radio',
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -461,7 +473,10 @@ export const IonRadioGroup = /*@__PURE__*/ defineContainer<JSX.IonRadioGroup>('i
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -486,7 +501,10 @@ export const IonRange = /*@__PURE__*/ defineContainer<JSX.IonRange>('ion-range',
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -544,6 +562,7 @@ export const IonSearchbar = /*@__PURE__*/ defineContainer<JSX.IonSearchbar>('ion
|
|||||||
'placeholder',
|
'placeholder',
|
||||||
'searchIcon',
|
'searchIcon',
|
||||||
'showCancelButton',
|
'showCancelButton',
|
||||||
|
'showClearButton',
|
||||||
'spellcheck',
|
'spellcheck',
|
||||||
'type',
|
'type',
|
||||||
'value',
|
'value',
|
||||||
@ -557,7 +576,10 @@ export const IonSearchbar = /*@__PURE__*/ defineContainer<JSX.IonSearchbar>('ion
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -574,7 +596,10 @@ export const IonSegment = /*@__PURE__*/ defineContainer<JSX.IonSegment>('ion-seg
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -587,7 +612,10 @@ export const IonSegmentButton = /*@__PURE__*/ defineContainer<JSX.IonSegmentButt
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -612,7 +640,10 @@ export const IonSelect = /*@__PURE__*/ defineContainer<JSX.IonSelect>('ion-selec
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -705,7 +736,10 @@ export const IonTextarea = /*@__PURE__*/ defineContainer<JSX.IonTextarea>('ion-t
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "value",
|
"modelProp": "value",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -733,7 +767,10 @@ export const IonToggle = /*@__PURE__*/ defineContainer<JSX.IonToggle>('ion-toggl
|
|||||||
],
|
],
|
||||||
{
|
{
|
||||||
"modelProp": "checked",
|
"modelProp": "checked",
|
||||||
"modelUpdateEvent": "v-ionChange",
|
"modelUpdateEvent": [
|
||||||
|
"v-ionChange",
|
||||||
|
"v-ion-change"
|
||||||
|
],
|
||||||
"externalModelUpdateEvent": "ionChange"
|
"externalModelUpdateEvent": "ionChange"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { defineComponent, h, ref } from 'vue';
|
import { defineComponent, h, ref, VNode } from 'vue';
|
||||||
|
|
||||||
export interface OverlayProps {
|
export interface OverlayProps {
|
||||||
isOpen?: boolean;
|
isOpen?: boolean;
|
||||||
@ -21,28 +21,61 @@ export const defineOverlayContainer = <Props extends object>(name: string, compo
|
|||||||
isOpen && (await present(props))
|
isOpen && (await present(props))
|
||||||
}
|
}
|
||||||
|
|
||||||
const onVnodeUpdated = async () => {
|
const onVnodeUpdated = async (node: VNode, prevNode: VNode) => {
|
||||||
const isOpen = props.isOpen;
|
const isOpen = node.props!.isOpen;
|
||||||
|
const prevIsOpen = prevNode.props!.isOpen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do not do anything if this prop
|
||||||
|
* did not change.
|
||||||
|
*/
|
||||||
|
if (isOpen === prevIsOpen) return;
|
||||||
|
|
||||||
if (isOpen) {
|
if (isOpen) {
|
||||||
await overlay.value?.present() || present(props);
|
await present(props);
|
||||||
} else {
|
} else {
|
||||||
await overlay.value?.dismiss();
|
await dismiss();
|
||||||
overlay.value = undefined;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const onVnodeBeforeUnmount = async () => {
|
const onVnodeBeforeUnmount = async () => {
|
||||||
await overlay.value?.dismiss();
|
await dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
const dismiss = async () => {
|
||||||
|
if (!overlay.value) return;
|
||||||
|
|
||||||
|
await overlay.value;
|
||||||
|
|
||||||
|
overlay.value = overlay.value.dismiss();
|
||||||
|
|
||||||
|
await overlay.value;
|
||||||
|
|
||||||
overlay.value = undefined;
|
overlay.value = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const present = async (props: Readonly<Props>) => {
|
const present = async (props: Readonly<Props>) => {
|
||||||
|
/**
|
||||||
|
* Do not open another instance
|
||||||
|
* if one is already opened.
|
||||||
|
*/
|
||||||
|
if (overlay.value) {
|
||||||
|
await overlay.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (overlay.value?.present) {
|
||||||
|
await overlay.value.present();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const component = slots.default && slots.default()[0];
|
const component = slots.default && slots.default()[0];
|
||||||
overlay.value = await controller.create({
|
overlay.value = controller.create({
|
||||||
...props,
|
...props,
|
||||||
component
|
component
|
||||||
});
|
});
|
||||||
|
|
||||||
|
overlay.value = await overlay.value;
|
||||||
|
|
||||||
eventListeners.forEach(eventListener => {
|
eventListeners.forEach(eventListener => {
|
||||||
overlay.value.addEventListener(eventListener.componentEv, () => {
|
overlay.value.addEventListener(eventListener.componentEv, () => {
|
||||||
emit(eventListener.frameworkEv);
|
emit(eventListener.frameworkEv);
|
||||||
@ -59,7 +92,8 @@ export const defineOverlayContainer = <Props extends object>(name: string, compo
|
|||||||
style: { display: 'none' },
|
style: { display: 'none' },
|
||||||
onVnodeMounted,
|
onVnodeMounted,
|
||||||
onVnodeUpdated,
|
onVnodeUpdated,
|
||||||
onVnodeBeforeUnmount
|
onVnodeBeforeUnmount,
|
||||||
|
isOpen: props.isOpen
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ interface NavManager<T = any> {
|
|||||||
|
|
||||||
interface ComponentOptions {
|
interface ComponentOptions {
|
||||||
modelProp?: string;
|
modelProp?: string;
|
||||||
modelUpdateEvent?: string;
|
modelUpdateEvent?: string | string[];
|
||||||
externalModelUpdateEvent?: string;
|
externalModelUpdateEvent?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,19 +55,22 @@ export const defineContainer = <Props>(name: string, componentProps: string[] =
|
|||||||
const onVnodeBeforeMount = (vnode: VNode) => {
|
const onVnodeBeforeMount = (vnode: VNode) => {
|
||||||
// Add a listener to tell Vue to update the v-model
|
// Add a listener to tell Vue to update the v-model
|
||||||
if (vnode.el) {
|
if (vnode.el) {
|
||||||
vnode.el.addEventListener(modelUpdateEvent.toLowerCase(), (e: Event) => {
|
const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];
|
||||||
modelPropValue = (e?.target as any)[modelProp];
|
eventsNames.forEach((eventName: string) => {
|
||||||
emit(UPDATE_VALUE_EVENT, modelPropValue);
|
vnode.el.addEventListener(eventName.toLowerCase(), (e: Event) => {
|
||||||
|
modelPropValue = (e?.target as any)[modelProp];
|
||||||
|
emit(UPDATE_VALUE_EVENT, modelPropValue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We need to emit the change event here
|
* We need to emit the change event here
|
||||||
* rather than on the web component to ensure
|
* rather than on the web component to ensure
|
||||||
* that any v-model bindings have been updated.
|
* that any v-model bindings have been updated.
|
||||||
* Otherwise, the developer will listen on the
|
* Otherwise, the developer will listen on the
|
||||||
* native web component, but the v-model will
|
* native web component, but the v-model will
|
||||||
* not have been updated yet.
|
* not have been updated yet.
|
||||||
*/
|
*/
|
||||||
emit(externalModelUpdateEvent, e);
|
emit(externalModelUpdateEvent, e);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -62,7 +62,9 @@
|
|||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<ion-button expand="block" @click="present($event)" id="present-overlay">Present Overlay</ion-button>
|
<ion-button @click="present($event)" id="present-overlay">Present Overlay</ion-button>
|
||||||
|
|
||||||
|
<ion-button @click="changeLoadingProps()" id="change-loading-props">Quickly Change Loading Props</ion-button>
|
||||||
|
|
||||||
<ion-action-sheet
|
<ion-action-sheet
|
||||||
:is-open="isActionSheetOpen"
|
:is-open="isActionSheetOpen"
|
||||||
@ -314,7 +316,18 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeLoadingProps = () => {
|
||||||
|
setLoadingRef(true);
|
||||||
|
setTimeout(() => {
|
||||||
|
setLoadingRef(false);
|
||||||
|
setTimeout(() => {
|
||||||
|
setLoadingRef(true);
|
||||||
|
}, 10);
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
changeLoadingProps,
|
||||||
overlayProps,
|
overlayProps,
|
||||||
present,
|
present,
|
||||||
componentType,
|
componentType,
|
||||||
|
@ -59,7 +59,7 @@ describe('Overlays', () => {
|
|||||||
cy.get('ion-toast').should('not.exist');
|
cy.get('ion-toast').should('not.exist');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it should pass props to modal via controller', () => {
|
it('should pass props to modal via controller', () => {
|
||||||
cy.get('ion-radio#ion-modal').click();
|
cy.get('ion-radio#ion-modal').click();
|
||||||
cy.get('ion-radio#controller').click();
|
cy.get('ion-radio#controller').click();
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ describe('Overlays', () => {
|
|||||||
cy.get('ion-modal ion-content').should('have.text', 'Custom Title');
|
cy.get('ion-modal ion-content').should('have.text', 'Custom Title');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it should pass props to modal via component', () => {
|
it('should pass props to modal via component', () => {
|
||||||
cy.get('ion-radio#ion-modal').click();
|
cy.get('ion-radio#ion-modal').click();
|
||||||
cy.get('ion-radio#component').click();
|
cy.get('ion-radio#component').click();
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ describe('Overlays', () => {
|
|||||||
cy.get('ion-modal ion-content').should('have.text', 'Custom Title');
|
cy.get('ion-modal ion-content').should('have.text', 'Custom Title');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it should pass props to popover via controller', () => {
|
it('should pass props to popover via controller', () => {
|
||||||
cy.get('ion-radio#ion-popover').click();
|
cy.get('ion-radio#ion-popover').click();
|
||||||
cy.get('ion-radio#controller').click();
|
cy.get('ion-radio#controller').click();
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ describe('Overlays', () => {
|
|||||||
cy.get('ion-popover ion-content').should('have.text', 'Custom Title');
|
cy.get('ion-popover ion-content').should('have.text', 'Custom Title');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it should pass props to popover via component', () => {
|
it('should pass props to popover via component', () => {
|
||||||
cy.get('ion-radio#ion-popover').click();
|
cy.get('ion-radio#ion-popover').click();
|
||||||
cy.get('ion-radio#component').click();
|
cy.get('ion-radio#component').click();
|
||||||
|
|
||||||
@ -98,4 +98,10 @@ describe('Overlays', () => {
|
|||||||
|
|
||||||
cy.get('ion-popover ion-content').should('have.text', 'Custom Title');
|
cy.get('ion-popover ion-content').should('have.text', 'Custom Title');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should only open one instance at a time when props change quickly on component', () => {
|
||||||
|
cy.get('#change-loading-props').click();
|
||||||
|
|
||||||
|
cy.get('ion-loading').should('have.length', 1);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user