@ionic/core 7.5.8-dev.11701894917.1c1465bd → 7.5.8-dev.11702074871.1238046f

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.
Files changed (198) hide show
  1. package/components/data.js +1 -1
  2. package/components/ion-datetime.js +39 -30
  3. package/components/ion-picker-column-option.d.ts +11 -0
  4. package/components/ion-picker-column-option.js +9 -0
  5. package/components/ion-picker-column.js +2 -2
  6. package/components/ion-picker-legacy-column.d.ts +11 -0
  7. package/components/ion-picker-legacy-column.js +9 -0
  8. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  9. package/components/ion-picker-legacy.js +309 -0
  10. package/components/ion-picker.js +1 -309
  11. package/components/overlays.js +6 -3
  12. package/components/picker-column-option.js +122 -0
  13. package/components/picker-column.js +351 -322
  14. package/components/picker-column2.js +379 -0
  15. package/components/{picker-internal.js → picker.js} +29 -22
  16. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  17. package/dist/cjs/index.cjs.js +1 -1
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  20. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-datetime_3.cjs.entry.js +29 -35
  22. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  24. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  26. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  27. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  28. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  31. package/dist/cjs/ionic.cjs.js +1 -1
  32. package/dist/cjs/loader.cjs.js +1 -1
  33. package/dist/cjs/{overlays-2c6b1072.js → overlays-e8e05b0e.js} +6 -3
  34. package/dist/collection/collection-manifest.json +7 -6
  35. package/dist/collection/components/datetime/datetime.ios.css +8 -13
  36. package/dist/collection/components/datetime/datetime.js +19 -16
  37. package/dist/collection/components/datetime/datetime.md.css +8 -13
  38. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  39. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  40. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  41. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  42. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  43. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  44. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  45. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  46. package/dist/collection/components/datetime/utils/data.js +1 -1
  47. package/dist/collection/components/picker/picker.ios.css +113 -211
  48. package/dist/collection/components/picker/picker.js +468 -743
  49. package/dist/collection/components/picker/picker.md.css +109 -198
  50. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  51. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  52. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  53. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  54. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  55. package/dist/collection/components/picker-column/picker-column.js +497 -335
  56. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  57. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  58. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  59. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  60. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  61. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  62. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  63. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  64. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  65. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  66. package/dist/collection/components/picker-legacy/picker.js +817 -0
  67. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  68. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  69. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  70. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  71. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  72. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  73. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  74. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  75. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  76. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  77. package/dist/collection/utils/overlays.js +6 -3
  78. package/dist/docs.json +493 -24
  79. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  80. package/dist/esm/index.js +1 -1
  81. package/dist/esm/ion-action-sheet.entry.js +1 -1
  82. package/dist/esm/ion-alert.entry.js +1 -1
  83. package/dist/esm/ion-datetime-button.entry.js +1 -1
  84. package/dist/esm/ion-datetime_3.entry.js +28 -34
  85. package/dist/esm/ion-loading.entry.js +1 -1
  86. package/dist/esm/ion-menu_3.entry.js +1 -1
  87. package/dist/esm/ion-modal.entry.js +1 -1
  88. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  89. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  90. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  91. package/dist/esm/ion-popover.entry.js +1 -1
  92. package/dist/esm/ion-select_3.entry.js +1 -1
  93. package/dist/esm/ion-toast.entry.js +1 -1
  94. package/dist/esm/ionic.js +1 -1
  95. package/dist/esm/loader.js +1 -1
  96. package/dist/esm/{overlays-d23ea6e1.js → overlays-fbc5cab5.js} +6 -3
  97. package/dist/esm-es5/index.js +1 -1
  98. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  99. package/dist/esm-es5/ion-alert.entry.js +1 -1
  100. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  101. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  102. package/dist/esm-es5/ion-loading.entry.js +1 -1
  103. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  104. package/dist/esm-es5/ion-modal.entry.js +1 -1
  105. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  106. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  107. package/dist/esm-es5/ion-picker.entry.js +4 -0
  108. package/dist/esm-es5/ion-popover.entry.js +1 -1
  109. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  110. package/dist/esm-es5/ion-toast.entry.js +1 -1
  111. package/dist/esm-es5/ionic.js +1 -1
  112. package/dist/esm-es5/loader.js +1 -1
  113. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  114. package/dist/html.html-data.json +152 -1
  115. package/dist/ionic/index.esm.js +1 -1
  116. package/dist/ionic/ionic.esm.js +1 -1
  117. package/dist/ionic/{p-2f300cca.entry.js → p-21c3515a.entry.js} +1 -1
  118. package/dist/ionic/{p-1f620cd4.system.entry.js → p-26798a7b.system.entry.js} +1 -1
  119. package/dist/ionic/{p-e1e5afe1.system.entry.js → p-27bcbbc7.system.entry.js} +1 -1
  120. package/dist/ionic/p-36d194c5.entry.js +4 -0
  121. package/dist/ionic/{p-3b568d18.entry.js → p-4a081ea9.entry.js} +1 -1
  122. package/dist/ionic/{p-2f2293da.system.entry.js → p-4a36430f.system.entry.js} +1 -1
  123. package/dist/ionic/{p-fff7a57e.system.js → p-54dfc9b5.system.js} +1 -1
  124. package/dist/ionic/{p-60b386c9.system.entry.js → p-563c41f0.system.entry.js} +1 -1
  125. package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
  126. package/dist/ionic/{p-27ea6f4e.entry.js → p-5d42b6b4.entry.js} +1 -1
  127. package/dist/ionic/{p-2dc43d20.entry.js → p-6b7c55cd.entry.js} +1 -1
  128. package/dist/ionic/{p-f78efbd1.entry.js → p-73190c5f.entry.js} +1 -1
  129. package/dist/ionic/{p-af19a573.entry.js → p-73aa7604.entry.js} +1 -1
  130. package/dist/ionic/{p-39a335b6.system.entry.js → p-8017aad2.system.entry.js} +1 -1
  131. package/dist/ionic/{p-1e57bd24.entry.js → p-846ee227.entry.js} +1 -1
  132. package/dist/ionic/p-8e42850f.entry.js +4 -0
  133. package/dist/ionic/p-8fa6583d.system.js +4 -0
  134. package/dist/ionic/{p-4df97e3c.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  135. package/dist/ionic/p-9f1b2214.entry.js +4 -0
  136. package/dist/ionic/{p-8780cc2a.entry.js → p-a8baa23e.entry.js} +1 -1
  137. package/dist/ionic/p-afcf4620.entry.js +4 -0
  138. package/dist/ionic/{p-ddb30596.entry.js → p-b133e9b4.entry.js} +1 -1
  139. package/dist/ionic/{p-3e3d06a6.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  140. package/dist/ionic/p-c41bff4e.system.entry.js +4 -0
  141. package/dist/ionic/p-ca846d0b.system.entry.js +4 -0
  142. package/dist/ionic/p-ca8938f4.js +4 -0
  143. package/dist/ionic/p-e3584231.system.js +1 -1
  144. package/dist/ionic/{p-9eec42cc.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  145. package/dist/ionic/{p-e3ad9607.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  146. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  147. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  148. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  149. package/dist/types/components/picker/picker.d.ts +74 -131
  150. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  151. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  152. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  153. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  154. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  155. package/dist/types/components.d.ts +155 -122
  156. package/dist/types/interface.d.ts +1 -1
  157. package/dist/types/utils/config.d.ts +2 -2
  158. package/dist/types/utils/overlays.d.ts +5 -2
  159. package/hydrate/index.js +1486 -1362
  160. package/package.json +1 -1
  161. package/components/ion-picker-column-internal.d.ts +0 -11
  162. package/components/ion-picker-column-internal.js +0 -9
  163. package/components/ion-picker-internal.js +0 -9
  164. package/components/picker-column-internal.js +0 -390
  165. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  166. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  167. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  168. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  169. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  170. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  171. package/dist/esm-es5/overlays-d23ea6e1.js +0 -4
  172. package/dist/ionic/p-60502e3f.system.entry.js +0 -4
  173. package/dist/ionic/p-67da080d.entry.js +0 -4
  174. package/dist/ionic/p-73ea8f82.system.entry.js +0 -4
  175. package/dist/ionic/p-80fa068e.entry.js +0 -4
  176. package/dist/ionic/p-ab11130c.system.js +0 -4
  177. package/dist/ionic/p-af16fe62.entry.js +0 -4
  178. package/dist/ionic/p-c14f8ac8.js +0 -4
  179. package/dist/ionic/p-cce9f61a.system.entry.js +0 -4
  180. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  181. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  182. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  183. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  184. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  185. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  186. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  187. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  188. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  189. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  190. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +0 -0
  191. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  192. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  193. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  194. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  195. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  196. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  197. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  198. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -29,7 +29,10 @@ const alertController = /*@__PURE__*/ createController('ion-alert');
29
29
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
30
30
  const loadingController = /*@__PURE__*/ createController('ion-loading');
31
31
  const modalController = /*@__PURE__*/ createController('ion-modal');
32
- const pickerController = /*@__PURE__*/ createController('ion-picker');
32
+ /**
33
+ * @deprecated Use the inline ion-picker component instead.
34
+ */
35
+ const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
33
36
  const popoverController = /*@__PURE__*/ createController('ion-popover');
34
37
  const toastController = /*@__PURE__*/ createController('ion-toast');
35
38
  /**
@@ -139,7 +142,7 @@ const focusLastDescendant = (ref, overlay) => {
139
142
  * Should NOT include: Toast
140
143
  */
141
144
  const trapKeyboardFocus = (ev, doc) => {
142
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
145
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
143
146
  const target = ev.target;
144
147
  /**
145
148
  * If no active overlay, ignore this event.
@@ -324,7 +327,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
324
327
  */
325
328
  const getOverlays = (doc, selector) => {
326
329
  if (selector === undefined) {
327
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
330
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
328
331
  }
329
332
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
330
333
  };
@@ -0,0 +1,122 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
5
+ import { d as inheritAttributes } from './helpers.js';
6
+ import { c as createColorClasses } from './theme.js';
7
+ import { b as getIonMode } from './ionic-global.js';
8
+
9
+ const pickerColumnOptionIosCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}";
10
+
11
+ const pickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
12
+
13
+ const PickerColumnOption = /*@__PURE__*/ proxyCustomElement(class PickerColumnOption extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this.__registerHost();
17
+ this.__attachShadow();
18
+ /**
19
+ * We keep track of the parent picker column
20
+ * so we can update the value of it when
21
+ * clicking an enable option.
22
+ */
23
+ this.pickerColumn = null;
24
+ this.ariaLabel = null;
25
+ this.disabled = false;
26
+ this.value = undefined;
27
+ this.color = 'primary';
28
+ }
29
+ /**
30
+ * The aria-label of the option has changed after the
31
+ * first render and needs to be updated within the component.
32
+ *
33
+ * @param ariaLbl The new aria-label value.
34
+ */
35
+ onAriaLabelChange(ariaLbl) {
36
+ this.ariaLabel = ariaLbl;
37
+ }
38
+ componentWillLoad() {
39
+ const inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
40
+ /**
41
+ * The initial value of `aria-label` needs to be set for
42
+ * the first render.
43
+
44
+ */
45
+ this.ariaLabel = inheritedAttributes['aria-label'] || null;
46
+ }
47
+ connectedCallback() {
48
+ this.pickerColumn = this.el.closest('ion-picker-column');
49
+ }
50
+ disconnectedCallback() {
51
+ this.pickerColumn = null;
52
+ }
53
+ /**
54
+ * The column options can load at any time
55
+ * so the options needs to tell the
56
+ * parent picker column when it is loaded
57
+ * so the picker column can ensure it is
58
+ * centered in the view.
59
+ *
60
+ * We intentionally run this for every
61
+ * option. If we only ran this from
62
+ * the selected option then if the newly
63
+ * loaded options were not selected then
64
+ * scrollActiveItemIntoView would not be called.
65
+ */
66
+ componentDidLoad() {
67
+ const { pickerColumn } = this;
68
+ if (pickerColumn !== null) {
69
+ pickerColumn.scrollActiveItemIntoView();
70
+ }
71
+ }
72
+ /**
73
+ * When an option is clicked, update the
74
+ * parent picker column value. This
75
+ * component will handle centering the option
76
+ * in the column view.
77
+ */
78
+ onClick() {
79
+ const { pickerColumn } = this;
80
+ if (pickerColumn !== null) {
81
+ pickerColumn.setValue(this.value);
82
+ }
83
+ }
84
+ render() {
85
+ const { color, disabled, ariaLabel } = this;
86
+ const mode = getIonMode(this);
87
+ return (h(Host, { class: createColorClasses(color, {
88
+ [mode]: true,
89
+ ['option-disabled']: disabled,
90
+ }) }, h("button", { tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", null))));
91
+ }
92
+ get el() { return this; }
93
+ static get watchers() { return {
94
+ "aria-label": ["onAriaLabelChange"]
95
+ }; }
96
+ static get style() { return {
97
+ ios: pickerColumnOptionIosCss,
98
+ md: pickerColumnOptionMdCss
99
+ }; }
100
+ }, [33, "ion-picker-column-option", {
101
+ "disabled": [4],
102
+ "value": [8],
103
+ "color": [513],
104
+ "ariaLabel": [32]
105
+ }, undefined, {
106
+ "aria-label": ["onAriaLabelChange"]
107
+ }]);
108
+ function defineCustomElement() {
109
+ if (typeof customElements === "undefined") {
110
+ return;
111
+ }
112
+ const components = ["ion-picker-column-option"];
113
+ components.forEach(tagName => { switch (tagName) {
114
+ case "ion-picker-column-option":
115
+ if (!customElements.get(tagName)) {
116
+ customElements.define(tagName, PickerColumnOption);
117
+ }
118
+ break;
119
+ } });
120
+ }
121
+
122
+ export { PickerColumnOption as P, defineCustomElement as d };