chore: sync

This commit is contained in:
Liam DeBeasi
2023-12-18 10:46:20 -05:00
382 changed files with 4167 additions and 861 deletions

View File

@ -3,6 +3,42 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [7.6.1](https://github.com/ionic-team/ionic-framework/compare/v7.6.0...v7.6.1) (2023-12-13)
**Note:** Version bump only for package @ionic/angular
# [7.6.0](https://github.com/ionic-team/ionic-framework/compare/v7.5.8...v7.6.0) (2023-12-06)
### Bug Fixes
* **angular,vue:** range form value updates while dragging knob ([#28422](https://github.com/ionic-team/ionic-framework/issues/28422)) ([0854a11](https://github.com/ionic-team/ionic-framework/commit/0854a11a25759d0201eae66c96a62fe138d486f8)), closes [#28256](https://github.com/ionic-team/ionic-framework/issues/28256)
### Features
* **radio-group:** add compareWith property ([#28452](https://github.com/ionic-team/ionic-framework/issues/28452)) ([0ae327f](https://github.com/ionic-team/ionic-framework/commit/0ae327f0e09cd97d705f2d3051c215034381e226))
* **toast:** add swipe to dismiss functionality ([#28442](https://github.com/ionic-team/ionic-framework/issues/28442)) ([30c21aa](https://github.com/ionic-team/ionic-framework/commit/30c21aab3ed40d73c28e7d60d0952d8891b0a9d3)), closes [#21769](https://github.com/ionic-team/ionic-framework/issues/21769)
## [7.5.8](https://github.com/ionic-team/ionic-framework/compare/v7.5.7...v7.5.8) (2023-12-06)
### Bug Fixes
* **angular:** add missing menu controller methods ([#28618](https://github.com/ionic-team/ionic-framework/issues/28618)) ([7871b56](https://github.com/ionic-team/ionic-framework/commit/7871b56eccfe63326b6dd4b56ade3b3afd444fce)), closes [#20053](https://github.com/ionic-team/ionic-framework/issues/20053)
## [7.5.7](https://github.com/ionic-team/ionic-framework/compare/v7.5.6...v7.5.7) (2023-11-29)
**Note:** Version bump only for package @ionic/angular

View File

@ -1,6 +1,6 @@
import type { MenuControllerI } from '@ionic/core/components';
import type { MenuControllerI, AnimationBuilder, MenuI, Animation } from '@ionic/core/components';
export class MenuController {
export class MenuController implements MenuControllerI {
constructor(private menuController: MenuControllerI) {}
/**
@ -98,4 +98,32 @@ export class MenuController {
getMenus(): Promise<HTMLIonMenuElement[]> {
return this.menuController.getMenus();
}
registerAnimation(name: string, animation: AnimationBuilder): void {
return this.menuController.registerAnimation(name, animation);
}
isAnimating(): Promise<boolean> {
return this.menuController.isAnimating();
}
_getOpenSync(): HTMLIonMenuElement | undefined {
return this.menuController._getOpenSync();
}
_createAnimation(type: string, menuCmp: MenuI): Promise<Animation> {
return this.menuController._createAnimation(type, menuCmp);
}
_register(menu: MenuI): void {
return this.menuController._register(menu);
}
_unregister(menu: MenuI): void {
return this.menuController._unregister(menu);
}
_setOpen(menu: MenuI, shouldOpen: boolean, animated: boolean): Promise<boolean> {
return this.menuController._setOpen(menu, shouldOpen, animated);
}
}

View File

@ -1,15 +1,15 @@
{
"name": "@ionic/angular",
"version": "7.5.7",
"version": "7.6.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular",
"version": "7.5.7",
"version": "7.6.1",
"license": "MIT",
"dependencies": {
"@ionic/core": "^7.5.7",
"@ionic/core": "^7.6.1",
"ionicons": "^7.0.0",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
@ -1407,11 +1407,11 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.5.7",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.5.7.tgz",
"integrity": "sha512-BVoKckmcC1kgRW5+ZGmzZMCXOjjaxq6D5lp0XzOpqUKBfyr8b39nkdJL2odQY2F1+jScChxk7wB5nubx4i3lUw==",
"version": "7.6.1",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.1.tgz",
"integrity": "sha512-o4PSRxokfRB5H3E5DAM7xivG8XFXaXD3+U/tha0QKemiMSntqgPqy0FYX0pNEwIrV3llRzFbAGNqyvB1+BG97Q==",
"dependencies": {
"@stencil/core": "^4.7.2",
"@stencil/core": "^4.8.2",
"ionicons": "^7.2.1",
"tslib": "^2.1.0"
}
@ -1845,9 +1845,9 @@
}
},
"node_modules/@stencil/core": {
"version": "4.7.2",
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.7.2.tgz",
"integrity": "sha512-sPPDYrXiTbfeUF5CCyfqysXK/yfTHC4xYR1+nHzGkS2vhRSBOLp0oPuB+xkJLKA+K2ZqDJUxpOnDxy1CLWwBXA==",
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.8.2.tgz",
"integrity": "sha512-KdZEAtz9VnqMtXOkf51+8mphyRt0fN/LYgtj5M8gnveGspG8KzoyTDzlWt0wsstWIsJJ21RA1yd3AgMMZiu3MA==",
"bin": {
"stencil": "bin/stencil"
},
@ -9697,11 +9697,11 @@
"dev": true
},
"@ionic/core": {
"version": "7.5.7",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.5.7.tgz",
"integrity": "sha512-BVoKckmcC1kgRW5+ZGmzZMCXOjjaxq6D5lp0XzOpqUKBfyr8b39nkdJL2odQY2F1+jScChxk7wB5nubx4i3lUw==",
"version": "7.6.1",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.6.1.tgz",
"integrity": "sha512-o4PSRxokfRB5H3E5DAM7xivG8XFXaXD3+U/tha0QKemiMSntqgPqy0FYX0pNEwIrV3llRzFbAGNqyvB1+BG97Q==",
"requires": {
"@stencil/core": "^4.7.2",
"@stencil/core": "^4.8.2",
"ionicons": "^7.2.1",
"tslib": "^2.1.0"
}
@ -9994,9 +9994,9 @@
}
},
"@stencil/core": {
"version": "4.7.2",
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.7.2.tgz",
"integrity": "sha512-sPPDYrXiTbfeUF5CCyfqysXK/yfTHC4xYR1+nHzGkS2vhRSBOLp0oPuB+xkJLKA+K2ZqDJUxpOnDxy1CLWwBXA=="
"version": "4.8.2",
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.8.2.tgz",
"integrity": "sha512-KdZEAtz9VnqMtXOkf51+8mphyRt0fN/LYgtj5M8gnveGspG8KzoyTDzlWt0wsstWIsJJ21RA1yd3AgMMZiu3MA=="
},
"@tootallnate/once": {
"version": "2.0.0",

View File

@ -1,6 +1,6 @@
{
"name": "@ionic/angular",
"version": "7.5.7",
"version": "7.6.1",
"description": "Angular specific wrappers for @ionic/core",
"keywords": [
"ionic",
@ -48,7 +48,7 @@
}
},
"dependencies": {
"@ionic/core": "^7.5.7",
"@ionic/core": "^7.6.1",
"ionicons": "^7.0.0",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"

View File

@ -4,7 +4,7 @@ import { ValueAccessor } from '@ionic/angular/common';
@Directive({
/* tslint:disable-next-line:directive-selector */
selector: 'ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime',
selector: 'ion-select, ion-radio-group, ion-segment, ion-datetime',
providers: [
{
provide: NG_VALUE_ACCESSOR,
@ -20,12 +20,7 @@ export class SelectValueAccessorDirective extends ValueAccessor {
@HostListener('ionChange', ['$event.target'])
_handleChangeEvent(
el:
| HTMLIonRangeElement
| HTMLIonSelectElement
| HTMLIonRadioGroupElement
| HTMLIonSegmentElement
| HTMLIonDatetimeElement
el: HTMLIonSelectElement | HTMLIonRadioGroupElement | HTMLIonSegmentElement | HTMLIonDatetimeElement
): void {
this.handleValueChange(el, el.value);
}

View File

@ -2,8 +2,9 @@ import { ElementRef, Injector, Directive, HostListener } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { ValueAccessor } from '@ionic/angular/common';
// TODO(FW-5495): rename class since range isn't a text component
@Directive({
selector: 'ion-input:not([type=number]),ion-textarea,ion-searchbar',
selector: 'ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range',
providers: [
{
provide: NG_VALUE_ACCESSOR,
@ -18,7 +19,9 @@ export class TextValueAccessorDirective extends ValueAccessor {
}
@HostListener('ionInput', ['$event.target'])
_handleInputEvent(el: HTMLIonInputElement | HTMLIonTextareaElement | HTMLIonSearchbarElement): void {
_handleInputEvent(
el: HTMLIonInputElement | HTMLIonTextareaElement | HTMLIonSearchbarElement | HTMLIonRangeElement
): void {
this.handleValueChange(el, el.value);
}
}

View File

@ -1610,14 +1610,14 @@ export declare interface IonRadio extends Components.IonRadio {
@ProxyCmp({
inputs: ['allowEmptySelection', 'name', 'value']
inputs: ['allowEmptySelection', 'compareWith', 'name', 'value']
})
@Component({
selector: 'ion-radio-group',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['allowEmptySelection', 'name', 'value'],
inputs: ['allowEmptySelection', 'compareWith', 'name', 'value'],
})
export class IonRadioGroup {
protected el: HTMLElement;
@ -2276,7 +2276,7 @@ export declare interface IonTitle extends Components.IonTitle {}
@ProxyCmp({
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'translucent', 'trigger'],
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger'],
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
})
@Component({
@ -2284,7 +2284,7 @@ export declare interface IonTitle extends Components.IonTitle {}
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'translucent', 'trigger'],
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger'],
})
export class IonToast {
protected el: HTMLElement;

View File

@ -2034,7 +2034,7 @@ export declare interface IonTitle extends Components.IonTitle {}
@ProxyCmp({
defineCustomElementFn: defineIonToast,
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'translucent', 'trigger'],
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger'],
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss']
})
@Component({
@ -2042,7 +2042,7 @@ export declare interface IonTitle extends Components.IonTitle {}
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'translucent', 'trigger'],
inputs: ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger'],
standalone: true
})
export class IonToast {

View File

@ -78,8 +78,8 @@ export class IonRange extends ValueAccessor {
proxyOutputs(this, this.el, ['ionChange', 'ionInput', 'ionFocus', 'ionBlur', 'ionKnobMoveStart', 'ionKnobMoveEnd']);
}
@HostListener('ionChange', ['$event.target'])
handleIonChange(el: HTMLIonRangeElement): void {
@HostListener('ionInput', ['$event.target'])
handleIonInput(el: HTMLIonRangeElement): void {
this.handleValueChange(el, el.value);
}
}

View File

@ -11,6 +11,7 @@
<div slot="label">Range</div>
</ion-range>
</ion-item>
<p>Value: {{ form.controls['range'].value }}</p>
</ion-list>
<ion-button type="submit">Submit</ion-button>
</form>