From 6c1507c88cb24dda7b38ea966e299fafcaddff84 Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Mon, 7 Feb 2022 13:49:27 -0700 Subject: [PATCH] Implement `replaceAll` utility function add #8331 release notes --- docs/release-notes/version-3.1.md | 1 + netbox/project-static/dist/netbox.js | Bin 374821 -> 375383 bytes netbox/project-static/dist/netbox.js.map | Bin 344331 -> 344743 bytes netbox/project-static/dist/status.js | Bin 129226 -> 129226 bytes .../src/select/api/apiSelect.ts | 21 ++++---- .../src/tables/interfaceTable.ts | 6 +-- netbox/project-static/src/util.ts | 48 +++++++++++++++++- 7 files changed, 63 insertions(+), 13 deletions(-) diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index 6de3a120c..b24aba73e 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -6,6 +6,7 @@ * [#8548](https://github.com/netbox-community/netbox/issues/8548) - Fix display of VC members when position is zero * [#8561](https://github.com/netbox-community/netbox/issues/8561) - Include option to connect a rear port to a console port +* [#8331](https://github.com/netbox-community/netbox/issues/8331) - Implement `replaceAll` string utility function to improve browser compatibility --- diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 33b94b4780e3ff6dc139a626249f5d0e11f949cb..678527f92d3b3b9f93510ba2198c1f93ecb07832 100644 GIT binary patch delta 40673 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 Tvt0<*c0 delta 255 zcmZ49D%#y7+R(z-!qmdNg=MBUt8-qWsnd2#Ul!fDjON?ZU$MCG3ApNnJ35Bzcse?I z>v%glTW;U|gT;|u$`c~&?&#>R10*~_gs)Dbqo?UsG1hlX-0l$hU`NN$?flHFv5cG< z6;4&oI{uEC+e=wkWmvhb9f3fn+}Y7NdHP~bRx@cguoj50E66lYN9QajpbmGB?e92Q zuQD=bZ9l@z`an_E8{`;&kkz3;^C30?xq&)?j?NX+59+ci;Z_pt=x@GFk9D~S0QUn( AmH+?% diff --git a/netbox/project-static/dist/status.js b/netbox/project-static/dist/status.js index bffd74dca943abdafb329e987f45620e25d2aa5f..f87d113483c2b397c09c929507dbcf89026ade60 100644 GIT binary patch delta 2152 zcmZuyZEO_B8P*tMgI#J2CK!X^d>m$XJ-fCs!pWKGVlcv1YzA_U5;$LdU%ThUce}^! zn(<=0kzzGJl2lEyi5%sNBm`PTsgh%6p`kG*KClK}OYhCC+QX7E&YqcYY`AdJ$y$A-q zb^D-wqHY(W{^hz?7K52u)yU10P4^+d{desE0>rlFW6)l1mSig8kPnUi?M8OPDLP&?&5oTb6Z9$cWW$Hh$QLTo%os~9J zGMO;{svBWuRvOGB|VxGnEzqd-4*KrB~F$1 zvo^t1Lg^@tO;2}-fTI4MZJR)2FW0>q{QR^#*i73$i zqe>#3Ci;Y#atzB9TwJ<67d8SKE-!^JLYP`s$os5^Q)}8Dia@x^B9%OYo6>GbG48dT zVBa}j2yXd4sjOvc!tKj2C6tByWB%jYt14GAGOFYYmSZ_?UgPv2YOn6N-y7*&;WhO3 zdlkJae6#mwKLnv}(RGmZYxcFECWdz_)`X)K`ZXgn=8)aWSgF%S{o(zAIsi|^+o3%X z-vsT2IPPFd9-JFyW>C|e@a@q(d^>h!l2UKa4O{szJH9!=gCiuR*WO+R<_=DEl=!$F)xgTg|`(lc@T2yq$BiUW{TlHJcx5@+7Sj|ix?gd zAuW$y-wuq6*QK=_vCG8wY73Y?vjplh0p;Ji9$U(*r9blNFHoEjU9k#jt)QicthAvU zTET|whoCb>H$h0ISb1JPY&=AG#XVvf=|G1%H4~2DdtlW}%rdKhpse$o!3yX2J9ymx>O4!&rG4lRV+Ib$M*v-C7o~*aw2a4&Em&X zs0D6cTsDh}oXMXaLMH^Un8nP{)O{Mbp~c_)1=)+h_2GHc eP~3R|ea1I$xrm;t0(Xd<1^AN=2VJ zyWvkQYu?%2XP$ZHdEa?&`Fj2G_4*eV8VK{h-tY+FesiOT`GbuC%%5+ZAgsLp3;k>G zFxYeq<0DPC6JEa9^ux6Xb6Z+P_)gnh1h{{0A0a>-Xg`DTVtZKSvJ%olChh2v6~3Tw zEpMljd4n=cO=l?Sop7j!`HW@GQoo~N^KLHn8hzoAEWn0ECu6BNW}^Uj?fu#{IIe%PZ#PW&ZeRZ|v?~#Gx+=nuB@F4`YX84@fRNU9Fcd|)R!yohgQmI~B_>!` z3+!{^mE^9TC!Mz~L%MkwriJpTKURMDU|sEIMklpm$#!kmD;h!`vi97eyZwp5O@7PZ zuwOH{sca2?^NTR*2HSzE-*&8nv@zwdX3w}rY1lAxQ!YKMO;smdygYtKpb6laL^sA~ z5_>RSNGLr_D}vm#a-&Apjof^?Q!H0Jm8SKZ@5b$7ggw1CDUu_l!W)^a?@H2mQDJ_-Y4H<#>-}pZoxbPq-^)x?ft@;G zq}^a=Co?r;wrH1JNB?|EUF`5DUuuND|2%$8^o94H7+udz%{3fXD)}Ej5%A+r{!(Q1 zsVRUKpPJnW$v0j~h*lDRd2w)JibY(TaAl zXp~TO|GxMph%Ws3KJ0h&(oyX9gG+x{SHq~^`)+#;0QdiW5rBrv!!0Z}8CQm=2wnMD zD6Wi9=4USlw)5CvJQBsAOw$}TJmu=DctjiYpS=74n3XH-%>t#I#vm&>m!@>?-*crM z-)66z9c9)EZO&DPU3J=3`09%zcovPZv~ssXmPkTDpLL}ng;{cBNEuZMdd8JTutbiG z$SBLxR}VsQur<(~|+P{OSgfFGg7Pc^l23>n5J%!GSY0TDP$LLPEJ4y0lEvO{&SF37M7m z=ST-mU)iuoDniL`?JZ;}o3zy;Ui%CA+s^+2)a2r_ diff --git a/netbox/project-static/src/select/api/apiSelect.ts b/netbox/project-static/src/select/api/apiSelect.ts index e12a10421..5cd2c0055 100644 --- a/netbox/project-static/src/select/api/apiSelect.ts +++ b/netbox/project-static/src/select/api/apiSelect.ts @@ -8,11 +8,12 @@ import { DynamicParamsMap } from './dynamicParams'; import { isStaticParams, isOption } from './types'; import { hasMore, - isTruthy, hasError, - getElement, + isTruthy, getApiData, + getElement, isApiError, + replaceAll, createElement, uniqueByProperty, findFirstAdjacent, @@ -461,7 +462,7 @@ export class APISelect { // Set any primitive k/v pairs as data attributes on each option. for (const [k, v] of Object.entries(result)) { if (!['id', 'slug'].includes(k) && ['string', 'number', 'boolean'].includes(typeof v)) { - const key = k.replace(/_/g, '-'); + const key = replaceAll(k, '_', '-'); data[key] = String(v); } // Set option to disabled if the result contains a matching key and is truthy. @@ -659,7 +660,7 @@ export class APISelect { for (const [key, value] of this.pathValues.entries()) { for (const result of this.url.matchAll(new RegExp(`({{${key}}})`, 'g'))) { if (isTruthy(value)) { - url = url.replace(result[1], value.toString()); + url = replaceAll(url, result[1], value.toString()); } } } @@ -741,7 +742,7 @@ export class APISelect { * @param id DOM ID of the other element. */ private updatePathValues(id: string): void { - const key = id.replace(/^id_/gi, ''); + const key = replaceAll(id, /^id_/i, ''); const element = getElement(`id_${key}`); if (element !== null) { // If this element's URL contains Django template tags ({{), replace the template tag @@ -919,16 +920,18 @@ export class APISelect { style.setAttribute('data-netbox', id); // Scope the CSS to apply both the list item and the selected item. - style.innerHTML = ` + style.innerHTML = replaceAll( + ` div.ss-values div.ss-value[data-id="${id}"], div.ss-list div.ss-option:not(.ss-disabled)[data-id="${id}"] { background-color: ${bg} !important; color: ${fg} !important; } - ` - .replace(/\n/g, '') - .trim(); + `, + '\n', + '', + ).trim(); // Add the style element to the DOM. document.head.appendChild(style); diff --git a/netbox/project-static/src/tables/interfaceTable.ts b/netbox/project-static/src/tables/interfaceTable.ts index 6937a82e8..d2b20f322 100644 --- a/netbox/project-static/src/tables/interfaceTable.ts +++ b/netbox/project-static/src/tables/interfaceTable.ts @@ -1,4 +1,4 @@ -import { getElements, findFirstAdjacent } from '../util'; +import { getElements, replaceAll, findFirstAdjacent } from '../util'; type InterfaceState = 'enabled' | 'disabled'; type ShowHide = 'show' | 'hide'; @@ -105,9 +105,9 @@ class ButtonState { */ private toggleButton(): void { if (this.buttonState === 'show') { - this.button.innerText = this.button.innerText.replace(/Show/g, 'Hide'); + this.button.innerText = replaceAll(this.button.innerText, 'Show', 'Hide'); } else if (this.buttonState === 'hide') { - this.button.innerText = this.button.innerText.replace(/Hide/g, 'Show'); + this.button.innerText = replaceAll(this.button.innerHTML, 'Hide', 'Show'); } } diff --git a/netbox/project-static/src/util.ts b/netbox/project-static/src/util.ts index d85f9fbf9..b242cd567 100644 --- a/netbox/project-static/src/util.ts +++ b/netbox/project-static/src/util.ts @@ -315,7 +315,7 @@ export function* getRowValues(table: HTMLTableRowElement): Generator { for (const element of table.querySelectorAll('td')) { if (element !== null) { if (isTruthy(element.innerText) && element.innerText !== '—') { - yield element.innerText.replace(/[\n\r]/g, '').trim(); + yield replaceAll(element.innerText, '[\n\r]', '').trim(); } } } @@ -436,3 +436,49 @@ export function uniqueByProperty(arr: T[], } return Array.from(baseMap.values()); } + +/** + * Replace all occurrences of a pattern with a replacement string. + * + * This is a browser-compatibility-focused drop-in replacement for `String.prototype.replaceAll()`, + * introduced in ES2021. + * + * @param input string to be processed. + * @param pattern regex pattern string or RegExp object to search for. + * @param replacement replacement substring with which `pattern` matches will be replaced. + * @returns processed version of `input`. + */ +export function replaceAll(input: string, pattern: string | RegExp, replacement: string): string { + // Ensure input is a string. + if (typeof input !== 'string') { + throw new TypeError("replaceAll 'input' argument must be a string"); + } + // Ensure pattern is a string or RegExp. + if (typeof pattern !== 'string' && !(pattern instanceof RegExp)) { + throw new TypeError("replaceAll 'pattern' argument must be a string or RegExp instance"); + } + // Ensure replacement is able to be stringified. + switch (typeof replacement) { + case 'boolean': + replacement = String(replacement); + break; + case 'number': + replacement = String(replacement); + break; + case 'string': + break; + default: + throw new TypeError("replaceAll 'replacement' argument must be stringifyable"); + } + + if (pattern instanceof RegExp) { + // Add global flag to existing RegExp object and deduplicate + const flags = Array.from(new Set([...pattern.flags.split(''), 'g'])).join(''); + pattern = new RegExp(pattern.source, flags); + } else { + // Create a RegExp object with the global flag set. + pattern = new RegExp(pattern, 'g'); + } + + return input.replace(pattern, replacement); +}