Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add option to IonicConfig to disable Ionic warning and error logs #29814

Open
3 tasks done
aleksander351 opened this issue Aug 28, 2024 · 8 comments · May be fixed by #30015
Open
3 tasks done

feat: Add option to IonicConfig to disable Ionic warning and error logs #29814

aleksander351 opened this issue Aug 28, 2024 · 8 comments · May be fixed by #30015
Labels
package: core @ionic/core package type: feature request a new feature, enhancement, or improvement

Comments

@aleksander351
Copy link

Prerequisites

Ionic Framework Version

v7.x

Current Behavior

I am (still) getting an endless error message which doesn't describe what the problem actually is.

this was the old issue, which was apparently caused by domino.
#27564

Now, after upgrading Angular from 15.2.9 to 16.2.12, the domino library is not present in node_modules anymore. But the error message is back again.

image

Another problem below is with the labelText.

It looks like label="" is a mandatory attribute of ion-select.
If I only provide the aria-label attribute, like the documentation suggests, I get the above error.

So, I got it working with an empty label="" and some CSS hacks.

Expected Behavior

there are no errors in the console after Ionic update.

ion-select works without the label attribute.

Steps to Reproduce

Everything is already described here.

#27564

Code Reproduction URL

https://github.com/aleksander351/ionic7-ssr-basic

Ionic Info

Ionic:

Ionic CLI : 6.12.3 (C:\Users\alex\AppData\Roaming\npm\node_modules@ionic\cli)
Ionic Framework : not installed
@angular-devkit/build-angular : 16.2.14
@angular-devkit/schematics : 16.2.14
@angular/cli : 16.2.14
@ionic/angular-toolkit : 9.0.0

Capacitor:

Capacitor CLI : 5.7.8
@capacitor/core : 5.7.8

Utility:

cordova-res : not installed
native-run : 2.0.1

System:

NodeJS : v20.14.0 (C:\Program Files\nodejs\node.exe)
npm : 10.8.1
OS : Windows 10

Additional Information

No response

@ionitron-bot ionitron-bot bot added the triage label Aug 28, 2024
@sean-perkins
Copy link
Contributor

@aleksander351 if the issue you are experiencing is the same as the one you referenced, have you opened a ticket with that respective project?

Ionic Framework is not responsible for breakages in Angular or packages used by Angular. That team would the best to report the issue to, especially if they've addressed a similar issue in the past.

@sean-perkins sean-perkins added the needs: reply the issue needs a response from the user label Aug 30, 2024
@ionitron-bot ionitron-bot bot removed the triage label Aug 30, 2024
@aleksander351
Copy link
Author

aleksander351 commented Sep 1, 2024

@aleksander351 if the issue you are experiencing is the same as the one you referenced, have you opened a ticket with that respective project?

Ionic Framework is not responsible for breakages in Angular or packages used by Angular. That team would the best to report the issue to, especially if they've addressed a similar issue in the past.

Ionic is dependent on Angular, not Angular on Ionic. (IF Ionic want's to continue to support Angular of course).

If Angular doesn't use strict null checks, so shouldn't Ionic.
On a side note, in Angular there is no need for IonViewDidEnter etc. Ionic decided to "extend" Angulars navigation logic, introducing new problems that it needs to maintain.

Angular didn't break anything, Ionic was not and continues to not play well with Angular. Don't even get me started on SSR and Hydration.

After all, the mountain didn't come to Mohammad.

I hope this wasn't too much of a rant. I understand it's difficult to keep up with their changes. Now if they decide to ditch zone, I don't imagine Ionic keeps depending on zone.

@ionitron-bot ionitron-bot bot added triage and removed needs: reply the issue needs a response from the user labels Sep 1, 2024
@aleksander351
Copy link
Author

aleksander351 commented Sep 1, 2024

Is there at least an option to turn those logs off?

[Ionic Warning]: The "helper" slot has been deprecated in favor of using the "helperText" property on ion-input or ion-textarea.
[Ionic Warning]: The "helper" slot has been deprecated in favor of using the "helperText" property on ion-input or ion-textarea. <ref *4> ctor {
  parentNode: <ref *2> ctor {
    parentNode: <ref *1> ctor {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: undefined,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-row',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-ROW',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 1997,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *1],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sc': 'sc-ion-row',
      _classList: [DOMTokenList],
      's-en': ''
    },
    _previousSibling: <ref *3> ctor {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Circular *2],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2139,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *3],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 656,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _nextSibling: {
      parentNode: [ctor],
      _previousSibling: [Circular *2],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 1998
    },
    _index: 4,
    _childNodes: [ [Object], [Object], [Object], [Circular *4] ],
    _firstChild: null,
    nodeType: 1,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    localName: 'ion-col',
    namespaceURI: 'http://www.w3.org/1999/xhtml',
    prefix: null,
    _tagName: 'ION-COL',
    _attrsByQName: [Object: null prototype] {
      size: [Object],
      class: [Object],
      ngh: [Object],
      style: [Object]
    },
    _attrsByLName: [Object: null prototype] {
      '|size': [Object],
      '|class': [Object],
      '|ngh': [Object],
      '|style': [Object]
    },
    _attrKeys: [ '|size', '|class', '|ngh', '|style' ],
    __ngContext__: 63,
    _nid: 2132,
    connectedCallback: [Function: f],
    's-p': [],
    's-rc': undefined,
    componentOnReady: [Function: componentOnReady$1],
    forceUpdate: [Function: forceUpdate],
    shadowRoot: [Circular *2],
    offset: [Getter/Setter],
    offsetXs: [Getter/Setter],
    offsetSm: [Getter/Setter],
    offsetMd: [Getter/Setter],
    offsetLg: [Getter/Setter],
    offsetXl: [Getter/Setter],
    pull: [Getter/Setter],
    pullXs: [Getter/Setter],
    pullSm: [Getter/Setter],
    pullMd: [Getter/Setter],
    pullLg: [Getter/Setter],
    pullXl: [Getter/Setter],
    push: [Getter/Setter],
    pushXs: [Getter/Setter],
    pushSm: [Getter/Setter],
    pushMd: [Getter/Setter],
    pushLg: [Getter/Setter],
    pushXl: [Getter/Setter],
    size: [Getter/Setter],
    sizeXs: [Getter/Setter],
    sizeSm: [Getter/Setter],
    sizeMd: [Getter/Setter],
    sizeLg: [Getter/Setter],
    sizeXl: [Getter/Setter],
    _lastModTime: 660,
    _children: {
      '0': [Circular *4],
      element: [Circular *2],
      lastModTime: 637,
      childrenByNumber: [Array],
      childrenByName: [Object: null prototype] {}
    },
    's-cr': {
      parentNode: [Circular *2],
      _previousSibling: [Circular *4],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    's-sn': '',
    's-sh': 'ION-ROW',
    's-ol': {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Object],
      _index: 2,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-col> (host=undefined)',
      's-nr': [Circular *2],
      _nid: 2130
    },
    's-hn': 'ION-ROW',
    's-sc': 'sc-ion-col',
    _classList: DOMTokenList {
      '0': 'short-radio',
      '1': 'sc-ion-col-h',
      '2': 'md',
      '3': 'sc-ion-col-s',
      _getString: [Function (anonymous)],
      _setString: [Function (anonymous)],
      _length: 4,
      _lastStringValue: 'short-radio sc-ion-col-h md sc-ion-col-s'
    },
    _style: {
      _element: [Circular *2],
      _parsedStyles: [Object],
      _lastParsedText: 'flex: 0 0 50%; width: 50%; max-width: 50%;'
    },
    's-en': ''
  },
  _previousSibling: <ref *6> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Circular *6],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-item> (host=undefined)',
      's-nr': [Circular *4],
      _nid: 2180
    },
    _nextSibling: [Circular *4],
    _index: 3,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '<slot> (host=ion-col)',
    's-hn': 'ION-COL',
    's-sr': true,
    's-cr': {
      parentNode: [ctor],
      _previousSibling: [Circular *4],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    's-sn': '',
    's-rf': undefined,
    _nid: 2179
  },
  _nextSibling: <ref *7> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Circular *7],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: [Circular *4],
    _nextSibling: {
      parentNode: [ctor],
      _previousSibling: [Circular *7],
      _nextSibling: [Object],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-item> (host=undefined)',
      's-nr': [Circular *4],
      _nid: 2180
    },
    _index: 0,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '',
    's-cn': true,
    _nid: 2133
  },
  _index: 3,
  _childNodes: [
    {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2182
    },
    {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-radio> (host=undefined)',
      's-nr': [ctor],
      _nid: 2218
    },
    ctor {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 3,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      _listeners: [Object: null prototype],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2206,
      _lastModTime: 660,
      _children: [Object]
    },
    ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    }
  ],
  _firstChild: null,
  nodeType: 1,
  ownerDocument: <ref *5> {
    parentNode: null,
    _previousSibling: [Circular *5],
    _nextSibling: [Circular *5],
    _index: undefined,
    _childNodes: null,
    _firstChild: {
      parentNode: [Circular *5],
      _previousSibling: [ctor],
      _nextSibling: [ctor],
      _index: undefined,
      nodeType: 10,
      ownerDocument: [Circular *5],
      name: 'html',
      publicId: '',
      systemId: '',
      _nid: 2
    },
    nodeType: 9,
    isHTML: true,
    _address: 'http://localhost:62256/',
    readyState: 'loading',
    implementation: { contextObject: [Circular *5] },
    ownerDocument: null,
    _contentType: 'text/html',
    doctype: {
      parentNode: [Circular *5],
      _previousSibling: [ctor],
      _nextSibling: [ctor],
      _index: undefined,
      nodeType: 10,
      ownerDocument: [Circular *5],
      name: 'html',
      publicId: '',
      systemId: '',
      _nid: 2
    },
    documentElement: ctor {
      parentNode: [Circular *5],
      _previousSibling: [Object],
      _nextSibling: [Object],
      _index: undefined,
      _childNodes: null,
      _firstChild: [ctor],
      nodeType: 1,
      ownerDocument: [Circular *5],
      localName: 'html',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'HTML',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _nid: 3,
      _classList: [DOMTokenList]
    },
    _templateDocCache: null,
    _nodeIterators: null,
    _nid: 1,
    _nextnid: 2243,
    _nodes: [
      null,      [Circular *5], [Object],  [ctor],    [ctor],
      [Object],  [ctor],        [Object],  [ctor],    undefined,
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [Object],  [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [ctor],    [ctor],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [ctor],    [ctor],        [Object],  [ctor],    [Object],
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      ... 2143 more items
    ],
    byId: [Object: null prototype] {
      main: [ctor],
      'serverApp-state': [ctor],
      'background-content': [MultiId],
      'ion-input-0': [ctor],
      'select-label': [ctor],
      'ion-sel-0': [ctor],
      'ion-selopt-0': [ctor],
      'ion-selopt-1': [ctor],
      'ion-selopt-2': [ctor],
      'ion-selopt-3': [ctor],
      'ion-selopt-4': [ctor],
      'ion-selopt-5': [ctor],
      'ion-selopt-6': [ctor],
      'ion-selopt-7': [ctor],
      'ion-selopt-8': [ctor]
    },
    modclock: 660,
    _scripting_enabled: true,
    defaultView: {
      document: [Circular *5],
      location: [Location],
      _listeners: [Object: null prototype],
      alert: [Function: bound alert],
      blur: [Function: bound blur],
      cancelAnimationFrame: [Function: bound cancelAnimationFrame],
      cancelIdleCallback: [Function: bound cancelIdleCallback],
      close: [Function: bound close],
      confirm: [Function: bound confirm],
      focus: [Function: bound focus],
      matchMedia: [Function: bound matchMedia],
      open: [Function: bound open],
      prompt: [Function: bound prompt],
      requestAnimationFrame: [Function: bound requestAnimationFrame],
      requestIdleCallback: [Function: bound requestIdleCallback],
      URL: [Function: bound URL],
      customElements: null,
      __allowInterval: false,
      __maxTimeout: 0,
      fetch: [Function (anonymous)],
      FetchError: [class (anonymous)],
      Headers: [class (anonymous)],
      Request: [class (anonymous)],
      Response: [class (anonymous)],
      Ionic: [Object]
    },
    _lastModTime: 1,
    _listeners: [Object: null prototype] {
      pause: [Array],
      resume: [Array],
      ionBackButton: [Array],
      keydown: [Array]
    },
    createElement: [Function (anonymous)],
    createElementNS: [Function (anonymous)]
  },
  localName: 'ion-item',
  namespaceURI: 'http://www.w3.org/1999/xhtml',
  prefix: null,
  _tagName: 'ION-ITEM',
  _attrsByQName: [Object: null prototype] {
    class: {
      localName: 'class',
      prefix: null,
      namespaceURI: null,
      data: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated',
      _ownerElement: [Circular *4],
      onchange: [Function (anonymous)]
    },
    ngh: {
      localName: 'ngh',
      prefix: null,
      namespaceURI: null,
      data: '0',
      _ownerElement: [Circular *4],
      onchange: undefined
    },
    's-mode': {
      localName: 's-mode',
      prefix: null,
      namespaceURI: null,
      data: 'md',
      _ownerElement: [Circular *4],
      onchange: undefined
    }
  },
  _attrsByLName: [Object: null prototype] {
    '|class': {
      localName: 'class',
      prefix: null,
      namespaceURI: null,
      data: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated',
      _ownerElement: [Circular *4],
      onchange: [Function (anonymous)]
    },
    '|ngh': {
      localName: 'ngh',
      prefix: null,
      namespaceURI: null,
      data: '0',
      _ownerElement: [Circular *4],
      onchange: undefined
    },
    '|s-mode': {
      localName: 's-mode',
      prefix: null,
      namespaceURI: null,
      data: 'md',
      _ownerElement: [Circular *4],
      onchange: undefined
    }
  },
  _attrKeys: [ '|class', '|ngh', '|s-mode' ],
  __ngContext__: 63,
  _nid: 2181,
  _classList: DOMTokenList {
    '0': 'item-has-value',
    '1': 'item-has-start-slot',
    '2': 'sc-ion-item-md-h',
    '3': 'item',
    '4': 'md',
    '5': 'item-lines-default',
    '6': 'item-fill-none',
    '7': 'item-has-interactive-control',
    '8': 'ion-activatable',
    '9': 'ion-focusable',
    '10': 'hydrated',
    _getString: [Function (anonymous)],
    _setString: [Function (anonymous)],
    _length: 11,
    _lastStringValue: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated'
  },
  connectedCallback: [Function: f],
  's-p': [],
  's-rc': undefined,
  _listeners: [Object: null prototype] {
    ionInput: [ [Object] ],
    ionColor: [ [Object] ],
    ionStyle: [ [Object] ]
  },
  componentOnReady: [Function: componentOnReady$1],
  forceUpdate: [Function: forceUpdate],
  shadowRoot: [Circular *4],
  color: [Getter/Setter],
  button: [Getter/Setter],
  detail: [Getter/Setter],
  detailIcon: [Getter/Setter],
  disabled: [Getter/Setter],
  download: [Getter/Setter],
  fill: [Getter/Setter],
  shape: [Getter/Setter],
  href: [Getter/Setter],
  rel: [Getter/Setter],
  lines: [Getter/Setter],
  counter: [Getter/Setter],
  routerAnimation: [Getter/Setter],
  routerDirection: [Getter/Setter],
  target: [Getter/Setter],
  type: [Getter/Setter],
  counterFormatter: [Getter/Setter],
  _lastModTime: 660,
  _children: {
    '0': ctor {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 3,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      _listeners: [Object: null prototype],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2206,
      _lastModTime: 660,
      _children: [Object]
    },
    '1': ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    },
    element: [Circular *4],
    lastModTime: 650,
    childrenByNumber: [ [ctor], [ctor] ],
    childrenByName: [Object: null prototype] {}
  },
  's-cr': <ref *8> {
    parentNode: [Circular *4],
    _previousSibling: ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Circular *8],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    },
    _nextSibling: {
      parentNode: [Circular *4],
      _previousSibling: [Circular *8],
      _nextSibling: [ctor],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-radio> (host=undefined)',
      's-nr': [ctor],
      _nid: 2218
    },
    _index: 0,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '',
    's-cn': true,
    _nid: 2182
  },
  's-sn': '',
  's-sh': 'ION-COL',
  's-ol': <ref *9> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: <ref *7> {
      parentNode: [ctor],
      _previousSibling: [Circular *4],
      _nextSibling: [Circular *9],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    _nextSibling: <ref *6> {
      parentNode: [ctor],
      _previousSibling: [Circular *9],
      _nextSibling: [Circular *4],
      _index: 3,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '<slot> (host=ion-col)',
      's-hn': 'ION-COL',
      's-sr': true,
      's-cr': [Object],
      's-sn': '',
      's-rf': undefined,
      _nid: 2179
    },
    _index: 1,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: 'org-location for <ion-item> (host=undefined)',
    's-nr': [Circular *4],
    _nid: 2180
  },
  's-hn': 'ION-COL',
  's-sc': 'sc-ion-item-md',
  's-en': ''
}
[Ionic Warning]: The "error" slot has been deprecated in favor of using the "errorText" property on ion-input or ion-textarea. <ref *4> ctor {
  parentNode: <ref *2> ctor {
    parentNode: <ref *1> ctor {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: undefined,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-row',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-ROW',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 1997,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *1],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sc': 'sc-ion-row',
      _classList: [DOMTokenList],
      's-en': ''
    },
    _previousSibling: <ref *3> ctor {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Circular *2],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2139,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *3],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 656,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _nextSibling: {
      parentNode: [ctor],
      _previousSibling: [Circular *2],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 1998
    },
    _index: 4,
    _childNodes: [ [Object], [Object], [Object], [Circular *4] ],
    _firstChild: null,
    nodeType: 1,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    localName: 'ion-col',
    namespaceURI: 'http://www.w3.org/1999/xhtml',
    prefix: null,
    _tagName: 'ION-COL',
    _attrsByQName: [Object: null prototype] {
      size: [Object],
      class: [Object],
      ngh: [Object],
      style: [Object]
    },
    _attrsByLName: [Object: null prototype] {
      '|size': [Object],
      '|class': [Object],
      '|ngh': [Object],
      '|style': [Object]
    },
    _attrKeys: [ '|size', '|class', '|ngh', '|style' ],
    __ngContext__: 63,
    _nid: 2132,
    connectedCallback: [Function: f],
    's-p': [],
    's-rc': undefined,
    componentOnReady: [Function: componentOnReady$1],
    forceUpdate: [Function: forceUpdate],
    shadowRoot: [Circular *2],
    offset: [Getter/Setter],
    offsetXs: [Getter/Setter],
    offsetSm: [Getter/Setter],
    offsetMd: [Getter/Setter],
    offsetLg: [Getter/Setter],
    offsetXl: [Getter/Setter],
    pull: [Getter/Setter],
    pullXs: [Getter/Setter],
    pullSm: [Getter/Setter],
    pullMd: [Getter/Setter],
    pullLg: [Getter/Setter],
    pullXl: [Getter/Setter],
    push: [Getter/Setter],
    pushXs: [Getter/Setter],
    pushSm: [Getter/Setter],
    pushMd: [Getter/Setter],
    pushLg: [Getter/Setter],
    pushXl: [Getter/Setter],
    size: [Getter/Setter],
    sizeXs: [Getter/Setter],
    sizeSm: [Getter/Setter],
    sizeMd: [Getter/Setter],
    sizeLg: [Getter/Setter],
    sizeXl: [Getter/Setter],
    _lastModTime: 660,
    _children: {
      '0': [Circular *4],
      element: [Circular *2],
      lastModTime: 637,
      childrenByNumber: [Array],
      childrenByName: [Object: null prototype] {}
    },
    's-cr': {
      parentNode: [Circular *2],
      _previousSibling: [Circular *4],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    's-sn': '',
    's-sh': 'ION-ROW',
    's-ol': {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Object],
      _index: 2,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-col> (host=undefined)',
      's-nr': [Circular *2],
      _nid: 2130
    },
    's-hn': 'ION-ROW',
    's-sc': 'sc-ion-col',
    _classList: DOMTokenList {
      '0': 'short-radio',
      '1': 'sc-ion-col-h',
      '2': 'md',
      '3': 'sc-ion-col-s',
      _getString: [Function (anonymous)],
      _setString: [Function (anonymous)],
      _length: 4,
      _lastStringValue: 'short-radio sc-ion-col-h md sc-ion-col-s'
    },
    _style: {
      _element: [Circular *2],
      _parsedStyles: [Object],
      _lastParsedText: 'flex: 0 0 50%; width: 50%; max-width: 50%;'
    },
    's-en': ''
  },
  _previousSibling: <ref *6> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: {
      parentNode: [ctor],
      _previousSibling: [Object],
      _nextSibling: [Circular *6],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-item> (host=undefined)',
      's-nr': [Circular *4],
      _nid: 2180
    },
    _nextSibling: [Circular *4],
    _index: 3,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '<slot> (host=ion-col)',
    's-hn': 'ION-COL',
    's-sr': true,
    's-cr': {
      parentNode: [ctor],
      _previousSibling: [Circular *4],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    's-sn': '',
    's-rf': undefined,
    _nid: 2179
  },
  _nextSibling: <ref *7> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Circular *7],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: [Circular *4],
    _nextSibling: {
      parentNode: [ctor],
      _previousSibling: [Circular *7],
      _nextSibling: [Object],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-item> (host=undefined)',
      's-nr': [Circular *4],
      _nid: 2180
    },
    _index: 0,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '',
    's-cn': true,
    _nid: 2133
  },
  _index: 3,
  _childNodes: [
    {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2182
    },
    {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-radio> (host=undefined)',
      's-nr': [ctor],
      _nid: 2218
    },
    ctor {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 3,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      _listeners: [Object: null prototype],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2206,
      _lastModTime: 660,
      _children: [Object]
    },
    ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    }
  ],
  _firstChild: null,
  nodeType: 1,
  ownerDocument: <ref *5> {
    parentNode: null,
    _previousSibling: [Circular *5],
    _nextSibling: [Circular *5],
    _index: undefined,
    _childNodes: null,
    _firstChild: {
      parentNode: [Circular *5],
      _previousSibling: [ctor],
      _nextSibling: [ctor],
      _index: undefined,
      nodeType: 10,
      ownerDocument: [Circular *5],
      name: 'html',
      publicId: '',
      systemId: '',
      _nid: 2
    },
    nodeType: 9,
    isHTML: true,
    _address: 'http://localhost:62256/',
    readyState: 'loading',
    implementation: { contextObject: [Circular *5] },
    ownerDocument: null,
    _contentType: 'text/html',
    doctype: {
      parentNode: [Circular *5],
      _previousSibling: [ctor],
      _nextSibling: [ctor],
      _index: undefined,
      nodeType: 10,
      ownerDocument: [Circular *5],
      name: 'html',
      publicId: '',
      systemId: '',
      _nid: 2
    },
    documentElement: ctor {
      parentNode: [Circular *5],
      _previousSibling: [Object],
      _nextSibling: [Object],
      _index: undefined,
      _childNodes: null,
      _firstChild: [ctor],
      nodeType: 1,
      ownerDocument: [Circular *5],
      localName: 'html',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'HTML',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _nid: 3,
      _classList: [DOMTokenList]
    },
    _templateDocCache: null,
    _nodeIterators: null,
    _nid: 1,
    _nextnid: 2243,
    _nodes: [
      null,      [Circular *5], [Object],  [ctor],    [ctor],
      [Object],  [ctor],        [Object],  [ctor],    undefined,
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [Object],  [Object],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [Object],  [ctor],        [Object],  [ctor],    [Object],
      [ctor],    [Object],      [ctor],    [ctor],    [ctor],
      [ctor],    [Object],      [ctor],    [Object],  [ctor],
      [ctor],    [ctor],        [Object],  [ctor],    [Object],
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      undefined, undefined,     undefined, undefined, undefined,
      ... 2143 more items
    ],
    byId: [Object: null prototype] {
      main: [ctor],
      'serverApp-state': [ctor],
      'background-content': [MultiId],
      'ion-input-0': [ctor],
      'select-label': [ctor],
      'ion-sel-0': [ctor],
      'ion-selopt-0': [ctor],
      'ion-selopt-1': [ctor],
      'ion-selopt-2': [ctor],
      'ion-selopt-3': [ctor],
      'ion-selopt-4': [ctor],
      'ion-selopt-5': [ctor],
      'ion-selopt-6': [ctor],
      'ion-selopt-7': [ctor],
      'ion-selopt-8': [ctor]
    },
    modclock: 660,
    _scripting_enabled: true,
    defaultView: {
      document: [Circular *5],
      location: [Location],
      _listeners: [Object: null prototype],
      alert: [Function: bound alert],
      blur: [Function: bound blur],
      cancelAnimationFrame: [Function: bound cancelAnimationFrame],
      cancelIdleCallback: [Function: bound cancelIdleCallback],
      close: [Function: bound close],
      confirm: [Function: bound confirm],
      focus: [Function: bound focus],
      matchMedia: [Function: bound matchMedia],
      open: [Function: bound open],
      prompt: [Function: bound prompt],
      requestAnimationFrame: [Function: bound requestAnimationFrame],
      requestIdleCallback: [Function: bound requestIdleCallback],
      URL: [Function: bound URL],
      customElements: null,
      __allowInterval: false,
      __maxTimeout: 0,
      fetch: [Function (anonymous)],
      FetchError: [class (anonymous)],
      Headers: [class (anonymous)],
      Request: [class (anonymous)],
      Response: [class (anonymous)],
      Ionic: [Object]
    },
    _lastModTime: 1,
    _listeners: [Object: null prototype] {
      pause: [Array],
      resume: [Array],
      ionBackButton: [Array],
      keydown: [Array]
    },
    createElement: [Function (anonymous)],
    createElementNS: [Function (anonymous)]
  },
  localName: 'ion-item',
  namespaceURI: 'http://www.w3.org/1999/xhtml',
  prefix: null,
  _tagName: 'ION-ITEM',
  _attrsByQName: [Object: null prototype] {
    class: {
      localName: 'class',
      prefix: null,
      namespaceURI: null,
      data: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated',
      _ownerElement: [Circular *4],
      onchange: [Function (anonymous)]
    },
    ngh: {
      localName: 'ngh',
      prefix: null,
      namespaceURI: null,
      data: '0',
      _ownerElement: [Circular *4],
      onchange: undefined
    },
    's-mode': {
      localName: 's-mode',
      prefix: null,
      namespaceURI: null,
      data: 'md',
      _ownerElement: [Circular *4],
      onchange: undefined
    }
  },
  _attrsByLName: [Object: null prototype] {
    '|class': {
      localName: 'class',
      prefix: null,
      namespaceURI: null,
      data: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated',
      _ownerElement: [Circular *4],
      onchange: [Function (anonymous)]
    },
    '|ngh': {
      localName: 'ngh',
      prefix: null,
      namespaceURI: null,
      data: '0',
      _ownerElement: [Circular *4],
      onchange: undefined
    },
    '|s-mode': {
      localName: 's-mode',
      prefix: null,
      namespaceURI: null,
      data: 'md',
      _ownerElement: [Circular *4],
      onchange: undefined
    }
  },
  _attrKeys: [ '|class', '|ngh', '|s-mode' ],
  __ngContext__: 63,
  _nid: 2181,
  _classList: DOMTokenList {
    '0': 'item-has-value',
    '1': 'item-has-start-slot',
    '2': 'sc-ion-item-md-h',
    '3': 'item',
    '4': 'md',
    '5': 'item-lines-default',
    '6': 'item-fill-none',
    '7': 'item-has-interactive-control',
    '8': 'ion-activatable',
    '9': 'ion-focusable',
    '10': 'hydrated',
    _getString: [Function (anonymous)],
    _setString: [Function (anonymous)],
    _length: 11,
    _lastStringValue: 'item-has-value item-has-start-slot sc-ion-item-md-h item md item-lines-default item-fill-none item-has-interactive-control ion-activatable ion-focusable hydrated'
  },
  connectedCallback: [Function: f],
  's-p': [],
  's-rc': undefined,
  _listeners: [Object: null prototype] {
    ionInput: [ [Object] ],
    ionColor: [ [Object] ],
    ionStyle: [ [Object] ]
  },
  componentOnReady: [Function: componentOnReady$1],
  forceUpdate: [Function: forceUpdate],
  shadowRoot: [Circular *4],
  color: [Getter/Setter],
  button: [Getter/Setter],
  detail: [Getter/Setter],
  detailIcon: [Getter/Setter],
  disabled: [Getter/Setter],
  download: [Getter/Setter],
  fill: [Getter/Setter],
  shape: [Getter/Setter],
  href: [Getter/Setter],
  rel: [Getter/Setter],
  lines: [Getter/Setter],
  counter: [Getter/Setter],
  routerAnimation: [Getter/Setter],
  routerDirection: [Getter/Setter],
  target: [Getter/Setter],
  type: [Getter/Setter],
  counterFormatter: [Getter/Setter],
  _lastModTime: 660,
  _children: {
    '0': ctor {
      parentNode: [Circular *4],
      _previousSibling: [Object],
      _nextSibling: [ctor],
      _index: 3,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      _listeners: [Object: null prototype],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2206,
      _lastModTime: 660,
      _children: [Object]
    },
    '1': ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    },
    element: [Circular *4],
    lastModTime: 650,
    childrenByNumber: [ [ctor], [ctor] ],
    childrenByName: [Object: null prototype] {}
  },
  's-cr': <ref *8> {
    parentNode: [Circular *4],
    _previousSibling: ctor {
      parentNode: [Circular *4],
      _previousSibling: [ctor],
      _nextSibling: [Circular *8],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'div',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'DIV',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      _classList: [DOMTokenList],
      's-si': 'sc-ion-item-md',
      's-hn': 'ION-ITEM',
      _nid: 2215,
      _lastModTime: 651,
      _children: [Object]
    },
    _nextSibling: {
      parentNode: [Circular *4],
      _previousSibling: [Circular *8],
      _nextSibling: [ctor],
      _index: 1,
      nodeType: 8,
      ownerDocument: [Object],
      _data: 'org-location for <ion-radio> (host=undefined)',
      's-nr': [ctor],
      _nid: 2218
    },
    _index: 0,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: '',
    's-cn': true,
    _nid: 2182
  },
  's-sn': '',
  's-sh': 'ION-COL',
  's-ol': <ref *9> {
    parentNode: <ref *2> ctor {
      parentNode: [ctor],
      _previousSibling: [ctor],
      _nextSibling: [Object],
      _index: 4,
      _childNodes: [Array],
      _firstChild: null,
      nodeType: 1,
      ownerDocument: [Object],
      localName: 'ion-col',
      namespaceURI: 'http://www.w3.org/1999/xhtml',
      prefix: null,
      _tagName: 'ION-COL',
      _attrsByQName: [Object: null prototype],
      _attrsByLName: [Object: null prototype],
      _attrKeys: [Array],
      __ngContext__: 63,
      _nid: 2132,
      connectedCallback: [Function: f],
      's-p': [],
      's-rc': undefined,
      componentOnReady: [Function: componentOnReady$1],
      forceUpdate: [Function: forceUpdate],
      shadowRoot: [Circular *2],
      offset: [Getter/Setter],
      offsetXs: [Getter/Setter],
      offsetSm: [Getter/Setter],
      offsetMd: [Getter/Setter],
      offsetLg: [Getter/Setter],
      offsetXl: [Getter/Setter],
      pull: [Getter/Setter],
      pullXs: [Getter/Setter],
      pullSm: [Getter/Setter],
      pullMd: [Getter/Setter],
      pullLg: [Getter/Setter],
      pullXl: [Getter/Setter],
      push: [Getter/Setter],
      pushXs: [Getter/Setter],
      pushSm: [Getter/Setter],
      pushMd: [Getter/Setter],
      pushLg: [Getter/Setter],
      pushXl: [Getter/Setter],
      size: [Getter/Setter],
      sizeXs: [Getter/Setter],
      sizeSm: [Getter/Setter],
      sizeMd: [Getter/Setter],
      sizeLg: [Getter/Setter],
      sizeXl: [Getter/Setter],
      _lastModTime: 660,
      _children: [Object],
      's-cr': [Object],
      's-sn': '',
      's-sh': 'ION-ROW',
      's-ol': [Object],
      's-hn': 'ION-ROW',
      's-sc': 'sc-ion-col',
      _classList: [DOMTokenList],
      _style: [Object],
      's-en': ''
    },
    _previousSibling: <ref *7> {
      parentNode: [ctor],
      _previousSibling: [Circular *4],
      _nextSibling: [Circular *9],
      _index: 0,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '',
      's-cn': true,
      _nid: 2133
    },
    _nextSibling: <ref *6> {
      parentNode: [ctor],
      _previousSibling: [Circular *9],
      _nextSibling: [Circular *4],
      _index: 3,
      nodeType: 8,
      ownerDocument: [Object],
      _data: '<slot> (host=ion-col)',
      's-hn': 'ION-COL',
      's-sr': true,
      's-cr': [Object],
      's-sn': '',
      's-rf': undefined,
      _nid: 2179
    },
    _index: 1,
    nodeType: 8,
    ownerDocument: <ref *5> {
      parentNode: null,
      _previousSibling: [Circular *5],
      _nextSibling: [Circular *5],
      _index: undefined,
      _childNodes: null,
      _firstChild: [Object],
      nodeType: 9,
      isHTML: true,
      _address: 'http://localhost:62256/',
      readyState: 'loading',
      implementation: [Object],
      ownerDocument: null,
      _contentType: 'text/html',
      doctype: [Object],
      documentElement: [ctor],
      _templateDocCache: null,
      _nodeIterators: null,
      _nid: 1,
      _nextnid: 2243,
      _nodes: [Array],
      byId: [Object: null prototype],
      modclock: 660,
      _scripting_enabled: true,
      defaultView: [Object],
      _lastModTime: 1,
      _listeners: [Object: null prototype],
      createElement: [Function (anonymous)],
      createElementNS: [Function (anonymous)]
    },
    _data: 'org-location for <ion-item> (host=undefined)',
    's-nr': [Circular *4],
    _nid: 2180
  },
  's-hn': 'ION-COL',
  's-sc': 'sc-ion-item-md',
  's-en': ''
}

@sean-perkins
Copy link
Contributor

Ionic is dependent on Angular, not Angular on Ionic. (IF Ionic want's to continue to support Angular of course).

External changes made by Angular or dependencies of Angular that impact the compatibility of features such as web components are not Ionic's responsibility. This includes the usage of domino for Angular's earlier iterations of SSR or Angular's new SSR strategy that is not compatible with Ionic Framework and we (both Angular and Ionic Framework teams) have no plans of supporting.

I hope this wasn't too much of a rant. I understand it's difficult to keep up with their changes. Now if they decide to ditch zone, I don't imagine Ionic keeps depending on zone.

I don't mind the feedback. I'm no longer on the team that maintains this project, I just volunteer and jump in to try and help provide responses and information that may help with the resolution. In this case, the issue you referenced the team had acknowledged it needed to be resolved externally.

The request for suppressing Ionic's warnings has come up a number of times and I do agree that should be revisited. Especially in the case of CI/test environments, warnings should be suppressed through the Ionic config. Let me ask the question internally with the team and see if they would have an interest in supporting this configuration.

@sean-perkins
Copy link
Contributor

After speaking with the team, we are going to log this as a feature request. We'd like to introduce a new option on the config that lets developers specify which log level they want to print. All messages at or above that severity would be logged.

e.g.:

provideIonicAngular({
  logLevel: 'OFF', // 'WARNING', 'INFO', 'ERROR', 'OFF'
})

Default would match the log levels today, which would be WARNING.

The implementation would check the log level in the existing utility functions that Ionic Framework uses for logging messages: https://github.com/ionic-team/ionic-framework/blob/main/core/src/utils/logging/index.ts

e.g.:

import { config } from "@global/config";

export const printIonWarning = (message: string, ...params: any[]) => {
  if (config.get("logLevel") === "WARNING" || config.get("logLevel") === "ERROR") {
    return console.warn(`[Ionic Warning]: ${message}`, ...params);
  }
};

Honestly would prefer something a little more condensed we can reuse across the functions. An enum or numeric log level may work best.

Contributions are welcome if this feature speaks to you 😆

@sean-perkins sean-perkins changed the title bug: cryptic error messages continue feat: Add option to IonicConfig to disable Ionic warning and error logs Sep 3, 2024
@sean-perkins sean-perkins added type: feature request a new feature, enhancement, or improvement package: core @ionic/core package labels Sep 3, 2024
@ionitron-bot ionitron-bot bot removed the triage label Sep 3, 2024
@aleksander351 aleksander351 closed this as not planned Won't fix, can't repro, duplicate, stale Sep 3, 2024
@sean-perkins sean-perkins reopened this Sep 3, 2024
@aleksander351
Copy link
Author

Thanks for the effort. The reason I closed it is because it's refering to versions of Ionic that probably won't be maintained in the future. The problem, in my case at least, is there for quite a while now. Like mentioned before, I could get rid of the problem by patching the supposedly responsible domino library. With the update of Angular to 17, there is no domino dependency anymore and the long error messages came right back.

@aleksander351
Copy link
Author

After speaking with the team, we are going to log this as a feature request. We'd like to introduce a new option on the config that lets developers specify which log level they want to print. All messages at or above that severity would be logged.

e.g.:

provideIonicAngular({
  logLevel: 'OFF', // 'WARNING', 'INFO', 'ERROR', 'OFF'
})

Default would match the log levels today, which would be WARNING.

The implementation would check the log level in the existing utility functions that Ionic Framework uses for logging messages: https://github.com/ionic-team/ionic-framework/blob/main/core/src/utils/logging/index.ts

e.g.:

import { config } from "@global/config";

export const printIonWarning = (message: string, ...params: any[]) => {
  if (config.get("logLevel") === "WARNING" || config.get("logLevel") === "ERROR") {
    return console.warn(`[Ionic Warning]: ${message}`, ...params);
  }
};

Honestly would prefer something a little more condensed we can reuse across the functions. An enum or numeric log level may work best.

Contributions are welcome if this feature speaks to you 😆

There is a --no-interactive flag already. You think I might use something like that? But I am not using the Ionic Cli to build the ssr App. Not sure if that's even possible.

@aleksander351
Copy link
Author

aleksander351 commented Sep 16, 2024

Used patch-package and manually removed all [Ionic Warning] and printIonWarning method calls I could find in @Ionic/core. Dist files and all. It still doesn't want to die. Unbelievably pesky piece of software.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: core @ionic/core package type: feature request a new feature, enhancement, or improvement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants