@ionic/core 7.5.7-dev.11701188221.15180cb4 → 7.5.7-dev.11701203423.1b6a8829
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/backdrop.js +12 -0
- package/components/gesture-controller.js +1 -1
- package/components/icon.js +14 -23
- package/components/index7.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +48 -15
- package/components/{ion-picker-legacy.d.ts → ion-picker-column.d.ts} +4 -4
- package/components/{ion-picker-legacy-column.js → ion-picker-column.js} +2 -2
- package/components/ion-picker.d.ts +11 -0
- package/components/ion-picker.js +307 -0
- package/components/overlays.js +4 -11
- package/components/picker-column.js +3 -3
- package/dist/cjs/{button-active-cd07b55b.js → button-active-af897e0e.js} +1 -1
- package/dist/cjs/{gesture-controller-d6a3f907.js → gesture-controller-b46721be.js} +0 -1
- package/dist/cjs/{index-0f8b33f8.js → index-0ee995e4.js} +1 -1
- package/dist/cjs/{index-09471526.js → index-5ea49600.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +14 -23
- package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -17
- package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +1 -1
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +1 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-modal.cjs.entry.js +3 -3
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -2
- package/dist/cjs/ion-range.cjs.entry.js +1 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +2 -3
- package/dist/cjs/ion-toast.cjs.entry.js +1 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-dbb71984.js → overlays-2ffc5f27.js} +4 -11
- package/dist/cjs/{swipe-back-a6dc6e5d.js → swipe-back-d0412fb6.js} +2 -2
- package/dist/collection/collection-manifest.json +4 -4
- package/dist/collection/components/backdrop/backdrop.js +12 -0
- package/dist/collection/components/content/content.css +4 -0
- package/dist/collection/components/datetime/datetime.ios.css +24 -83
- package/dist/collection/components/datetime/datetime.js +20 -5
- package/dist/collection/components/datetime/datetime.md.css +24 -88
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
- package/dist/collection/components/{picker-legacy → picker}/picker.js +5 -7
- package/dist/collection/components/{picker-legacy → picker}/test/basic/picker.e2e.js +2 -2
- package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.js +5 -5
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/overlays.js +4 -11
- package/dist/docs.json +32 -21
- package/dist/esm/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
- package/dist/esm/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
- package/dist/esm/{index-c132c5f1.js → index-d1a56aed.js} +1 -1
- package/dist/esm/{index-32cbee52.js → index-ff313b19.js} +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-backdrop.entry.js +12 -0
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +14 -23
- package/dist/esm/ion-datetime_3.entry.js +29 -16
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +1 -1
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +1 -2
- package/dist/esm/ion-menu_3.entry.js +4 -4
- package/dist/esm/ion-modal.entry.js +3 -3
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -2
- package/dist/esm/ion-range.entry.js +1 -1
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +2 -3
- package/dist/esm/ion-toast.entry.js +1 -2
- package/dist/esm/ion-toggle.entry.js +2 -2
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-789cd7a7.js → overlays-6c9feb7e.js} +4 -11
- package/dist/esm/{swipe-back-cc4c2bcb.js → swipe-back-0f3bfc8e.js} +2 -2
- package/dist/esm-es5/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
- package/dist/esm-es5/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
- package/dist/esm-es5/{index-32cbee52.js → index-ff313b19.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
- package/dist/esm-es5/swipe-back-0f3bfc8e.js +4 -0
- package/dist/html.html-data.json +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-14aca3fb.entry.js → p-04dca48d.entry.js} +1 -1
- package/dist/ionic/{p-a8e68fd9.entry.js → p-0838e6bb.entry.js} +1 -1
- package/dist/ionic/{p-a57f223c.system.js → p-09d142b3.system.js} +1 -1
- package/dist/ionic/p-0d8e9393.entry.js +4 -0
- package/dist/ionic/{p-abacb44b.system.entry.js → p-14923cd7.system.entry.js} +1 -1
- package/dist/ionic/p-18e01b30.system.entry.js +4 -0
- package/dist/ionic/p-19a7c660.system.entry.js +4 -0
- package/dist/ionic/{p-9b5301cc.system.entry.js → p-1cb5f2f8.system.entry.js} +1 -1
- package/dist/ionic/p-1e5165db.system.entry.js +4 -0
- package/dist/ionic/p-29adc040.entry.js +4 -0
- package/dist/ionic/{p-56224549.entry.js → p-3de79805.entry.js} +1 -1
- package/dist/ionic/p-40903d34.system.js +1 -1
- package/dist/ionic/{p-664d2b07.system.entry.js → p-42435018.system.entry.js} +1 -1
- package/dist/ionic/p-431151f2.entry.js +4 -0
- package/dist/ionic/{p-d3952bd5.system.entry.js → p-4d786d1f.system.entry.js} +1 -1
- package/dist/ionic/{p-b6a8588f.entry.js → p-4fa201a7.entry.js} +1 -1
- package/dist/ionic/{p-ee800093.entry.js → p-52360c7a.entry.js} +1 -1
- package/dist/ionic/{p-b3e79338.system.entry.js → p-61c30156.system.entry.js} +1 -1
- package/dist/ionic/{p-f5a750e4.system.entry.js → p-640efee6.system.entry.js} +1 -1
- package/dist/ionic/p-64296b15.entry.js +4 -0
- package/dist/ionic/{p-5da0eb3e.system.entry.js → p-6594d76a.system.entry.js} +1 -1
- package/dist/ionic/{p-02d8fdba.system.entry.js → p-67e644bd.system.entry.js} +1 -1
- package/dist/ionic/{p-3f88eab8.system.entry.js → p-67ed452a.system.entry.js} +1 -1
- package/dist/ionic/{p-835e0346.entry.js → p-68166ba6.entry.js} +1 -1
- package/dist/ionic/{p-966cf574.system.entry.js → p-6d812360.system.entry.js} +1 -1
- package/dist/ionic/{p-a4cda7a8.system.entry.js → p-6e23777e.system.entry.js} +1 -1
- package/dist/ionic/{p-2ba9414e.entry.js → p-7176cea3.entry.js} +1 -1
- package/dist/ionic/{p-878c7aa5.system.entry.js → p-7b4cd5fc.system.entry.js} +1 -1
- package/dist/ionic/{p-4f3e2767.system.entry.js → p-7d7fdaf0.system.entry.js} +1 -1
- package/dist/ionic/p-800ef057.js +4 -0
- package/dist/ionic/{p-3fb57e1b.system.entry.js → p-8659f9a9.system.entry.js} +1 -1
- package/dist/ionic/p-86b2394a.entry.js +4 -0
- package/dist/ionic/{p-48d9faa7.entry.js → p-899fb2da.entry.js} +1 -1
- package/dist/ionic/{p-a7e2ac5c.js → p-8b1be026.js} +1 -1
- package/dist/ionic/{p-a21b8d05.entry.js → p-8cbf0979.entry.js} +1 -1
- package/dist/ionic/{p-477a182e.entry.js → p-8d5a30dd.entry.js} +1 -1
- package/dist/ionic/p-8dbdb163.system.js +4 -0
- package/dist/ionic/{p-9e6bf9ed.entry.js → p-8e1bded3.entry.js} +1 -1
- package/dist/ionic/{p-5ce11143.entry.js → p-965677f1.entry.js} +1 -1
- package/dist/ionic/{p-f4cc91f6.entry.js → p-97a96f5f.entry.js} +1 -1
- package/dist/ionic/p-97e31c0a.system.js +4 -0
- package/dist/ionic/{p-6500b298.system.js → p-9e852ff1.system.js} +1 -1
- package/dist/ionic/{p-1e86a71b.entry.js → p-a43603ce.entry.js} +1 -1
- package/dist/ionic/{p-c7fd81ba.system.js → p-a936d224.system.js} +1 -1
- package/dist/ionic/p-a9c3699b.system.entry.js +4 -0
- package/dist/ionic/p-b91fe549.entry.js +4 -0
- package/dist/ionic/{p-c1229981.entry.js → p-bd76524d.entry.js} +1 -1
- package/dist/ionic/{p-07d9e9cd.system.entry.js → p-c429a314.system.entry.js} +1 -1
- package/dist/ionic/p-c6be7737.system.entry.js +4 -0
- package/dist/ionic/p-c919498d.entry.js +4 -0
- package/dist/ionic/{p-d21bfe66.system.entry.js → p-cd2808f5.system.entry.js} +1 -1
- package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
- package/dist/ionic/{p-c31fc05f.system.entry.js → p-db5043df.system.entry.js} +1 -1
- package/dist/ionic/{p-22813b28.system.entry.js → p-dbf7d6e5.system.entry.js} +1 -1
- package/dist/ionic/p-ddfc4ef4.system.entry.js +4 -0
- package/dist/ionic/{p-dd837fa8.entry.js → p-deab76dc.entry.js} +1 -1
- package/dist/ionic/{p-100ef961.js → p-e0b06b65.js} +1 -1
- package/dist/ionic/{p-302091ab.js → p-e627ed84.js} +1 -1
- package/dist/ionic/p-e6b240a0.js +4 -0
- package/dist/ionic/{p-b6f8ee31.entry.js → p-ee2469c1.entry.js} +1 -1
- package/dist/ionic/{p-939d903b.entry.js → p-f37b4b79.entry.js} +1 -1
- package/dist/ionic/{p-06e6d235.system.entry.js → p-f3c82f74.system.entry.js} +2 -2
- package/dist/ionic/p-f54ddd19.entry.js +4 -0
- package/dist/ionic/{p-2e1794df.system.js → p-fa8d4788.system.js} +1 -1
- package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +1 -0
- package/dist/types/components/backdrop/backdrop.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +1 -0
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/{picker-legacy → picker}/picker.d.ts +1 -1
- package/dist/types/components/{picker-legacy-column → picker-column}/picker-column.d.ts +1 -1
- package/dist/types/components.d.ts +138 -138
- package/dist/types/interface.d.ts +1 -1
- package/dist/types/utils/config.d.ts +2 -2
- package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
- package/dist/types/utils/overlays.d.ts +2 -5
- package/hydrate/index.js +57 -43
- package/package.json +2 -2
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -309
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
- package/dist/esm-es5/overlays-789cd7a7.js +0 -4
- package/dist/esm-es5/swipe-back-cc4c2bcb.js +0 -4
- package/dist/ionic/p-0c244faf.entry.js +0 -4
- package/dist/ionic/p-1dc91702.entry.js +0 -4
- package/dist/ionic/p-234b9617.system.entry.js +0 -4
- package/dist/ionic/p-25c34422.system.entry.js +0 -4
- package/dist/ionic/p-2804781b.entry.js +0 -4
- package/dist/ionic/p-2ad38423.system.entry.js +0 -4
- package/dist/ionic/p-6893f6e4.entry.js +0 -4
- package/dist/ionic/p-8b4ab236.entry.js +0 -4
- package/dist/ionic/p-96e99303.entry.js +0 -4
- package/dist/ionic/p-992d3bad.entry.js +0 -4
- package/dist/ionic/p-9c967a65.system.entry.js +0 -4
- package/dist/ionic/p-b4cbb736.js +0 -4
- package/dist/ionic/p-dc565ca3.js +0 -4
- package/dist/ionic/p-e2b1b264.system.entry.js +0 -4
- package/dist/ionic/p-e88ed07f.system.js +0 -4
- package/dist/ionic/p-eb07ec1a.system.entry.js +0 -4
- package/dist/ionic/p-eb5697b5.system.js +0 -4
- package/dist/ionic/p-f0559c5d.system.entry.js +0 -4
- package/dist/ionic/p-fdd22426.entry.js +0 -4
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/picker-interface.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/picker.ios.css +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/picker.md.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
- /package/dist/esm-es5/{index-c132c5f1.js → index-d1a56aed.js} +0 -0
- /package/dist/ionic/{p-ea96fa73.js → p-6e383534.js} +0 -0
- /package/dist/ionic/{p-8050b9b9.system.js → p-84c6dece.system.js} +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
|
@@ -94,7 +94,7 @@ ion-picker-column-internal {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
98
98
|
* sized and never truncates the text.
|
|
99
99
|
*/
|
|
100
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,8 +317,23 @@ ion-picker-column-internal {
|
|
|
317
317
|
justify-content: space-between;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
320
321
|
:host .calendar-action-buttons ion-button {
|
|
321
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
+
display: flex;
|
|
327
|
+
align-items: center;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
:host .calendar-action-buttons ion-item ion-icon {
|
|
331
|
+
-webkit-padding-start: 4px;
|
|
332
|
+
padding-inline-start: 4px;
|
|
333
|
+
-webkit-padding-end: 0;
|
|
334
|
+
padding-inline-end: 0;
|
|
335
|
+
padding-top: 0;
|
|
336
|
+
padding-bottom: 0;
|
|
322
337
|
}
|
|
323
338
|
|
|
324
339
|
:host .calendar-days-of-week {
|
|
@@ -500,66 +515,8 @@ ion-picker-column-internal {
|
|
|
500
515
|
position: static;
|
|
501
516
|
}
|
|
502
517
|
|
|
503
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
504
|
-
color: var(--ion-color-base);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.calendar-month-year {
|
|
508
|
-
min-width: 0;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
.calendar-month-year-toggle {
|
|
512
|
-
font-family: inherit;
|
|
513
|
-
font-size: inherit;
|
|
514
|
-
font-style: inherit;
|
|
515
|
-
font-weight: inherit;
|
|
516
|
-
letter-spacing: inherit;
|
|
517
|
-
text-decoration: inherit;
|
|
518
|
-
text-indent: inherit;
|
|
519
|
-
text-overflow: inherit;
|
|
520
|
-
text-transform: inherit;
|
|
521
|
-
text-align: inherit;
|
|
522
|
-
white-space: inherit;
|
|
523
|
-
color: inherit;
|
|
524
|
-
position: relative;
|
|
525
|
-
border: 0;
|
|
526
|
-
outline: none;
|
|
527
|
-
background: transparent;
|
|
528
|
-
cursor: pointer;
|
|
529
|
-
z-index: 1;
|
|
530
|
-
}
|
|
531
|
-
.calendar-month-year-toggle::after {
|
|
532
|
-
left: 0;
|
|
533
|
-
right: 0;
|
|
534
|
-
top: 0;
|
|
535
|
-
bottom: 0;
|
|
536
|
-
position: absolute;
|
|
537
|
-
content: "";
|
|
538
|
-
opacity: 0;
|
|
539
|
-
transition: opacity 15ms linear, background-color 15ms linear;
|
|
540
|
-
z-index: -1;
|
|
541
|
-
}
|
|
542
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
543
|
-
background: currentColor;
|
|
544
|
-
}
|
|
545
|
-
.calendar-month-year-toggle:disabled {
|
|
546
|
-
opacity: 0.3;
|
|
547
|
-
pointer-events: none;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.calendar-month-year-toggle ion-icon {
|
|
551
|
-
-webkit-padding-start: 4px;
|
|
552
|
-
padding-inline-start: 4px;
|
|
553
|
-
-webkit-padding-end: 0;
|
|
554
|
-
padding-inline-end: 0;
|
|
555
|
-
padding-top: 0;
|
|
556
|
-
padding-bottom: 0;
|
|
557
|
-
flex-shrink: 0;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
561
|
-
display: inline-flex;
|
|
562
|
-
align-items: center;
|
|
518
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
519
|
+
--color: var(--ion-color-base);
|
|
563
520
|
}
|
|
564
521
|
|
|
565
522
|
/**
|
|
@@ -648,31 +605,15 @@ ion-picker-column-internal {
|
|
|
648
605
|
margin-top: 10px;
|
|
649
606
|
}
|
|
650
607
|
|
|
651
|
-
.calendar-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
-
|
|
655
|
-
padding-inline-end: 16px;
|
|
656
|
-
padding-top: 0px;
|
|
657
|
-
padding-bottom: 0px;
|
|
658
|
-
min-height: 44px;
|
|
608
|
+
:host .calendar-action-buttons ion-item {
|
|
609
|
+
--padding-start: 16px;
|
|
610
|
+
--background-hover: transparent;
|
|
611
|
+
--background-activated: transparent;
|
|
659
612
|
font-size: min(1rem, 25.6px);
|
|
660
613
|
font-weight: 600;
|
|
661
614
|
}
|
|
662
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
663
|
-
opacity: 0.15;
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
667
|
-
-webkit-margin-start: 0;
|
|
668
|
-
margin-inline-start: 0;
|
|
669
|
-
-webkit-margin-end: 8px;
|
|
670
|
-
margin-inline-end: 8px;
|
|
671
|
-
margin-top: 10px;
|
|
672
|
-
margin-bottom: 10px;
|
|
673
|
-
}
|
|
674
615
|
|
|
675
|
-
:host .calendar-action-buttons
|
|
616
|
+
:host .calendar-action-buttons ion-item ion-icon,
|
|
676
617
|
:host .calendar-action-buttons ion-buttons ion-button {
|
|
677
618
|
color: var(--ion-color-base);
|
|
678
619
|
}
|
|
@@ -1257,11 +1257,26 @@ export class Datetime {
|
|
|
1257
1257
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1258
1258
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1259
1259
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1260
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1260
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
|
|
1261
|
+
var _a;
|
|
1262
|
+
this.toggleMonthAndYearView();
|
|
1263
|
+
/**
|
|
1264
|
+
* TODO: FW-3547
|
|
1265
|
+
*
|
|
1266
|
+
* Currently there is not a way to set the aria-label on the inner button
|
|
1267
|
+
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
1268
|
+
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
1269
|
+
* have reactive props for built-in properties, such as `aria-label`.
|
|
1270
|
+
*/
|
|
1271
|
+
const { monthYearToggleItemRef } = this;
|
|
1272
|
+
if (monthYearToggleItemRef) {
|
|
1273
|
+
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
1274
|
+
if (btn) {
|
|
1275
|
+
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
1276
|
+
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1279
|
+
} }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
1265
1280
|
return h("div", { class: "day-of-week" }, d);
|
|
1266
1281
|
}))));
|
|
1267
1282
|
}
|
|
@@ -94,7 +94,7 @@ ion-picker-column-internal {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
98
98
|
* sized and never truncates the text.
|
|
99
99
|
*/
|
|
100
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,8 +317,23 @@ ion-picker-column-internal {
|
|
|
317
317
|
justify-content: space-between;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
320
321
|
:host .calendar-action-buttons ion-button {
|
|
321
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
+
display: flex;
|
|
327
|
+
align-items: center;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
:host .calendar-action-buttons ion-item ion-icon {
|
|
331
|
+
-webkit-padding-start: 4px;
|
|
332
|
+
padding-inline-start: 4px;
|
|
333
|
+
-webkit-padding-end: 0;
|
|
334
|
+
padding-inline-end: 0;
|
|
335
|
+
padding-top: 0;
|
|
336
|
+
padding-bottom: 0;
|
|
322
337
|
}
|
|
323
338
|
|
|
324
339
|
:host .calendar-days-of-week {
|
|
@@ -500,66 +515,8 @@ ion-picker-column-internal {
|
|
|
500
515
|
position: static;
|
|
501
516
|
}
|
|
502
517
|
|
|
503
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
504
|
-
color: var(--ion-color-base);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.calendar-month-year {
|
|
508
|
-
min-width: 0;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
.calendar-month-year-toggle {
|
|
512
|
-
font-family: inherit;
|
|
513
|
-
font-size: inherit;
|
|
514
|
-
font-style: inherit;
|
|
515
|
-
font-weight: inherit;
|
|
516
|
-
letter-spacing: inherit;
|
|
517
|
-
text-decoration: inherit;
|
|
518
|
-
text-indent: inherit;
|
|
519
|
-
text-overflow: inherit;
|
|
520
|
-
text-transform: inherit;
|
|
521
|
-
text-align: inherit;
|
|
522
|
-
white-space: inherit;
|
|
523
|
-
color: inherit;
|
|
524
|
-
position: relative;
|
|
525
|
-
border: 0;
|
|
526
|
-
outline: none;
|
|
527
|
-
background: transparent;
|
|
528
|
-
cursor: pointer;
|
|
529
|
-
z-index: 1;
|
|
530
|
-
}
|
|
531
|
-
.calendar-month-year-toggle::after {
|
|
532
|
-
left: 0;
|
|
533
|
-
right: 0;
|
|
534
|
-
top: 0;
|
|
535
|
-
bottom: 0;
|
|
536
|
-
position: absolute;
|
|
537
|
-
content: "";
|
|
538
|
-
opacity: 0;
|
|
539
|
-
transition: opacity 15ms linear, background-color 15ms linear;
|
|
540
|
-
z-index: -1;
|
|
541
|
-
}
|
|
542
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
543
|
-
background: currentColor;
|
|
544
|
-
}
|
|
545
|
-
.calendar-month-year-toggle:disabled {
|
|
546
|
-
opacity: 0.3;
|
|
547
|
-
pointer-events: none;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.calendar-month-year-toggle ion-icon {
|
|
551
|
-
-webkit-padding-start: 4px;
|
|
552
|
-
padding-inline-start: 4px;
|
|
553
|
-
-webkit-padding-end: 0;
|
|
554
|
-
padding-inline-end: 0;
|
|
555
|
-
padding-top: 0;
|
|
556
|
-
padding-bottom: 0;
|
|
557
|
-
flex-shrink: 0;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
561
|
-
display: inline-flex;
|
|
562
|
-
align-items: center;
|
|
518
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
519
|
+
--color: var(--ion-color-base);
|
|
563
520
|
}
|
|
564
521
|
|
|
565
522
|
/**
|
|
@@ -643,36 +600,15 @@ ion-picker-column-internal {
|
|
|
643
600
|
font-size: 2.125rem;
|
|
644
601
|
}
|
|
645
602
|
|
|
646
|
-
:host .calendar-action-buttons ion-
|
|
647
|
-
--
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
.calendar-month-year-toggle {
|
|
651
|
-
-webkit-padding-start: 20px;
|
|
652
|
-
padding-inline-start: 20px;
|
|
653
|
-
-webkit-padding-end: 16px;
|
|
654
|
-
padding-inline-end: 16px;
|
|
655
|
-
padding-top: 12px;
|
|
656
|
-
padding-bottom: 12px;
|
|
657
|
-
min-height: 48px;
|
|
658
|
-
background: transparent;
|
|
659
|
-
color: var(--ion-color-step-650, #595959);
|
|
660
|
-
z-index: 1;
|
|
661
|
-
}
|
|
662
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
663
|
-
opacity: 0.04;
|
|
603
|
+
:host .datetime-calendar .calendar-action-buttons ion-item {
|
|
604
|
+
--padding-start: 20px;
|
|
664
605
|
}
|
|
665
606
|
|
|
666
|
-
.calendar-
|
|
667
|
-
|
|
607
|
+
:host .calendar-action-buttons ion-item,
|
|
608
|
+
:host .calendar-action-buttons ion-button {
|
|
609
|
+
--color: var(--ion-color-step-650, #595959);
|
|
668
610
|
}
|
|
669
611
|
|
|
670
|
-
@media (any-hover: hover) {
|
|
671
|
-
.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
|
|
672
|
-
background: currentColor;
|
|
673
|
-
opacity: 0.04;
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
612
|
:host .calendar-days-of-week {
|
|
677
613
|
-webkit-padding-start: 10px;
|
|
678
614
|
padding-inline-start: 10px;
|
|
@@ -38,7 +38,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
38
38
|
`, config);
|
|
39
39
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
40
40
|
const datetime = page.locator('ion-datetime');
|
|
41
|
-
const monthYearButton = page.locator('.calendar-month-year-
|
|
41
|
+
const monthYearButton = page.locator('.calendar-month-year ion-item');
|
|
42
42
|
const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
|
|
43
43
|
const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
|
|
44
44
|
await page.keyboard.press(tabKey);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { newSpecPage } from "@stencil/core/testing";
|
|
5
|
+
import { Item } from "../../../item/item";
|
|
5
6
|
import { Datetime } from "../../datetime";
|
|
6
7
|
describe('datetime', () => {
|
|
7
8
|
beforeEach(() => {
|
|
@@ -17,23 +18,25 @@ describe('datetime', () => {
|
|
|
17
18
|
let page;
|
|
18
19
|
beforeEach(async () => {
|
|
19
20
|
page = await newSpecPage({
|
|
20
|
-
components: [Datetime],
|
|
21
|
+
components: [Datetime, Item],
|
|
21
22
|
html: `<ion-datetime></ion-datetime>`,
|
|
22
23
|
});
|
|
23
24
|
});
|
|
24
25
|
it('should have aria-label "Show year picker" when collapsed', async () => {
|
|
25
26
|
const datetime = page.body.querySelector('ion-datetime');
|
|
26
|
-
const
|
|
27
|
+
const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
28
|
+
const monthYearToggleBtn = item.shadowRoot.querySelector('button');
|
|
27
29
|
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
28
30
|
expect(ariaLabel).toContain('Show year picker');
|
|
29
31
|
});
|
|
30
32
|
it('should have aria-label "Hide year picker" when expanded', async () => {
|
|
31
33
|
const datetime = page.body.querySelector('ion-datetime');
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
+
const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
35
|
+
item.click();
|
|
34
36
|
await page.waitForChanges();
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
+
const itemAfter = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
38
|
+
const monthYearToggleBtn = itemAfter.shadowRoot.querySelector('button');
|
|
39
|
+
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
37
40
|
expect(ariaLabel).toContain('Hide year picker');
|
|
38
41
|
});
|
|
39
42
|
});
|
|
@@ -372,14 +372,4 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
372
372
|
await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
|
|
373
373
|
});
|
|
374
374
|
});
|
|
375
|
-
test.describe(title('datetime: calendar month toggle'), () => {
|
|
376
|
-
test('should have focus styles', async ({ page }) => {
|
|
377
|
-
await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
|
|
378
|
-
const datetime = page.locator('ion-datetime');
|
|
379
|
-
await page.waitForSelector('.datetime-ready');
|
|
380
|
-
const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
|
|
381
|
-
monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
|
|
382
|
-
await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
375
|
});
|
|
@@ -16,7 +16,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
16
16
|
test('should hide the footer when picker is open', async ({ page }) => {
|
|
17
17
|
const datetimeFooter = page.locator('#date-time .datetime-footer');
|
|
18
18
|
await expect(datetimeFooter).toBeVisible();
|
|
19
|
-
const pickerButton = page.locator('#date-time .calendar-month-year >
|
|
19
|
+
const pickerButton = page.locator('#date-time .calendar-month-year > ion-item');
|
|
20
20
|
await pickerButton.click();
|
|
21
21
|
await page.waitForChanges();
|
|
22
22
|
await expect(datetimeFooter).not.toBeVisible();
|
|
@@ -46,7 +46,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
46
46
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
47
47
|
await page.waitForSelector('.datetime-ready');
|
|
48
48
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
49
|
-
const monthYearButton = page.locator('.calendar-month-year-
|
|
49
|
+
const monthYearButton = page.locator('.calendar-month-year ion-item');
|
|
50
50
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
51
51
|
await page.keyboard.press(tabKey);
|
|
52
52
|
await expect(monthYearButton).toBeFocused();
|
|
@@ -75,7 +75,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
75
75
|
`, config);
|
|
76
76
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
77
77
|
const datetime = page.locator('ion-datetime');
|
|
78
|
-
const monthYearButton = page.locator('.calendar-month-year-
|
|
78
|
+
const monthYearButton = page.locator('.calendar-month-year ion-item');
|
|
79
79
|
const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
|
|
80
80
|
const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
|
|
81
81
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
5
|
import { raf } from "../../utils/helpers";
|
|
6
6
|
import { createLockController } from "../../utils/lock-controller";
|
|
7
|
-
import { printIonWarning } from "../../utils/logging/index";
|
|
8
7
|
import { createDelegateController, createTriggerController, BACKDROP, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
|
|
9
8
|
import { getClassMap } from "../../utils/theme";
|
|
10
9
|
import { getIonMode } from "../../global/ionic-global";
|
|
@@ -72,7 +71,6 @@ export class Picker {
|
|
|
72
71
|
setOverlayId(this.el);
|
|
73
72
|
}
|
|
74
73
|
componentDidLoad() {
|
|
75
|
-
printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
|
|
76
74
|
/**
|
|
77
75
|
* If picker was rendered with isOpen="true"
|
|
78
76
|
* then we should open picker immediately.
|
|
@@ -176,9 +174,9 @@ export class Picker {
|
|
|
176
174
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
177
175
|
}, class: Object.assign({ [mode]: true,
|
|
178
176
|
// Used internally for styling
|
|
179
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-
|
|
177
|
+
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
|
|
180
178
|
}
|
|
181
|
-
static get is() { return "ion-picker
|
|
179
|
+
static get is() { return "ion-picker"; }
|
|
182
180
|
static get encapsulation() { return "scoped"; }
|
|
183
181
|
static get originalStyleUrls() {
|
|
184
182
|
return {
|
|
@@ -329,7 +327,7 @@ export class Picker {
|
|
|
329
327
|
"PickerButton": {
|
|
330
328
|
"location": "import",
|
|
331
329
|
"path": "./picker-interface",
|
|
332
|
-
"id": "src/components/picker
|
|
330
|
+
"id": "src/components/picker/picker-interface.ts::PickerButton"
|
|
333
331
|
}
|
|
334
332
|
}
|
|
335
333
|
},
|
|
@@ -351,7 +349,7 @@ export class Picker {
|
|
|
351
349
|
"PickerColumn": {
|
|
352
350
|
"location": "import",
|
|
353
351
|
"path": "./picker-interface",
|
|
354
|
-
"id": "src/components/picker
|
|
352
|
+
"id": "src/components/picker/picker-interface.ts::PickerColumn"
|
|
355
353
|
}
|
|
356
354
|
}
|
|
357
355
|
},
|
|
@@ -780,7 +778,7 @@ export class Picker {
|
|
|
780
778
|
"PickerColumn": {
|
|
781
779
|
"location": "import",
|
|
782
780
|
"path": "./picker-interface",
|
|
783
|
-
"id": "src/components/picker
|
|
781
|
+
"id": "src/components/picker/picker-interface.ts::PickerColumn"
|
|
784
782
|
}
|
|
785
783
|
},
|
|
786
784
|
"return": "Promise<PickerColumn | undefined>"
|
|
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
6
6
|
configs().forEach(({ title, screenshot, config }) => {
|
|
7
7
|
test.describe(title('picker: basic'), () => {
|
|
8
8
|
test('should not have visual regressions', async ({ page }) => {
|
|
9
|
-
await page.goto('/src/components/picker
|
|
9
|
+
await page.goto('/src/components/picker/test/basic', config);
|
|
10
10
|
const didPresent = await page.spyOnEvent('ionPickerDidPresent');
|
|
11
11
|
const didDismiss = await page.spyOnEvent('ionPickerDidDismiss');
|
|
12
12
|
await page.click('#basic');
|
|
@@ -14,7 +14,7 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
14
14
|
await page.waitForChanges();
|
|
15
15
|
await expect(page).toHaveScreenshot(screenshot(`picker-basic`));
|
|
16
16
|
await page.click('.picker-opt:nth-child(2)');
|
|
17
|
-
await page.click('ion-picker
|
|
17
|
+
await page.click('ion-picker .save-btn');
|
|
18
18
|
await didDismiss.next();
|
|
19
19
|
await page.click('#basic');
|
|
20
20
|
await didPresent.next();
|
|
@@ -9,10 +9,10 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
9
9
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
10
10
|
test.describe(title('picker: isOpen'), () => {
|
|
11
11
|
test('should open and close the picker', async ({ page }) => {
|
|
12
|
-
await page.goto('/src/components/picker
|
|
12
|
+
await page.goto('/src/components/picker/test/is-open', config);
|
|
13
13
|
const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
|
|
14
14
|
const ionPickerDidDismiss = await page.spyOnEvent('ionPickerDidDismiss');
|
|
15
|
-
const picker = page.locator('ion-picker
|
|
15
|
+
const picker = page.locator('ion-picker');
|
|
16
16
|
await page.click('#default');
|
|
17
17
|
await ionPickerDidPresent.next();
|
|
18
18
|
await expect(picker).toBeVisible();
|
|
@@ -21,8 +21,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
21
21
|
await expect(picker).toBeHidden();
|
|
22
22
|
});
|
|
23
23
|
test('should open if isOpen is true on load', async ({ page }) => {
|
|
24
|
-
await page.setContent('<ion-picker
|
|
25
|
-
await expect(page.locator('ion-picker
|
|
24
|
+
await page.setContent('<ion-picker is-open="true"></ion-picker>', config);
|
|
25
|
+
await expect(page.locator('ion-picker')).toBeVisible();
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -6,27 +6,27 @@ import { Picker } from "../picker";
|
|
|
6
6
|
it('picker should be assigned an incrementing id', async () => {
|
|
7
7
|
const page = await newSpecPage({
|
|
8
8
|
components: [Picker],
|
|
9
|
-
html: `<ion-picker
|
|
9
|
+
html: `<ion-picker is-open="true"></ion-picker>`,
|
|
10
10
|
});
|
|
11
11
|
let picker;
|
|
12
|
-
picker = page.body.querySelector('ion-picker
|
|
12
|
+
picker = page.body.querySelector('ion-picker');
|
|
13
13
|
expect(picker).not.toBe(null);
|
|
14
14
|
expect(picker.getAttribute('id')).toBe('ion-overlay-1');
|
|
15
15
|
// Remove the picker from the DOM
|
|
16
16
|
picker.remove();
|
|
17
17
|
await page.waitForChanges();
|
|
18
18
|
// Create a new picker to verify the id is incremented
|
|
19
|
-
picker = document.createElement('ion-picker
|
|
19
|
+
picker = document.createElement('ion-picker');
|
|
20
20
|
picker.isOpen = true;
|
|
21
21
|
page.body.appendChild(picker);
|
|
22
22
|
await page.waitForChanges();
|
|
23
|
-
picker = page.body.querySelector('ion-picker
|
|
23
|
+
picker = page.body.querySelector('ion-picker');
|
|
24
24
|
expect(picker.getAttribute('id')).toBe('ion-overlay-2');
|
|
25
25
|
// Presenting the same picker again should reuse the existing id
|
|
26
26
|
picker.isOpen = false;
|
|
27
27
|
await page.waitForChanges();
|
|
28
28
|
picker.isOpen = true;
|
|
29
29
|
await page.waitForChanges();
|
|
30
|
-
picker = page.body.querySelector('ion-picker
|
|
30
|
+
picker = page.body.querySelector('ion-picker');
|
|
31
31
|
expect(picker.getAttribute('id')).toBe('ion-overlay-2');
|
|
32
32
|
});
|
|
@@ -9,7 +9,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
9
9
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
10
10
|
test.describe(title('picker: trigger'), () => {
|
|
11
11
|
test.beforeEach(async ({ page }) => {
|
|
12
|
-
await page.goto('/src/components/picker
|
|
12
|
+
await page.goto('/src/components/picker/test/trigger', config);
|
|
13
13
|
});
|
|
14
14
|
test('should open the picker', async ({ page }) => {
|
|
15
15
|
const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
|
|
@@ -340,7 +340,7 @@ export class PickerColumnCmp {
|
|
|
340
340
|
'max-width': this.col.columnWidth,
|
|
341
341
|
} }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
342
342
|
}
|
|
343
|
-
static get is() { return "ion-picker-
|
|
343
|
+
static get is() { return "ion-picker-column"; }
|
|
344
344
|
static get originalStyleUrls() {
|
|
345
345
|
return {
|
|
346
346
|
"ios": ["picker-column.ios.scss"],
|
|
@@ -364,8 +364,8 @@ export class PickerColumnCmp {
|
|
|
364
364
|
"references": {
|
|
365
365
|
"PickerColumn": {
|
|
366
366
|
"location": "import",
|
|
367
|
-
"path": "../picker
|
|
368
|
-
"id": "src/components/picker
|
|
367
|
+
"path": "../picker/picker-interface",
|
|
368
|
+
"id": "src/components/picker/picker-interface.ts::PickerColumn"
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
},
|
|
@@ -398,8 +398,8 @@ export class PickerColumnCmp {
|
|
|
398
398
|
"references": {
|
|
399
399
|
"PickerColumn": {
|
|
400
400
|
"location": "import",
|
|
401
|
-
"path": "../picker
|
|
402
|
-
"id": "src/components/picker
|
|
401
|
+
"path": "../picker/picker-interface",
|
|
402
|
+
"id": "src/components/picker/picker-interface.ts::PickerColumn"
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
405
|
}
|
|
@@ -25,10 +25,10 @@ describe('picker-column', () => {
|
|
|
25
25
|
};
|
|
26
26
|
const page = await newSpecPage({
|
|
27
27
|
components: [PickerColumnCmp],
|
|
28
|
-
template: () => h("ion-picker-
|
|
28
|
+
template: () => h("ion-picker-column", { col: col }),
|
|
29
29
|
});
|
|
30
|
-
const firstOption = page.body.querySelector('ion-picker-
|
|
31
|
-
const secondOption = page.body.querySelector('ion-picker-
|
|
30
|
+
const firstOption = page.body.querySelector('ion-picker-column .picker-opt:nth-child(1)');
|
|
31
|
+
const secondOption = page.body.querySelector('ion-picker-column .picker-opt:nth-child(2)');
|
|
32
32
|
expect(firstOption.getAttribute('aria-label')).toBe('C Sharp');
|
|
33
33
|
expect(secondOption.getAttribute('aria-label')).toBe(null);
|
|
34
34
|
});
|
|
@@ -15,9 +15,9 @@ describe('picker-column: dynamic options', () => {
|
|
|
15
15
|
];
|
|
16
16
|
const page = await newSpecPage({
|
|
17
17
|
components: [PickerColumnCmp],
|
|
18
|
-
template: () =>
|
|
18
|
+
template: () => h("ion-picker-column", { col: { options: defaultOptions, name: 'animals' } }),
|
|
19
19
|
});
|
|
20
|
-
const pickerCol = page.body.querySelector('ion-picker-
|
|
20
|
+
const pickerCol = page.body.querySelector('ion-picker-column');
|
|
21
21
|
pickerCol.col = {
|
|
22
22
|
options: [...defaultOptions, { text: 'Carrot', value: 'carrot' }],
|
|
23
23
|
name: 'vegetables',
|
package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js
RENAMED
|
@@ -9,9 +9,9 @@ describe('picker-column', () => {
|
|
|
9
9
|
const col = { cssClass: 'test-class', options: [], name: 'col' };
|
|
10
10
|
const page = await newSpecPage({
|
|
11
11
|
components: [PickerColumnCmp],
|
|
12
|
-
template: () => h("ion-picker-
|
|
12
|
+
template: () => h("ion-picker-column", { col: col }),
|
|
13
13
|
});
|
|
14
|
-
const pickerCol = page.body.querySelector('ion-picker-
|
|
14
|
+
const pickerCol = page.body.querySelector('ion-picker-column');
|
|
15
15
|
expect(pickerCol.classList.contains('test-class')).toBe(true);
|
|
16
16
|
});
|
|
17
17
|
});
|
|
@@ -6,11 +6,11 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
6
6
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
7
7
|
test.describe(title('picker-column'), () => {
|
|
8
8
|
test.beforeEach(async ({ page }) => {
|
|
9
|
-
await page.goto(`/src/components/picker-
|
|
9
|
+
await page.goto(`/src/components/picker-column/test/standalone`, config);
|
|
10
10
|
});
|
|
11
11
|
test('should present picker without ion-app', async ({ page }) => {
|
|
12
12
|
const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
|
|
13
|
-
const picker = page.locator('ion-picker
|
|
13
|
+
const picker = page.locator('ion-picker');
|
|
14
14
|
await page.click('#single-column-button');
|
|
15
15
|
await ionPickerDidPresent.next();
|
|
16
16
|
await expect(picker).toBeVisible();
|
|
@@ -22,7 +22,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
22
22
|
});
|
|
23
23
|
const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
|
|
24
24
|
const ionPickerColChangeEvent = await page.spyOnEvent('ionPickerColChange');
|
|
25
|
-
const column = page.locator('ion-picker-
|
|
25
|
+
const column = page.locator('ion-picker-column');
|
|
26
26
|
const secondOption = column.locator('.picker-opt').nth(1);
|
|
27
27
|
await page.click('#single-column-button');
|
|
28
28
|
await ionPickerDidPresent.next();
|