UNPKG

6.05 kBSource Map (JSON)View Raw
1{"version":3,"sources":["icon/utils.js"],"names":["warning","valid","message","isIconDefinition","target","name","theme","icon","normalizeAttrs","attrs","Object","keys","reduce","acc","key","val","className","generate","node","rootProps","React","createElement","tag","children","map","child","index","getSecondaryColor","primaryColor","normalizeTwoToneColors","twoToneColor","Array","isArray","svgBaseProps","width","height","fill","focusable","iconStyles","cssInjectedFlag","useInsertStyles","styleStr","prepend"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACO,SAASA,OAAT,CAAiBC,KAAjB,EAAwBC,OAAxB,EAAiC;AACpC,2BAAKD,KAAL,yBAA4BC,OAA5B;AACH;;AACM,SAASC,gBAAT,CAA0BC,MAA1B,EAAkC;AACrC,SAAQ,yBAAOA,MAAP,MAAkB,QAAlB,IACJ,OAAOA,MAAM,CAACC,IAAd,KAAuB,QADnB,IAEJ,OAAOD,MAAM,CAACE,KAAd,KAAwB,QAFpB,KAGH,yBAAOF,MAAM,CAACG,IAAd,MAAuB,QAAvB,IAAmC,OAAOH,MAAM,CAACG,IAAd,KAAuB,UAHvD,CAAR;AAIH;;AACM,SAASC,cAAT,GAAoC;AAAA,MAAZC,KAAY,uEAAJ,EAAI;AACvC,SAAOC,MAAM,CAACC,IAAP,CAAYF,KAAZ,EAAmBG,MAAnB,CAA0B,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC3C,QAAMC,GAAG,GAAGN,KAAK,CAACK,GAAD,CAAjB;;AACA,YAAQA,GAAR;AACI,WAAK,OAAL;AACID,QAAAA,GAAG,CAACG,SAAJ,GAAgBD,GAAhB;AACA,eAAOF,GAAG,SAAV;AACA;;AACJ;AACIA,QAAAA,GAAG,CAACC,GAAD,CAAH,GAAWC,GAAX;AANR;;AAQA,WAAOF,GAAP;AACH,GAXM,EAWJ,EAXI,CAAP;AAYH;;AACM,SAASI,QAAT,CAAkBC,IAAlB,EAAwBJ,GAAxB,EAA6BK,SAA7B,EAAwC;AAC3C,MAAI,CAACA,SAAL,EAAgB;AACZ,WAAOC,kBAAMC,aAAN,CAAoBH,IAAI,CAACI,GAAzB;AAAgCR,MAAAA,GAAG,EAAHA;AAAhC,OAAwCN,cAAc,CAACU,IAAI,CAACT,KAAN,CAAtD,GAAsE,CAACS,IAAI,CAACK,QAAL,IAAiB,EAAlB,EAAsBC,GAAtB,CAA0B,UAACC,KAAD,EAAQC,KAAR;AAAA,aAAkBT,QAAQ,CAACQ,KAAD,YAAWX,GAAX,cAAkBI,IAAI,CAACI,GAAvB,cAA8BI,KAA9B,EAA1B;AAAA,KAA1B,CAAtE,CAAP;AACH;;AACD,SAAON,kBAAMC,aAAN,CAAoBH,IAAI,CAACI,GAAzB;AACHR,IAAAA,GAAG,EAAHA;AADG,KAEAN,cAAc,CAACU,IAAI,CAACT,KAAN,CAFd,MAGAU,SAHA,GAIJ,CAACD,IAAI,CAACK,QAAL,IAAiB,EAAlB,EAAsBC,GAAtB,CAA0B,UAACC,KAAD,EAAQC,KAAR;AAAA,WAAkBT,QAAQ,CAACQ,KAAD,YAAWX,GAAX,cAAkBI,IAAI,CAACI,GAAvB,cAA8BI,KAA9B,EAA1B;AAAA,GAA1B,CAJI,CAAP;AAKH;;AACM,SAASC,iBAAT,CAA2BC,YAA3B,EAAyC;AAC5C;AACA,SAAO,0BAAcA,YAAd,EAA4B,CAA5B,CAAP;AACH;;AACM,SAASC,sBAAT,CAAgCC,YAAhC,EAA8C;AACjD,MAAI,CAACA,YAAL,EAAmB;AACf,WAAO,EAAP;AACH;;AACD,SAAOC,KAAK,CAACC,OAAN,CAAcF,YAAd,IAA8BA,YAA9B,GAA6C,CAACA,YAAD,CAApD;AACH,C,CACD;AACA;;;AACO,IAAMG,YAAY,GAAG;AACxBC,EAAAA,KAAK,EAAE,KADiB;AAExBC,EAAAA,MAAM,EAAE,KAFgB;AAGxBC,EAAAA,IAAI,EAAE,cAHkB;AAIxB,iBAAe,MAJS;AAKxBC,EAAAA,SAAS,EAAE;AALa,CAArB;;AAOA,IAAMC,UAAU,27BAAhB;;AAuDP,IAAIC,eAAe,GAAG,KAAtB;;AACO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAA2B;AAAA,MAA1BC,QAA0B,uEAAfH,UAAe;AACtD,wBAAU,YAAM;AACZ,QAAI,CAACC,eAAL,EAAsB;AAClB,gCAAUE,QAAV,EAAoB;AAChBC,QAAAA,OAAO,EAAE;AADO,OAApB;AAGAH,MAAAA,eAAe,GAAG,IAAlB;AACH;AACJ,GAPD,EAOG,EAPH;AAQH,CATM","sourcesContent":["import React, { useEffect } from 'react';\nimport { insertCss } from 'insert-css';\nimport warn from '../_util/warning';\nimport generateColor from './generate';\nexport function warning(valid, message) {\n warn(valid, `[@c7n/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return (typeof target === 'object' &&\n typeof target.name === 'string' &&\n typeof target.theme === 'string' &&\n (typeof target.icon === 'object' || typeof target.icon === 'function'));\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return React.createElement(node.tag, { key, ...normalizeAttrs(node.attrs) }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps,\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false',\n};\nexport const iconStyles = `\n.c7nicon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.c7nicon > * {\n line-height: 1;\n}\n\n.c7nicon svg {\n display: inline-block;\n}\n\n.c7nicon::before {\n display: none;\n}\n\n.c7nicon .c7nicon-icon {\n display: block;\n}\n\n.c7nicon[tabindex] {\n cursor: pointer;\n}\n\n.c7nicon-spin::before,\n.c7nicon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nlet cssInjectedFlag = false;\nexport const useInsertStyles = (styleStr = iconStyles) => {\n useEffect(() => {\n if (!cssInjectedFlag) {\n insertCss(styleStr, {\n prepend: true,\n });\n cssInjectedFlag = true;\n }\n }, []);\n};\n"],"file":"utils.js"}
\No newline at end of file