1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <!DOCTYPE html> 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98<html class="ltr" dir="ltr" lang="pt-BR"> 99 100<head> 101 <title>NotÃcias - Sampa News - Prefeitura</title> 102 103 <meta content="initial-scale=1.0, width=device-width" name="viewport" /> 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136<meta content="text/html; charset=UTF-8" http-equiv="content-type" /> 137 138 139 140 141 142 143 144 145 146 147 148 149 150
151<script type="importmap">{"imports": {"@liferay/dynamic-data-mapping-form-field-type/api": "/o/dynamic-data-mapping-form-field-type/__liferay__/api.js","@clayui/alert": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$alert.js", "@clayui/autocomplete": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$autocomplete.js", "@clayui/badge": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$badge.js", "@clayui/breadcrumb": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$breadcrumb.js", "@clayui/button": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$button.js", "@clayui/card": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$card.js", "@clayui/color-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$color-picker.js", "@clayui/core": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$core.js", "@clayui/data-provider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$data-provider.js", "@clayui/date-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$date-picker.js", "@clayui/drop-down": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$drop-down.js", "@clayui/empty-state": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$empty-state.js", "@clayui/form": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$form.js", "@clayui/icon": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$icon.js", "@clayui/label": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$label.js", "@clayui/layout": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$layout.js", "@clayui/link": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$link.js", "@clayui/list": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$list.js", "@clayui/loading-indicator": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$loading-indicator.js", "@clayui/localized-input": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$localized-input.js", "@clayui/management-toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$management-toolbar.js", "@clayui/modal": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$modal.js", "@clayui/multi-select": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$multi-select.js", "@clayui/multi-step-nav": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$multi-step-nav.js", "@clayui/nav": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$nav.js", "@clayui/navigation-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$navigation-bar.js", "@clayui/pagination": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$pagination.js", "@clayui/pagination-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$pagination-bar.js", "@clayui/panel": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$panel.js", "@clayui/popover": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$popover.js", "@clayui/progress-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$progress-bar.js", "@clayui/provider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$provider.js", "@clayui/shared": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$shared.js", "@clayui/slider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$slider.js", "@clayui/sticker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$sticker.js", "@clayui/table": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$table.js", "@clayui/tabs": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$tabs.js", "@clayui/time-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$time-picker.js", "@clayui/toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$toolbar.js", "@clayui/tooltip": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$tooltip.js", "@clayui/upper-toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$upper-toolbar.js","react": "/o/frontend-js-react-web/__liferay__/exports/react.js", "react-16": "/o/frontend-js-react-web/__liferay__/exports/react-16.js", "react-18": "/o/frontend-js-react-web/__liferay__/exports/react-18.js", "react-dom": "/o/frontend-js-react-web/__liferay__/exports/react-dom.js", "react-dom/client": "/o/frontend-js-react-web/__liferay__/exports/react-dom$client.js", "react-dom-16": "/o/frontend-js-react-web/__liferay__/exports/react-dom-16.js", "react-dom-18": "/o/frontend-js-react-web/__liferay__/exports/react-dom-18.js", "react-dom-18/client": "/o/frontend-js-react-web/__liferay__/exports/react-dom-18$client.js","@liferay/fragment-impl/api": "/o/fragment-impl/__liferay__/api.js","@ckeditor/ckeditor5-adapter-ckfinder/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-adapter-ckfinder$dist$index.js.js", "@ckeditor/ckeditor5-alignment/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-alignment$dist$index.js.js", "@ckeditor/ckeditor5-autoformat/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-autoformat$dist$index.js.js", "@ckeditor/ckeditor5-autosave/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-autosave$dist$index.js.js", "@ckeditor/ckeditor5-basic-styles/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-basic-styles$dist$index.js.js", "@ckeditor/ckeditor5-block-quote/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-block-quote$dist$index.js.js", "@ckeditor/ckeditor5-bookmark/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-bookmark$dist$index.js.js", "@ckeditor/ckeditor5-ckbox/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ckbox$dist$index.js.js", "@ckeditor/ckeditor5-ckfinder/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ckfinder$dist$index.js.js", "@ckeditor/ckeditor5-clipboard/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-clipboard$dist$index.js.js", "@ckeditor/ckeditor5-cloud-services/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-cloud-services$dist$index.js.js", "@ckeditor/ckeditor5-code-block/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-code-block$dist$index.js.js", "@ckeditor/ckeditor5-core/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-core$dist$index.js.js", "@ckeditor/ckeditor5-easy-image/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-easy-image$dist$index.js.js", "@ckeditor/ckeditor5-editor-balloon/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-balloon$dist$index.js.js", "@ckeditor/ckeditor5-editor-classic/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-classic$dist$index.js.js", "@ckeditor/ckeditor5-editor-decoupled/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-decoupled$dist$index.js.js", "@ckeditor/ckeditor5-editor-inline/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-inline$dist$index.js.js", "@ckeditor/ckeditor5-editor-multi-root/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-multi-root$dist$index.js.js", "@ckeditor/ckeditor5-emoji/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-emoji$dist$index.js.js", "@ckeditor/ckeditor5-engine/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-engine$dist$index.js.js", "@ckeditor/ckeditor5-enter/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-enter$dist$index.js.js", "@ckeditor/ckeditor5-essentials/
151dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-essentials$dist$index.js.js", "@ckeditor/ckeditor5-find-and-replace/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-find-and-replace$dist$index.js.js", "@ckeditor/ckeditor5-font/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-font$dist$index.js.js", "@ckeditor/ckeditor5-fullscreen/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-fullscreen$dist$index.js.js", "@ckeditor/ckeditor5-heading/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-heading$dist$index.js.js", "@ckeditor/ckeditor5-highlight/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-highlight$dist$index.js.js", "@ckeditor/ckeditor5-horizontal-line/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-horizontal-line$dist$index.js.js", "@ckeditor/ckeditor5-html-embed/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-html-embed$dist$index.js.js", "@ckeditor/ckeditor5-html-support/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-html-support$dist$index.js.js", "@ckeditor/ckeditor5-icons/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-icons$dist$index.js.js", "@ckeditor/ckeditor5-image/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-image$dist$index.js.js", "@ckeditor/ckeditor5-indent/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-indent$dist$index.js.js", "@ckeditor/ckeditor5-language/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-language$dist$index.js.js", "@ckeditor/ckeditor5-link/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-link$dist$index.js.js", "@ckeditor/ckeditor5-list/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-list$dist$index.js.js", "@ckeditor/ckeditor5-markdown-gfm/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-markdown-gfm$dist$index.js.js", "@ckeditor/ckeditor5-media-embed/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-media-embed$dist$index.js.js", "@ckeditor/ckeditor5-mention/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-mention$dist$index.js.js", "@ckeditor/ckeditor5-minimap/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-minimap$dist$index.js.js", "@ckeditor/ckeditor5-page-break/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-page-break$dist$index.js.js", "@ckeditor/ckeditor5-paragraph/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-paragraph$dist$index.js.js", "@ckeditor/ckeditor5-paste-from-office/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-paste-from-office$dist$index.js.js", "@ckeditor/ckeditor5-react": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-react.js", "@ckeditor/ckeditor5-remove-format/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-remove-format$dist$index.js.js", "@ckeditor/ckeditor5-restricted-editing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-restricted-editing$dist$index.js.js", "@ckeditor/ckeditor5-select-all/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-select-all$dist$index.js.js", "@ckeditor/ckeditor5-show-blocks/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-show-blocks$dist$index.js.js", "@ckeditor/ckeditor5-source-editing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-source-editing$dist$index.js.js", "@ckeditor/ckeditor5-special-characters/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-special-characters$dist$index.js.js", "@ckeditor/ckeditor5-style/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-style$dist$index.js.js", "@ckeditor/ckeditor5-table/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-table$dist$index.js.js", "@ckeditor/ckeditor5-typing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-typing$dist$index.js.js", "@ckeditor/ckeditor5-ui/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ui$dist$index.js.js", "@ckeditor/ckeditor5-undo/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-undo$dist$index.js.js", "@ckeditor/ckeditor5-upload/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-upload$dist$index.js.js", "@ckeditor/ckeditor5-utils/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-utils$dist$index.js.js", "@ckeditor/ckeditor5-watchdog/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-watchdog$dist$index.js.js", "@ckeditor/ckeditor5-widget/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-widget$dist$index.js.js", "@ckeditor/ckeditor5-word-count/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-word-count$dist$index.js.js","@liferay/frontend-js-api": "/o/frontend-js-dependencies-web/__liferay__/exports/@liferay$js-api.js", "@liferay/frontend-js-api/data-set": "/o/frontend-js-dependencies-web/__liferay__/exports/@liferay$js-api$data-set.js","@liferay/o
151auth2-provider-web/client": "/o/oauth2-provider-web/__liferay__/client.js","@liferay/language/": "/o/js/language/"}, "scopes": {}}</script>
151<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" rel="canonical" /> 152<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="es-ES" rel="alternate" /> 153<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="en-US" rel="alternate" /> 154<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="pt-BR" rel="alternate" /> 155<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="x-default" rel="alternate" /> 156 157<meta property="og:locale" content="pt_BR"> 158<meta property="og:locale:alternate" content="pt_BR"> 159<meta property="og:locale:alternate" content="en_US"> 160<meta property="og:locale:alternate" content="es_ES"> 161<meta property="og:site_name" content="Sampa News"> 162<meta property="og:title" content="NotÃcias - Sampa News - Prefeitura"> 163<meta property="og:type" content="website"> 164<meta property="og:url" content="https://sampanews.sp.gov.br/noticias"> 165 166 167<link href="https://sampanews.sp.gov.br/o/dialect-theme/images/favicon.ico" rel="apple-touch-icon" /> 168<link href="https://sampanews.sp.gov.br/o/dialect-theme/images/favicon.ico" rel="icon" /> 169 170 171 172<link class="lfr-css-file" data-senna-track="temporary" href="/o/dialect-theme/css/clay.(FLVl71WwKTc).css" id="liferayAUICSS" rel="stylesheet" type="text/css" /> 173 174 175 176 177 178 179 180 181 182 <link href="https://sampanews.sp.gov.br/o/cookies-banner-web/cookies_banner/css/main.(rrlPSd7LGsE).css" rel="stylesheet" type="text/css" 183 data-senna-track="temporary" id="e4ad11ab" /> 184<link href="https://sampanews.sp.gov.br/o/portal-search-web/css/main.(ewQ02j$q6kw).css" rel="stylesheet" type="text/css" 185 data-senna-track="temporary" id="a9b8c218" /> 186<link href="https://sampanews.sp.gov.br/o/product-navigation-product-menu-web/css/main.(i$0IgPwR2kk).css" rel="stylesheet" type="text/css" 187 data-senna-track="temporary" id="ebf5f43b" /> 188<link href="https://sampanews.sp.gov.br/o/site-navigation-menu-web/css/main.(wnU1o3f4AJ0).css" rel="stylesheet" type="text/css" 189 data-senna-track="temporary" id="800909" /> 190 191 192 193 194 195 196 197
198<script data-senna-track="temporary" type="text/javascript"> 199(function() { 200 function buildESMStub(contextPath, symbol) { 201 return ( 202 (...args) => { 203 import( 204 Liferay.ThemeDisplay.getCDNHost() + 205 Liferay.ThemeDisplay.getPathContext() + 206 '/o/' + 207 contextPath + 208 '/__liferay__/index.js' 209 ).then( 210 (exports) => exports[symbol](...args) 211 ); 212 } 213 ); 214 } 215 216 function defineReadOnlyGlobal(name, getValue) { 217 Object.defineProperty( 218 window, 219 name, 220 { 221 get: getValue, 222 set: (x) => { 223 if (x !== getValue()) { 224 console.error(`Global variable '${name}' is read-only`); 225 } 226 } 227 } 228 ); 229 } 230 231 function isObject(item) { 232 return (item && typeof item === 'object' && !Array.isArray(item)); 233 } 234 235 function merge(target, source) { 236 for (const key in source) { 237 if (isObject(source[key])) { 238 if (!target[key]) { 239 Object.assign(target, { [key]: {} }); 240 } 241 242 merge(target[key], source[key]); 243 } 244 else { 245 Object.assign(target, { [key]: source[key] }); 246 } 247 } 248 } 249 250 let __liferay = { 251AUI: { 252getCombine: () => true, 253getComboPath: () => '/combo/?browserId=chrome&minifierType=&languageId=pt_BR&t=1790649509599&', 254getDateFormat: () => '%d/%m/%Y', 255getEditorCKEditorPath: () => '/o/frontend-editor-ckeditor-web', 256getFilter: () => 'min', 257getFilterConfig: () => null, 258getJavaScriptRootPath: () => '/o/frontend-js-web', 259getPortletRootPath: () => '/html/portlet', 260getStaticResourceURLParams: () => '?browserId=chrome&minifierType=&languageId=pt_BR&t=1790649509599', 261}, 262Browser: { 263acceptsGzip: () => true, 264getMajorVersion: () => '128.0', 265getRevision: () => '537.36', 266getVersion: () => '128.0', 267isAir: () => false, 268isChrome: () => true, 269isEdge: () => false, 270isFirefox: () => false, 271isGecko: () => true, 272isIe: () => false, 273isIphone: () => false, 274isLinux: () => false, 275isMac: () => false, 276isMobile: () => false, 277isMozilla: () => false, 278isOpera: () => false, 279isRtf: () => true, 280isSafari: () => true, 281isSun: () => false, 282isWebKit: () => true, 283isWindows: () => false, 284}, 285Data: { 286ICONS_INLINE_SVG: true, 287NAV_SELECTOR: '#navigation', 288NAV_SELECTOR_MOBILE: '#navigationCollapse', 289isCustomizationView: () => false, 290notices: [ 291], 292}, 293FeatureFlags: { 294'LPD-11342': false, 295'LPD-23840': false, 296'LPD-36010': true, 297'LPD-36719': true, 298'LPD-39203': false, 299'LPD-40529': true, 300'LPD-48372': true, 301'LPD-48975': true, 302'LPD-78863': true, 303'LPS-157670': false, 304'LPS-172416': false, 305'LPS-183672': false, 306'LPS-186360': false, 307'LRAC-14771': false, 308'COMMERCE-13024': false, 309'COMMERCE-8087': false, 310'COMMERCE-8949': false, 311'LPD-10562': false, 312'LPD-10964': false, 313'LPD-11003': false, 314'LPD-11131': true, 315'LPD-11228': false, 316'LPD-11235': false, 317'LPD-11313': false, 318'LPD-11848': false, 319'LPD-13311': true, 320'LPD-13778': true, 321'LPD-17564': false, 322'LPD-19870': false, 323'LPD-19955': false, 324'LPD-20183': false, 325'LPD-20379': false, 326'LPD-20640': false, 327'LPD-21414': false, 328'LPD-29516': false, 329'LPD-31212': false, 330'LPD-31228': false, 331'LPD-31789': false, 332'LPD-32867': false, 333'LPD-34594': false, 334'LPD-35013': true, 335'LPD-35128': false, 336'LPD-35443': false, 337'LPD-36105': false, 338'LPD-38564': false, 339'LPD-38869': false, 340'LPD-39304': true, 341'LPD-39437': false, 342'LPD-40530': true, 343'LPD-40533': true, 344'LPD-40534': true, 345'LPD-40535': true, 346'LPD-42553': false, 347'LPD-43996': false, 348'LPD-44091': true, 349'LPD-44307': true, 350'LPD-44771': true, 351'LPD-45276': false, 352'LPD-47713': true, 353'LPD-48862': true, 354'LPD-51356': false, 355'LPD-56718': false, 356'LPD-57655': false, 357'LPD-58677': false, 358'LPD-60546': true, 359'LPD-62272': false, 360'LPD-63311': false, 361'LPD-63415': false, 362'LPD-63416': false, 363'LPD-6368': false, 364'LPD-65299': false, 365'LPD-65399': false, 366'LPD-66359': false, 367'LPD-66611': true, 368'LPD-74328': false, 369'LPD-74739': true, 370'LPD-75032': false, 371'LPD-75525': false, 372'LPD-7822': false, 373'LPS-122920': false, 374'LPS-135430': false, 375'LPS-153332': false, 376'LPS-153714': false, 377'LPS-153813': false, 378'LPS-155284': false, 379'LPS-159643': false, 380'LPS-164563': false, 381'LPS-165482': false, 382'LPS-169837': false, 383'LPS-170670': false, 384'LPS-174417': false, 385'LPS-174816': false, 386'LPS-176691': false, 387'LPS-177027': false, 388'LPS-178052': false, 389'LPS-178642': false, 390'LPS-180090': false, 391'LPS-185892': false, 392'LPS-186620': false, 393'LPS-193884': false, 394'LPS-196935': false, 395'LPS-197477': false, 396'LPS-197909': false, 397'LPS-198183': false, 398'LPS-200108': false, 399'LPS-202104': false, 400'LRAC-10757': false, 401'LRAC-15017': false, 402}, 403Language: { 404 _cache: 405 window?.Liferay?.Language?._cache 406 ? Liferay.Language._cache 407 : {}, 408 available: { 409'pt_BR': 'português\x20\x28Brasil\x29', 410'en_US': 'English\x20\x28United\x20States\x29', 411'es_ES': 'español\x20\x28España\x29', 412 413 }, 414 direction: { 415'pt_BR': 'ltr', 416'en_US': 'ltr', 417'es_ES': 'ltr', 418 419 }, 420 get: 421 (key) => { 422 let value = Liferay.Language._cache[key]; 423 424 if (value === undefined) { 425 value = key; 426 } 427 428 return value; 429 }, 430}, 431Portlet: { 432openModal: buildESMStub('frontend-js-components-web', 'openPortletModal'), 433openWindow: buildESMStub('frontend-js-components-web', 'openPortletWindow'), 434}, 435PortletKeys: { 436DOCUMENT_LIBRARY: 'com_liferay_document_library_web_portlet_DLPortlet', 437DYNAMIC_DATA_MAPPING: 'com_liferay_dynamic_data_mapping_web_portlet_DDMPortlet', 438INSTANCE_SETTINGS: 'com_liferay_configuration_admin_web_portlet_InstanceSettingsPortlet', 439ITEM_SELECTOR: 'com_liferay_item_selector_web_portlet_ItemSelectorPortlet', 440}, 441PropsValues: { 442JAVASCRIPT_SINGLE_PAGE_APPLICATION_TIMEOUT: 0, 443UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE: 1048576000, 444}, 445ThemeDisplay: { 446getLayoutId: () => '41', 447getLayoutRelativeControlPanelURL: () => '/group/sampa-news/~/control_panel/manage', 448getLayoutRelativeURL: () => '/noticias', 449getLayoutURL: () => 'https://sampanews.sp.gov.br/noticias', 450getParentLayoutId: () => '0', 451getPathFriendlyURLPublic: () => '/web', 452isControlPanel: () => false, 453isPrivateLayout: () => false, 454isVirtualLayout: () => false, 455getBCP47LanguageId: () => 'pt-BR', 456getCanonicalURL: () => 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fnoticias', 457getCDNBaseURL: () => 'https://sampanews.sp.gov.br', 458getCDNDynamicResourcesHost: () => '', 459getCDNHost: () => '', 460getCompanyGroupId: () => '20121', 461getCompanyId: () => '20095', 462getDefaultLanguageId: () => 'pt_BR', 463getDoAsUserIdEncoded: () => '', 464getLanguageId: () => 'pt_BR', 465getParentGroupId: () => '24771855', 466getParentSiteGroupId: () => '34276', 467getPathContext: () => '', 468getPathImage: () => '/image', 469getPathJavaScript: () => '/o/frontend-js-web', 470getPathMain: () => '/c', 471getPathThemeImages: () => 'https://sampanews.sp.gov.br/o/dialect-theme/images', 472getPathThemeRoot: () => '/o/dialect-theme', 473getPlid: () => '24592', 474getPortalURL: () => 'https://sampanews.sp.gov.br', 475getRealUserId: () => '20097', 476getRemoteAddr: () => '181.215.65.35', 477getRemoteHost: () => '181.215.65.35', 478getScopeGroupId: () => '24771855', 479getScopeGroupIdOrLiveGroupId: () => '24771855', 480getSessionId: () => '', 481getSiteAdminURL: () => 'https://sampanews.sp.gov.br/group/sampa-news/~/control_panel/manage?p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view', 482getSiteGroupId: () => '24771855', 483getTimeZone: () => 'America/Sao_Paulo', 484getURLControlPanel: () => '/group/control_panel?refererPlid=24592', 485getURLHome: () => 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fweb\x2fprefeitura-de-sao-paulo\x2f', 486getUserEmailAddress: () => '', 487getUserId: () => '20097', 488getUserName: () => '', 489isAddSessionIdToURL: () => false, 490isImpersonated: () => false, 491isSignedIn: () => false, 492isStagedPortlet: () => false, 493isStateExclusive: () => false, 494isStateMaximized: () => false, 495isStatePopUp: () => false, 496}, 497Util: { 498Window: { 499 _map: {}, 500 getById: (id) => Liferay.Util.Window._map[id], 501}, 502openAlertModal: buildESMStub('frontend-js-components-web', 'openAlertModal'), 503openConfirmModal: buildESMStub('frontend-js-components-web', 'openConfirmModal'), 504openModal: buildESMStub('frontend-js-components-web', 'openModal'), 505openSelectionModal: buildESMStub('frontend-js-components-web', 'openSelectionModal'), 506openSimpleInputModal: buildESMStub('frontend-js-components-web', 'openSimpleInputModal'), 507openToast: buildESMStub('frontend-js-components-web', 'openToast'), 508}, 509authToken: '0xf4SxD9', 510currentURL: '\x2fnoticias', 511currentURLEncoded: '\x252Fnoticias', 512 513 }; 514 515 if (window.Liferay) {
516 merge(window.Liferay, __liferay); 517 } 518 else { 519 defineReadOnlyGlobal('Liferay', () => __liferay); 520 defineReadOnlyGlobal('themeDisplay', () => window.Liferay.ThemeDisplay); 521 } 522})(); 523</script>
vendor: 1 bytes, line 523
523
524<script data-senna-track="permanent" src="/o/portal-url-builder-impl/Liferay.js" type="text/javascript"></script>
524<script data-senna-track="permanent" src="/combo?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649509599&/o/frontend-js-aui-web/aui/aui/aui-min.js&/o/frontend-js-aui-web/liferay/modules.js&/o/frontend-js-aui-web/liferay/aui_sandbox.js&/o/frontend-js-aui-web/aui/attribute-base/attribute-base-min.js&/o/frontend-js-aui-web/aui/attribute-complex/attribute-complex-min.js&/o/frontend-js-aui-web/aui/attribute-core/attribute-core-min.js&/o/frontend-js-aui-web/aui/attribute-observable/attribute-observable-min.js&/o/frontend-js-aui-web/aui/attribute-extras/attribute-extras-min.js&/o/frontend-js-aui-web/aui/event-custom-base/event-custom-base-min.js&/o/frontend-js-aui-web/aui/event-custom-complex/event-custom-complex-min.js&/o/frontend-js-aui-web/aui/oop/oop-min.js&/o/frontend-js-aui-web/aui/aui-base-lang/aui-base-lang-min.js&/o/frontend-js-aui-web/liferay/dependency.js" type="text/javascript"></script>
vendor: 1 bytes, line 524
524
525<script data-senna-track="permanent" src="/o/frontend-js-web/Liferay.js" type="text/javascript"></script>
vendor: 1 bytes, line 525
525
526<script data-senna-track="permanent" type="module">await import(`@liferay/language/${Liferay.ThemeDisplay.getLanguageId()}/frontend-js-web/all.js`);</script>
vendor: 1 bytes, line 526
526
527<script data-senna-track="temporary" type="text/javascript">window.__CONFIG__= {basePath: '', combine: true, defaultURLParams: null, explainResolutions: false, exposeGlobal: false, logLevel: 'warn', moduleType: 'module', namespace:'Liferay', nonce: '', reportMismatchedAnonymousModules: 'warn', resolvePath: '/o/js_resolve_modules', url: '/combo/?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649509599&', waitTimeout: 60000};</script>
527<script data-senna-track="permanent" src="/o/frontend-js-loader-modules-extender/loader.js" type="text/javascript"></script>
527<script data-senna-track="temporary">Liferay.Icons = Liferay.Icons || {};Liferay.Icons.controlPanelSpritemap = 'https://sampanews.sp.gov.br/o/admin-theme/images/clay/icons.svg'; Liferay.Icons.spritemap = 'https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg';</script>
vendor: 1 bytes, line 527
527
528<script data-senna-track="permanent" type="text/javascript">window.Liferay.CSP = {nonce: ''};</script>
vendor: 1 bytes, line 528
528
529<script data-senna-track="permanent" src="/o/oauth2-provider-web/__liferay__/global.js" type="module"></script>
vendor: 1 bytes, line 529
529
530<script data-senna-track="temporary" type="text/javascript">window.Liferay = Liferay || {}; window.Liferay.OAuth2 = {getAuthorizeURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/authorize';}, getBuiltInRedirectURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/redirect';}, getIntrospectURL: function() { return 'https://sampanews.sp.gov.br/o/oauth2/introspect';}, getTokenURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/token';}, getUserAgentApplication: function(externalReferenceCode) {return Liferay.OAuth2._userAgentApplications[externalReferenceCode];}, _userAgentApplications: {}}</script>
530<script data-senna-track="temporary" type="text/javascript">try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-editor-alloyeditor-web';/** 531 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 532 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 533 */ 534 535(function () { 536 AUI().applyConfig({ 537 groups: { 538 alloyeditor: { 539 base: MODULE_PATH + '/js/legacy/', 540 combine: Liferay.AUI.getCombine(), 541 filter: Liferay.AUI.getFilterConfig(), 542 modules: { 543 'liferay-alloy-editor': { 544 path: 'alloyeditor.js', 545 requires: [ 546 'aui-component', 547 'liferay-portlet-base', 548 'timers', 549 ], 550 }, 551 'liferay-alloy-editor-source': { 552 path: 'alloyeditor_source.js', 553 requires: [ 554 'aui-debounce', 555 'liferay-fullscreen-source-editor', 556 'liferay-source-editor', 557 'plugin', 558 ], 559 }, 560 'liferay-fullscreen-source-editor': { 561 path: 'fullscreen_source_editor.js', 562 requires: ['liferay-source-editor'], 563 }, 564 'liferay-source-editor': { 565 path: 'source_editor.js', 566 requires: ['aui-ace-editor'], 567 }, 568 }, 569 root: MODULE_PATH + '/js/legacy/', 570 }, 571 }, 572 }); 573})(); 574} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/calendar-web';/** 575 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 576 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 577 */ 578 579(function () { 580 AUI().applyConfig({ 581 groups: { 582 calendar: { 583 base: MODULE_PATH + '/js/legacy/', 584 combine: Liferay.AUI.getCombine(), 585 filter: Liferay.AUI.getFilterConfig(), 586 modules: { 587 'liferay-calendar-a11y': { 588 path: 'calendar_a11y.js', 589 requires: ['calendar'], 590 }, 591 'liferay-calendar-container': { 592 path: 'calendar_container.js', 593 requires: [ 594 'aui-alert', 595 'aui-base', 596 'aui-component', 597 'liferay-portlet-base', 598 ], 599 }, 600 'liferay-calendar-date-picker-sanitizer': { 601 path: 'date_picker_sanitizer.js', 602 requires: ['aui-base'], 603 }, 604 'liferay-calendar-interval-selector': { 605 path: 'interval_selector.js', 606 requires: ['aui-base', 'liferay-portlet-base'], 607 }, 608 'liferay-calendar-interval-selector-scheduler-event-link': { 609 path: 'interval_selector_scheduler_event_link.js', 610 requires: ['aui-base', 'liferay-portlet-base'], 611 }, 612 'liferay-calendar-list': { 613 path: 'calendar_list.js', 614 requires: [ 615 'aui-template-deprecated', 616 'liferay-scheduler', 617 ], 618 }, 619 'liferay-calendar-message-util': { 620 path: 'message_util.js', 621 requires: ['liferay-util-window'], 622 }, 623 'liferay-calendar-recurrence-converter': { 624 path: 'recurrence_converter.js', 625 requires: [], 626 }, 627 'liferay-calendar-recurrence-dialog': { 628 path: 'recurrence.js', 629 requires: [ 630 'aui-base', 631 'liferay-calendar-recurrence-util', 632 ], 633 }, 634 'liferay-calendar-recurrence-util': { 635 path: 'recurrence_util.js', 636 requires: ['aui-base', 'liferay-util-window'], 637 }, 638 'liferay-calendar-reminders': { 639 path: 'calendar_reminders.js', 640 requires: ['aui-base'], 641 }, 642 'liferay-calendar-remote-services': { 643 path: 'remote_services.js', 644 requires: [ 645 'aui-base', 646 'aui-component', 647 'liferay-calendar-util', 648 'liferay-portlet-base', 649 ], 650 }, 651 'liferay-calendar-session-listener': { 652 path: 'session_listener.js', 653 requires: ['aui-base', 'liferay-scheduler'], 654 }, 655 'liferay-calendar-simple-color-picker': { 656 path: 'simple_color_picker.js', 657 requires: ['aui-base', 'aui-template-deprecated'], 658 }, 659 'liferay-calendar-simple-menu': { 660 path: 'simple_menu.js', 661 requires: [ 662 'aui-base', 663 'aui-template-deprecated', 664 'event-outside', 665 'event-touch', 666 'widget-modality', 667 'widget-position', 668 'widget-position-align', 669 'widget-position-constrain', 670 'widget-stack', 671 'widget-stdmod', 672 ], 673 }, 674 'liferay-calendar-util': { 675 path: 'calendar_util.js', 676 requires: [ 677 'aui-datatype', 678 'aui-io', 679 'aui-scheduler', 680 'aui-toolbar', 681 'autocomplete', 682 'autocomplete-highlighters', 683 ], 684 }, 685 'liferay-scheduler': { 686 path: 'scheduler.js', 687 requires: [ 688 'async-queue', 689 'aui-datatype', 690 'aui-scheduler', 691 'dd-plugin', 692 'liferay-calendar-a11y', 693 'liferay-calendar-message-util', 694 'liferay-calendar-recurrence-converter', 695 'liferay-calendar-recurrence-util', 696 'liferay-calendar-util', 697 'liferay-scheduler-event-recorder', 698 'liferay-scheduler-models', 699 'promise', 700 'resize-plugin', 701 ], 702 }, 703 'liferay-scheduler-event-recorder': { 704 path: 'scheduler_event_recorder.js', 705 requires: [ 706 'dd-plugin', 707 'liferay-calendar-util', 708 'resize-plugin', 709 ], 710 }, 711 'liferay-scheduler-models': { 712 path: 'scheduler_models.js', 713 requires: [ 714 'aui-datatype', 715 'dd-plugin', 716 'liferay-calendar-util', 717 ], 718 }, 719 }, 720 root: MODULE_PATH + '/js/legacy/', 721 }, 722 }, 723 }); 724})(); 725} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/layout-js-components-web';/** 726 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 727 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 728 */ 729 730(function () { 731 AUI().applyConfig({ 732 groups: { 733 layout: { 734 base: MODULE_PATH + '/js/legacy/', 735 combine: Liferay.AUI.getCombine(), 736 filter: Liferay.AUI.getFilterConfig(), 737 modules: { 738 'liferay-layout': { 739 path: 'layout.js', 740 }, 741 'liferay-layout-column': { 742 path: 'layout_column.js', 743 requires: ['aui-sortable-layout', 'dd'], 744 }, 745 }, 746 root: MODULE_PATH + '/js/legacy/', 747 }, 748 }, 749 }); 750})(); 751} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/frontend-js-state-web';/** 752 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 753 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 754 */ 755 756(function () { 757 AUI().applyConfig({ 758 groups: { 759 state: { 760 761 // eslint-disable-next-line 762 mainModule: MODULE_MAIN, 763 }, 764 }, 765 }); 766})(); 767} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/frontend-js-react-web';/** 768 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 769 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 770 */ 771 772(function () { 773 AUI().applyConfig({ 774 groups: { 775 react: { 776 777 // eslint-disable-next-line 778 mainModule: MODULE_MAIN, 779 }, 780 }, 781 }); 782})(); 783} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/portal-search-web';/** 784 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 785 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 786 */ 787 788(function () { 789 AUI().applyConfig({ 790 groups: { 791 search: { 792 base: MODULE_PATH + '/js/', 793 combine: Liferay.AUI.getCombine(), 794 filter: Liferay.AUI.getFilterConfig(), 795 modules: { 796 'liferay-search-custom-range-facet': { 797 path: 'custom_range_facet.js', 798 requires: ['aui-form-validator'], 799 }, 800 }, 801 root: MODULE_PATH + '/js/', 802 }, 803 }, 804 }); 805})(); 806} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/document-library-web';/** 807 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 808 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 809 */ 810 811(function () { 812 AUI().applyConfig({ 813 groups: { 814 dl: { 815 base: MODULE_PATH + '/js/legacy/', 816 combine: Liferay.AUI.getCombine(), 817 filter: Liferay.AUI.getFilterConfig(), 818 modules: { 819 'document-library-upload-component': { 820 path: 'DocumentLibraryUpload.js', 821 requires: [ 822 'aui-component', 823 'aui-data-set-deprecated', 824 'aui-overlay-manager-deprecated', 825 'aui-overlay-mask-deprecated', 826 'aui-parse-content', 827 'aui-progressbar', 828 'aui-template-deprecated', 829 'liferay-search-container', 830 'querystring-parse-simple', 831 'uploader', 832 ], 833 }, 834 }, 835 root: MODULE_PATH + '/js/legacy/', 836 }, 837 }, 838 }); 839})(); 840} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/portal-workflow-kaleo-designer-web';/** 841 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 842 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 843 */ 844 845(function () { 846 AUI().applyConfig({ 847 groups: { 848 'kaleo-designer': { 849 base: MODULE_PATH + '/designer/js/legacy/', 850 combine: Liferay.AUI.getCombine(), 851 filter: Liferay.AUI.getFilterConfig(), 852 modules: { 853 'liferay-kaleo-designer-autocomplete-util': { 854 path: 'autocomplete_util.js', 855 requires: ['autocomplete', 'autocomplete-highlighters'], 856 }, 857 'liferay-kaleo-designer-definition-diagram-controller': { 858 path: 'definition_diagram_controller.js', 859 requires: [ 860 'liferay-kaleo-designer-field-normalizer', 861 'liferay-kaleo-designer-utils', 862 ], 863 }, 864 'liferay-kaleo-designer-dialogs': { 865 path: 'dialogs.js', 866 requires: ['liferay-util-window'], 867 }, 868 'liferay-kaleo-designer-editors': { 869 path: 'editors.js', 870 requires: [ 871 'aui-ace-editor', 872 'aui-ace-editor-mode-xml', 873 'aui-base', 874 'aui-datatype', 875 'aui-node', 876 'liferay-kaleo-designer-autocomplete-util', 877 'liferay-kaleo-designer-utils', 878 ], 879 }, 880 'liferay-kaleo-designer-field-normalizer': { 881 path: 'field_normalizer.js', 882 requires: ['liferay-kaleo-designer-remote-services'], 883 }, 884 'liferay-kaleo-designer-nodes': { 885 path: 'nodes.js', 886 requires: [ 887 'aui-datatable', 888 'aui-datatype', 889 'aui-diagram-builder', 890 'liferay-kaleo-designer-editors', 891 'liferay-kaleo-designer-utils', 892 ], 893 }, 894 'liferay-kaleo-designer-remote-services': { 895 path: 'remote_services.js', 896 requires: ['aui-io'], 897 }, 898 'liferay-kaleo-designer-templates': { 899 path: 'templates.js', 900 requires: ['aui-tpl-snippets-deprecated'], 901 }, 902 'liferay-kaleo-designer-utils': { 903 path: 'utils.js', 904 requires: [], 905 }, 906 'liferay-kaleo-designer-xml-definition': { 907 path: 'xml_definition.js', 908 requires: [ 909 'aui-base', 910 'aui-component', 911 'dataschema-xml', 912 'datatype-xml', 913 ], 914 }, 915 'liferay-kaleo-designer-xml-definition-serializer': { 916 path: 'xml_definition_serializer.js', 917 requires: ['escape', 'liferay-kaleo-designer-xml-util'], 918 }, 919 'liferay-kaleo-designer-xml-util': { 920 path: 'xml_util.js', 921 requires: ['aui-base'], 922 }, 923 'liferay-portlet-kaleo-designer': { 924 path: 'main.js', 925 requires: [ 926 'aui-ace-editor', 927 'aui-ace-editor-mode-xml', 928 'aui-tpl-snippets-deprecated', 929 'dataschema-xml', 930 'datasource', 931 'datatype-xml', 932 'event-valuechange', 933 'io-form', 934 'liferay-kaleo-designer-autocomplete-util', 935 'liferay-kaleo-designer-editors', 936 'liferay-kaleo-designer-nodes', 937 'liferay-kaleo-designer-remote-services', 938 'liferay-kaleo-designer-utils', 939 'liferay-kaleo-designer-xml-util', 940 'liferay-util-window', 941 ], 942 }, 943 }, 944 root: MODULE_PATH + '/designer/js/legacy/', 945 }, 946 }, 947 }); 948})(); 949} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-js-components-web';/** 950 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 951 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 952 */ 953 954(function () { 955 AUI().applyConfig({ 956 groups: { 957 components: { 958 959 // eslint-disable-next-line 960 mainModule: MODULE_MAIN, 961 }, 962 }, 963 }); 964})(); 965} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-editor-ckeditor-web';/** 966 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 967 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 968 */ 969 970(function () { 971 AUI().applyConfig({ 972 groups: { 973 editor: { 974 base: MODULE_PATH + '/js/legacy/', 975 combine: Liferay.AUI.getCombine(), 976 filter: Liferay.AUI.getFilterConfig(), 977 modules: { 978 'inline-editor-ckeditor': { 979 path: 'main.js', 980 requires: [ 981 'array-invoke', 982 'liferay-inline-editor-base', 983 'node-event-simulate', 984 'overlay', 985 'yui-later', 986 ], 987 }, 988 'liferay-inline-editor-base': { 989 path: 'inline_editor_base.js', 990 requires: ['aui-base', 'aui-overlay-base-deprecated'], 991 }, 992 }, 993 root: MODULE_PATH + '/js/legacy/', 994 }, 995 }, 996 }); 997})(); 998} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/contacts-web';/** 999 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1000 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 1001 */ 1002 1003(function () { 1004 AUI().applyConfig({ 1005 groups: { 1006 contactscenter: { 1007 base: MODULE_PATH + '/js/legacy/', 1008 combine: Liferay.AUI.getCombine(), 1009 filter: Liferay.AUI.getFilterConfig(), 1010 modules: { 1011 'liferay-contacts-center': { 1012 path: 'main.js', 1013 requires: [ 1014 'aui-io-plugin-deprecated', 1015 'aui-toolbar', 1016 'autocomplete-base', 1017 'datasource-io', 1018 'json-parse', 1019 'liferay-portlet-base', 1020 'liferay-util-window', 1021 ], 1022 }, 1023 }, 1024 root: MODULE_PATH + '/js/legacy/', 1025 }, 1026 }, 1027 }); 1028})(); 1029} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/exportimport-web';/** 1030 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1031 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 1032 */ 1033 1034(function () { 1035 AUI().applyConfig({ 1036 groups: { 1037 exportimportweb: { 1038 base: MODULE_PATH + '/js/legacy/', 1039 combine: Liferay.AUI.getCombine(), 1040 filter: Liferay.AUI.getFilterConfig(), 1041 modules: { 1042 'liferay-export-import-export-import': { 1043 path: 'main.js', 1044 requires: [ 1045 'aui-datatype', 1046 'aui-dialog-iframe-deprecated', 1047 'aui-modal', 1048 'aui-parse-content', 1049 'aui-toggler', 1050 'liferay-portlet-base', 1051 'liferay-util-window', 1052 ], 1053 }, 1054 }, 1055 root: MODULE_PATH + '/js/legacy/', 1056 }, 1057 }, 1058 }); 1059})(); 1060} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/staging-processes-web';/** 1061 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1062 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 1063 */ 1064 1065(function () { 1066 AUI().applyConfig({ 1067 groups: { 1068 stagingprocessesweb: { 1069 base: MODULE_PATH + '/js/legacy/', 1070 combine: Liferay.AUI.getCombine(), 1071 filter: Liferay.AUI.getFilterConfig(), 1072 modules: { 1073 'liferay-staging-processes-export-import': { 1074 path: 'main.js', 1075 requires: [ 1076 'aui-datatype', 1077 'aui-dialog-iframe-deprecated', 1078 'aui-modal', 1079 'aui-parse-content', 1080 'aui-toggler', 1081 'liferay-portlet-base', 1082 'liferay-util-window', 1083 ], 1084 }, 1085 }, 1086 root: MODULE_PATH + '/js/legacy/', 1087 }, 1088 }, 1089 }); 1090})(); 1091} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/dynamic-data-mapping-web';/** 1092 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1093 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0
1093-2023-06 1094 */ 1095 1096(function () { 1097 const LiferayAUI = Liferay.AUI; 1098 1099 AUI().applyConfig({ 1100 groups: { 1101 ddm: { 1102 base: MODULE_PATH + '/js/legacy/', 1103 combine: Liferay.AUI.getCombine(), 1104 filter: LiferayAUI.getFilterConfig(), 1105 modules: { 1106 'liferay-ddm-form': { 1107 path: 'ddm_form.js', 1108 requires: [ 1109 'aui-base', 1110 'aui-datatable', 1111 'aui-datatype', 1112 'aui-image-viewer', 1113 'aui-parse-content', 1114 'aui-set', 1115 'aui-sortable-list', 1116 'json', 1117 'liferay-form', 1118 'liferay-map-base', 1119 'liferay-translation-manager', 1120 'liferay-util-window', 1121 ], 1122 }, 1123 'liferay-portlet-dynamic-data-mapping': { 1124 condition: { 1125 trigger: 'liferay-document-library', 1126 }, 1127 path: 'main.js', 1128 requires: [ 1129 'arraysort', 1130 'aui-form-builder-deprecated', 1131 'aui-form-validator', 1132 'aui-map', 1133 'aui-text-unicode', 1134 'json', 1135 'liferay-menu', 1136 'liferay-translation-manager', 1137 'liferay-util-window', 1138 'text', 1139 ], 1140 }, 1141 'liferay-portlet-dynamic-data-mapping-custom-fields': { 1142 condition: { 1143 trigger: 'liferay-document-library', 1144 }, 1145 path: 'custom_fields.js', 1146 requires: ['liferay-portlet-dynamic-data-mapping'], 1147 }, 1148 'liferay-translation-manager': { 1149 path: 'translation_manager.js', 1150 requires: ['aui-base'], 1151 }, 1152 }, 1153 root: MODULE_PATH + '/js/legacy/', 1154 }, 1155 }, 1156 }); 1157})(); 1158} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/site-navigation-menu-web';/** 1159 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1160 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 1161 */ 1162 1163(function () { 1164 AUI().applyConfig({ 1165 groups: { 1166 navigationmenuweb: { 1167 base: MODULE_PATH + '/js/legacy/', 1168 combine: Liferay.AUI.getCombine(), 1169 filter: Liferay.AUI.getFilterConfig(), 1170 modules: { 1171 'liferay-navigation-interaction': { 1172 path: 'navigation_interaction.js', 1173 plugins: { 1174 'liferay-navigation-interaction-touch': { 1175 condition: { 1176 name: 'liferay-navigation-interaction-touch', 1177 test(A) { 1178 return A.UA.touchEnabled; 1179 }, 1180 trigger: 'liferay-navigation-interaction', 1181 }, 1182 }, 1183 }, 1184 requires: [ 1185 'aui-base', 1186 'aui-component', 1187 'event-mouseenter', 1188 'node-focusmanager', 1189 'plugin', 1190 ], 1191 }, 1192 'liferay-navigation-interaction-touch': { 1193 path: 'navigation_interaction_touch.js', 1194 requires: [ 1195 'event-tap', 1196 'event-touch', 1197 'liferay-navigation-interaction', 1198 ], 1199 }, 1200 }, 1201 root: MODULE_PATH + '/js/legacy/', 1202 }, 1203 }, 1204 }); 1205})(); 1206} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/image-uploader-web';/** 1207 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 1208 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 1209 */ 1210 1211(function () { 1212 AUI().applyConfig({ 1213 groups: { 1214 imageuploaderweb: { 1215 base: MODULE_PATH + '/js/legacy/', 1216 combine: Liferay.AUI.getCombine(), 1217 filter: Liferay.AUI.getFilterConfig(), 1218 modules: { 1219 'liferay-logo-editor': { 1220 path: 'logo_editor.js', 1221 requires: ['aui-image-cropper', 'liferay-portlet-base'], 1222 }, 1223 }, 1224 root: MODULE_PATH + '/js/legacy/', 1225 }, 1226 }, 1227 }); 1228})(); 1229} catch(error) {console.error(error);}</script>
1229 1230 1231 1232 1233
1234<script type="text/javascript" data-senna-track="temporary"> 1235 // <![CDATA[ 1236 1237 1238 1239 1240 1241 1242 1243 1244 // ]]> 1245</script>
1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258
1258<script async src="https://www.googletagmanager.com/gtag/js?id=GFQF2C97ZC"></script>
1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 1302-1303
1302 1303<script async src="https://www.googletagmanager.com/gtag/js?id=
1303G-GFQF2C97ZC
vendor: 12 bytes, line 1303
1303"></script>
1304<script> 1305
vendor: 134 bytes, lines 1305-1309
1305window.dataLayer = window.dataLayer || []; 1306 function gtag(){dataLayer.push(arguments);} 1307 gtag('js', new Date()); 1308 1309 gtag('config', '
1309G-GFQF2C97ZC
vendor: 4 bytes, line 1309
1309');
1310</script>
1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344<link class="lfr-css-file" data-senna-track="temporary" href="/o/dialect-theme/css/main.(zDuvzazvJSk).css" id="liferayThemeCSS" rel="stylesheet" type="text/css" /> 1345 1346 1347 1348 1349 1350 1351 1352 1353 <style data-senna-track="temporary" type="text/css"> 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 </style> 1394 1395 1396<style data-senna-track="temporary" type="text/css"> 1397 :root { 1398 --custom-control-label-font-size: var(--text-paragraph-sm-font-size); 1399 --condensed-form-input-filled-border-color: var(--color-neutral-5); 1400 --tab-segment-item-icon-color-active: var(--tab-segment-item-color-active); 1401 --label-sm-icon-size: 0.75rem; 1402 --condensed-form-input-label-color: var(--color-neutral-5); 1403 --aspect-ratio-5: calc(9 / 16 * 100%); 1404 --aspect-ratio-6: calc(1 / 2 * 100%); 1405 --aspect-ratio-3: calc(2 / 3 * 100%); 1406 --tab-secondary-item-box-shadow-active: none; 1407 --tab-segment-item-icon-color-disabled: var(--tab-segment-item-color-disabled); 1408 --aspect-ratio-4: calc(5 / 8 * 100%); 1409 --card-aspect-ratio-item-offset: var(--spacer-4); 1410 --tab-segment-item-color-active: var(--color-action-primary-inverted); 1411 --color-state-error-darken-2: #6d0a0a; 1412 --aspect-ratio-1: 100%; 1413 --color-state-error-darken-1: #a40f0f; 1414 --aspect-ratio-2: calc(3 / 4 * 100%); 1415 --color-action-neutral-inverted: #fff; 1416 --display2-size: 5.5rem; 1417 --card-elevated-border-width: 0rem; 1418 --label-lg-font-size: var(--text-paragraph-sm-font-size); 1419 --tab-primary-item-box-shadow-active: none; 1420 --display3-weight: var(--font-weight-light); 1421 --label-lg-line-height: var(--text-paragraph-sm-line-height); 1422 --custom-control-label-color: var(--form-input-label-color); 1423 --table-spaced-row-border-color: var(--color-neutral-3); 1424 --tab-segment-item-background-color: transparent; 1425 --color-state-warning-darken-1: #a85100; 1426 --h3-font-size: 1.75rem; 1427 --color-state-warning-darken-2: #703600; 1428 --tab-tertiary-item-color-hover: var(--tab-tertiary-item-color); 1429 --form-input-label-font-weight: var(--font-weight-bolder); 1430 --blockquote-small-color: var(--color-neutral-6); 1431 --transition-collapse: 0.35s ease; 1432 --tab-secondary-item-font-size: var(--text-paragraph-font-size); 1433 --tab-primary-item-background-color-active: var(--tab-primary-item-background-color); 1434 --tab-tertiary-item-font-size: var(--text-paragraph-font-size);; 1435 --condensed-form-feedback-item-margin: 0; 1436 --card-autofit-col-lg-width: 24rem; 1437 --card-flat-background-color-hover: var(--color-neutral-1); 1438 --tab-tertiary-vertical-item-border-left-width: 0; 1439 --form-feedback-item-line-height: var(--text-paragraph-sm-line-height); 1440 --tab-primary-item-active-bar-border-radius: 0.0625rem; 1441 --color-action-primary-inverted-disabled: #ffffff80; 1442 --text-paragraph-sm-line-height: 20px; 1443 --btn-lg-line-height: 28px; 1444 --table-sm-header-cell-min-height: 2.5625rem; 1445 --btn-border-radius: var(--border-radius-sm); 1446 --tab-secondary-item-icon-color-hover: var(--tab-secondary-item-icon-color); 1447 --tab-segment-item-color-disabled: var(--color-action-neutral-disabled); 1448 --link-text-decoration: none; 1449 --table-spaced-row-border-radius: var(--border-radius); 1450 --spacer-10: 10rem; 1451 --tab-primary-item-icon-color-disabled: var(--color-action-neutral-disabled); 1452 --btn-lg-font-size: 1.125rem; 1453 --condensed-form-input-filled-label-color: var(--color-neutral-8); 1454 --tab-primary-item-icon-color-hover: var(--color-action-primary-hover); 1455 --h5-font-size: 1.125rem; 1456 --label-lg-font-weight: var(--font-weight-bolder); 1457 --tab-primary-item-border-radius: 0; 1458 --tab-segment-border-color: var(--color-neutral-3); 1459 --blockquote-font-size: 1.25rem; 1460 --table-sm-font-size: var(--text-paragraph-font-size); 1461 --form-input-line-height: var(--text-paragraph-line-height); 1462 --card-flat-border-color-hover: var(--color-action-primary-hover); 1463 --transition-fade: 0.15s linear; 1464 --table-border-width: 0.0625rem; 1465 --tab-tertiary-horizontal-item-border-left-width: 0; 1466 --tab-segment-item-border-color: transparent; 1467 --card-outlined-background-color: var(--color-neutral-0); 1468 --card-body-padding-top: var(--spacer-3); 1469 --form-input-background-color: var(--color-neutral-0);
1470 --tab-tertiary-item-font-weight-active: var(--font-weight-bolder); 1471 --btn-inline-item-spacer-x: var(--spacer-1); 1472 --form-input-placeholder-font-weight: var(--font-weight-normal); 1473 --tab-secondary-horizontal-item-border-left-width: 0.0625rem; 1474 --color-action-primary-inverted-hover: #ffffff19; 1475 --table-sm-font-weight: var(--font-weight-normal); 1476 --card-outlined-border-width: 0.0625rem; 1477 --form-input-placeholder-font-size: var(--text-paragraph-font-size); 1478 --link-visited-color: #5E38BA; 1479 --form-input-label-margin-top: 0.25rem; 1480 --card-elevated-background-color-active: var(--color-neutral-0); 1481 --tab-secondary-horizontal-item-border-top-width: 0.0625rem; 1482 --color-state-success: #4aab3b; 1483 --h4-font-weight: var(--h1-font-weight); 1484 --color-neutral-10: #1d1c21; 1485 --tab-tertiary-vertical-item-border-top-width: 0; 1486 --color-action-primary-disabled: #a696e4; 1487 --tab-primary-item-border-color: var(--color-neutral-3); 1488 --h6-font-weight: var(--h1-font-weight); 1489 --tab-segment-item-border-color-disabled: var(--tab-segment-item-border-color); 1490 --tab-segment-item-box-shadow-hover: none; 1491 --text-paragraph-font-size: 1rem; 1492 --elevation-tight-7: 0 7px 18px; 1493 --form-text-font-size: var(--text-paragraph-sm-font-size); 1494 --elevation-tight-8: 0 12px 28px; 1495 --elevation-tight-9: 0 13px 36px; 1496 --card-border-radius: var(--border-radius); 1497 --elevation-tight-3: 0 2px 6px; 1498 --tab-secondary-item-color: var(--color-neutral-8); 1499 --elevation-tight-4: 0 2px 7px; 1500 --elevation-tight-5: 0 3px 12px; 1501 --elevation-tight-6: 0 3.5px 14px; 1502 --elevation-tight-1: 0 1px 3px; 1503 --tab-tertiary-item-icon-color-hover: var(--tab-tertiary-item-icon-color); 1504 --h2-font-weight: var(--h1-font-weight); 1505 --elevation-tight-2: 0 1.25px 4px; 1506 --card-flat-box-shadow-hover: none; 1507 --card-flat-background-color-active: var(--color-neutral-1); 1508 --tab-secondary-horizontal-item-padding-x: var(--spacer-3); 1509 --tab-secondary-horizontal-item-padding-y: var(--spacer-3); 1510 --condensed-form-input-filled-label-font-size: var(--text-paragraph-sm-font-size); 1511 --tab-primary-item-font-weight-active: var(--tab-primary-item-font-weight); 1512 --text-paragraph-line-height: 24px; 1513 --table-sm-line-height: var(--text-paragraph-line-height); 1514 --label-lg-padding-x: var(--spacer-2); 1515 --label-lg-padding-y: 0.125rem; 1516 --table-sm-header-cell-padding-y: var(--spacer-2); 1517 --spacer-0: 0; 1518 --table-sm-header-cell-padding-x: var(--spacer-2); 1519 --tab-primary-item-icon-color: var(--color-neutral-7); 1520 --lead-font-size: 1.25rem; 1521 --card-outlined-box-shadow: none; 1522 --tab-secondary-horizontal-item-border-bottom-width: 0.0625rem; 1523 --spacer-9: 9rem; 1524 --tab-segment-item-icon-font-size: var(--text-paragraph-font-size); 1525 --tab-tertiary-horizontal-item-padding-y: var(--spacer-3); 1526 --tab-tertiary-horizontal-item-padding-x: var(--spacer-3); 1527 --table-sm-cell-padding-x: var(--spacer-2); 1528 --btn-lg-border-radius: var(--border-radius); 1529 --table-sm-cell-padding-y: var(--spacer-2); 1530 --tab-primary-item-color-active: var(--color-action-primary-default); 1531 --spacer-2: 0.5rem; 1532 --spacer-1: 0.25rem; 1533 --tab-tertiary-item-font-weight: var(--font-weight-normal); 1534 --color-action-secondary-active: #b95804; 1535 --spacer-4: 1.5rem; 1536 --spacer-3: 1rem; 1537 --spacer-6: 4.5rem; 1538 --spacer-5: 3rem; 1539 --form-input-border-color: var(--color-neutral-5); 1540 --spacer-8: 7.5rem; 1541 --spacer-7: 6rem; 1542 --font-family-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 1543 --card-outlined-border-color: var(--color-neutral-3); 1544 --tab-secondary-vertical-item-border-left-width: 0.0625rem; 1545 --tab-primary-item-icon-font-size: var(--text-paragraph-font-size); 1546 --card-flat-border-color: var(--color-neutral-1); 1547 --color-action-secondary-hover-lighten: #faf0e6; 1548 --h1-font-size: 2.3125rem; 1549 --text-link-sm-font-size: 0.875rem; 1550 --card-horizontal-aspect-ratio-default: var(--aspect-ratio-1); 1551 --custom-control-color-hover: var(--color-action-primary-active-lighten); 1552 --container-max-sm: 540px; 1553 --color-focus: var(--color-brand-primary-lighten-3); 1554 --table-lg-cell-padding-x: var(--spacer-4); 1555 --table-lg-cell-padding-y: var(--spacer-4); 1556 --card-outlined-background-color-hover: var(--color-neutral-0); 1557 --table-image-max-height: 100px; 1558 --tab-secondary-item-background-color-active: var(--color-neutral-0); 1559 --color-brand-primary: #5924eb; 1560 --tab-segment-item-font-size: var(--text-link-small-font-size); 1561 --label-lg-icon-size: 0.875rem; 1562 --card-flat-box-shadow: none; 1563 --form-input-border-width: 0.0625rem;
1564 --card-outlined-box-shadow-hover: none; 1565 --tab-tertiary-horizontal-item-border-bottom-width: 0.0625rem; 1566 --card-flat-box-shadow-active: none; 1567 --color-accent-6-lighten: #defff7; 1568 --text-link-md-line-height: 24px; 1569 --btn-padding-y: 0.75rem; 1570 --table-sm-cell-min-height: 2.5625rem; 1571 --btn-padding-x: 1rem; 1572 --tab-primary-horizontal-item-border-left-width: 0; 1573 --tab-segment-item-inline-item-spacer-x: var(--spacer-3); 1574 --form-text-color: var(--color-neutral-7); 1575 --tab-segment-item-inline-item-spacer-y: var(--spacer-3); 1576 --nav-link-vertical-active-indicator-thickness: 0.25rem; 1577 --tab-segment-item-color: var(--color-neutral-6); 1578 --text-link-lg-font-size: 1.5rem; 1579 --table-lg-line-height: var(--text-paragraph-line-height); 1580 --display3-size: 3.0625rem; 1581 --tab-segment-item-icon-color: var(--tab-segment-item-color); 1582 --tab-segment-item-font-weight: var(--font-weight-bold); 1583 --color-action-secondary-inverted-hover: #ffffff19; 1584 --display-line-height: 1.2; 1585 --color-state-info-darken-1: #234481; 1586 --elevation-fluffy-2: 0 6.25px 20px; 1587 --color-state-info-darken-2: #172d56; 1588 --elevation-fluffy-1: 0 5px 15px; 1589 --table-color: var(--color-neutral-10); 1590 --color-state-success-darken-2: #25561e; 1591 --color-state-info-lighten-1: #8ca4d1; 1592 --color-state-info-lighten-2: #eaeff7; 1593 --custom-control-label-font-weight: var(--form-input-label-font-weight); 1594 --color-state-success-darken-1: #38802c; 1595 --tab-tertiary-item-color-disabled: var(--color-action-neutral-disabled); 1596 --tab-secondary-item-font-weight: var(--font-weight-normal); 1597 --font-weight-semi-bold: 600; 1598 --condensed-form-input-label-padding-x: 0.25rem; 1599 --tab-primary-item-color-disabled: var(--color-action-neutral-disabled); 1600 --tab-secondary-item-active-bar-thickness: 0.1875rem; 1601 --blockquote-small-font-size: 80%; 1602 --color-state-success-lighten-1: #9bd193; 1603 --color-state-success-lighten-2: #edf7eb; 1604 --color-action-primary-inverted: #fff; 1605 --color-accent-2: #a7e204; 1606 --color-accent-1: #eb2453; 1607 --tab-tertiary-item-color-active: var(--tab-tertiary-item-color); 1608 --color-accent-4: #221874; 1609 --color-accent-3: #c70d95; 1610 --color-action-neutral-hover: #34465b; 1611 --text-link-lg-line-height: 28px; 1612 --tab-tertiary-item-icon-color-disabled: var(--color-action-neutral-disabled); 1613 --color-brand-secondary-darken-3: #926800; 1614 --color-accent-6: #1ce4b5; 1615 --color-state-warning-lighten-1: #eeae73; 1616 --color-brand-secondary-darken-4: #614600FF; 1617 --color-accent-5: #bc24eb; 1618 --color-state-warning-lighten-2: #fcf0e6; 1619 --color-brand-secondary-darken-1: #f3ae00; 1620 --display1-size: 6rem; 1621 --nav-link-vertical-margin: 1rem 0; 1622 --color-brand-secondary-darken-2: #c28b00; 1623 --table-box-shadow: none; 1624 --tab-primary-horizontal-item-border-right-width: 0; 1625 --tab-segment-item-background-color-active: var(--color-action-primary-active); 1626 --tab-segment-item-border-radius: var(--border-radius-pill); 1627 --table-title-link-text-decoration: var(--link-text-decoration); 1628 --form-input-color-disabled: var(--color-neutral-4); 1629 --tab-primary-vertical-item-border-bottom-width: 0; 1630 --color-action-neutral-inverted-hover: #ffffff19; 1631 --form-input-label-line-height: var(--text-paragraph-line-height); 1632 --tab-tertiary-item-icon-color: var(--color-neutral-7); 1633 --color-brand-secondary-darken-5: #312300; 1634 --box-shadow-lg: var(--elevation-fluffy-3) rgba(0, 0, 0, .175); 1635 --tab-secondary-vertical-item-padding-y: var(--spacer-3); 1636 --label-lg-border-radius: var(--border-radius-xs); 1637 --tab-primary-vertical-item-border-top-width: 0; 1638 --tab-secondary-vertical-item-padding-x: var(--spacer-3); 1639 --color-chart-9: #3a6ba1; 1640 --tab-secondary-item-background-color-hover: var(--tab-secondary-item-background-color); 1641 --form-feedback-item-font-weight: var(--font-weight-normal); 1642 --form-feedback-item-padding: 0.375rem 1rem; 1643 --tab-tertiary-item-active-bar-color-active: var(--color-action-primary-default); 1644 --color-chart-12: #00520a; 1645 --tab-primary-item-color-hover: var(--color-action-primary-hover); 1646 --color-chart-10: #4d006e; 1647 --label-sm-padding-y: 0.0625rem; 1648 --color-chart-11: #8a6a00; 1649 --h5-font-weight: var(--h1-font-weight); 1650 --label-sm-padding-x: var(--spacer-1); 1651 --table-title-link-color-hover: var(--link-hover-color); 1652 --tab-secondary-item-active-bar-color-active: var(--color-action-primary-default); 1653 --tab-tertiary-item-line-height: var(--text-paragraph-line-height);
1654 --condensed-form-text-font-weight: var(--font-weight-normal); 1655 --hr-border-width: 1px; 1656 --table-font-size: var(--text-paragraph-font-size); 1657 --table-row-background-color-hover: var(--color-action-primary-hover-lighten); 1658 --h1-font-weight: var(--font-weight-bold); 1659 --text-paragraph-xs-line-height: 20px; 1660 --form-input-font-weight: var(--font-weight-normal); 1661 --tab-secondary-item-icon-font-size: var(--text-paragraph-font-size);; 1662 --color-chart-0: #4d2ec9; 1663 --tab-secondary-item-font-weight-active: var(--font-weight-bold); 1664 --color-chart-2: #ad9ee9; 1665 --elevation-fluffy-4: 0 10px 35px; 1666 --color-chart-1: #fdcc4a; 1667 --elevation-fluffy-3: 0 10px 30px; 1668 --color-brand-secondary: #ffc124; 1669 --color-chart-4: #002c62; 1670 --elevation-fluffy-6: 0 17.5px 70px; 1671 --form-input-label-margin-left: 1rem; 1672 --color-chart-3: #fe8856; 1673 --elevation-fluffy-5: 0 15px 60px; 1674 --table-header-font-size: var(--table-font-size); 1675 --color-chart-6: #912600; 1676 --color-chart-5: #78cc88; 1677 --elevation-fluffy-7: 0 35px 90px; 1678 --color-chart-8: #41a0a6; 1679 --form-input-border-radius: var(--border-radius); 1680 --color-chart-7: #ff8585; 1681 --label-sm-border-radius: var(--border-radius-xs); 1682 --font-family-base: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 1683 --tab-tertiary-horizontal-item-active-bar-width: auto; 1684 --tab-tertiary-item-border-color: var(--color-neutral-3); 1685 --table-sm-header-line-height: var(--text-paragraph-line-height); 1686 --color-action-neutral-inverted-disabled: #ffffff80; 1687 --border-radius: 0.5rem; 1688 --table-row-background-color-alternate: var(--color-neutral-1); 1689 --table-header-line-height: var(--text-paragraph-line-height); 1690 --color-accent-1-lighten: #ffeaef; 1691 --label-sm-line-height: 1rem; 1692 --border-radius-circle: 50%; 1693 --tab-tertiary-vertical-item-border-bottom-width: 0.0625rem; 1694 --form-feedback-item-margin: 0.25rem 0 0; 1695 --table-line-height: var(--text-paragraph-line-height); 1696 --container-max-xl: 1248px; 1697 --tab-primary-vertical-item-border-left-width: 0.0625rem; 1698 --form-input-label-color: var(--color-neutral-8); 1699 --text-muted: var(--color-neutral-4); 1700 --tab-tertiary-item-active-bar-border-radius: 0.0625rem; 1701 --table-title-color: var(--color-neutral-9); 1702 --table-border-color: var(--color-neutral-3); 1703 --form-input-placeholder-color-focus: var(--color-neutral-4); 1704 --card-outlined-box-shadow-active: none; 1705 --tab-secondary-item-inline-item-spacer-y: var(--spacer-2); 1706 --tab-secondary-item-inline-item-spacer-x: var(--spacer-2); 1707 --tab-segment-background-color: var(--color-neutral-1); 1708 --card-body-padding-right: var(--spacer-4); 1709 --color-action-secondary-inverted-disabled: #ffffff80; 1710 --color-action-neutral-default: #2b3a4b; 1711 --h4-font-size: 1.5rem; 1712 --font-weight-bold: 700; 1713 --text-paragraph-xxs-font-size: 0.5625rem; 1714 --tab-tertiary-vertical-item-border-right-width: 0; 1715 --form-input-padding-x: 1rem; 1716 --form-input-padding-y: 0.6875rem; 1717 --color-action-primary-active: #3c249e; 1718 --condensed-form-input-label-font-weight: var(--font-weight-bolder); 1719 --table-header-vertical-align: middle; 1720 --card-autofit-col-md-width: 16rem; 1721 --tab-segment-item-color-hover: var(--color-action-primary-active); 1722 --card-elevated-background-color: var(--color-neutral-0); 1723 --color-action-neutral-active-lighten: #d5d8db; 1724 --color-brand-secondary-lighten-4: #ffeab6; 1725 --tab-segment-padding-y: var(--spacer-1); 1726 --color-brand-secondary-lighten-3: #ffe092; 1727 --tab-segment-padding-x: var(--spacer-1); 1728 --color-brand-secondary-lighten-6: #fffbf0; 1729 --display1-weight: var(--font-weight-light); 1730 --tab-secondary-item-active-bar-color-hover: var(--color-action-primary-default); 1731 --color-brand-secondary-lighten-5: #fff5db; 1732 --box-shadow-sm: var(--elevation-tight-1) rgba(0, 0, 0, .075); 1733 --color-brand-secondary-lighten-2: #ffd66d; 1734 --color-brand-secondary-lighten-1: #ffcb48; 1735 --color-accent-2-lighten: #f0ffc6; 1736 --form-text-font-weight: var(--font-weight-light); 1737 --tab-tertiary-item-background-color-active: var(--tab-tertiary-item-background-color); 1738 --tab-primary-item-background-color: transparent; 1739 --tab-secondary-horizontal-item-border-right-width: 0.0625rem; 1740 --font-weight-lighter: lighter; 1741 --tab-segment-item-background-color-disabled: var(--tab-segment-item-background-color); 1742 --tab-secondary-item-background-color: var(--color-neutral-1); 1743 --condensed-form-input-background-color: var(--color-neutral-2); 1744 --tab-primary-item-color: var(--color-neutral-7); 1745 --tab-primary-horizontal-item-active-bar-width: auto; 1746 --tab-tertiary-vertical-item-padding-x: var(--spacer-3); 1747 --tab-tertiary-vertical-item-padding-y: var(--spacer-3); 1748 --form-input-label-margin-bottom: 0.25rem; 1749 --color-neutral-0: #fff; 1750 --color-neutral-1: #f7f6f9; 1751 --color-neutral-2: #eeecf3; 1752 --hr-border-color: rgba(0, 0, 0, .1); 1753 --color-neutral-3: #dcd9e2; 1754 --hr-border-margin-y: 1rem; 1755 --color-neutral-4: #a7a3b2; 1756 --tab-secondary-item-background-color-disabled: var(--tab-secondary-item-background-color); 1757 --color-neutral-5: #898593; 1758 --color-neutral-6: #716c7f; 1759 --color-neutral-7: #5a5469; 1760 --color-neutral-8: #3f3851; 1761 --color-neutral-9: #332b4a; 1762 --tab-secondary-item-icon-color-active: var(--tab-secondary-item-icon-color); 1763 --tab-tertiary-item-border-color-active: transparent; 1764 --tab-segment-item-border-color-hover: var(--tab-segment-item-border-color); 1765 --text-paragraph-sm-font-size: 0.8125rem; 1766 --container-max-md: 720px;
1767 --card-elevated-box-shadow-active: var(--elevation-tight-3) rgba(89, 36, 235, 0.22); 1768 --border-radius-xxl: 1.5rem; 1769 --table-spaced-row-border-spacing: var(--spacer-2); 1770 --tab-segment-item-icon-color-hover: var(--tab-segment-item-color-hover); 1771 --table-lg-cell-min-height: 4.5625rem; 1772 --h6-font-size: 0.875rem; 1773 --h2-font-size: 2rem; 1774 --color-action-secondary-active-lighten: #f1decd; 1775 --custom-control-label-line-height: var(--text-paragraph-sm-line-height); 1776 --color-action-secondary-inverted: #fff; 1777 --form-input-placeholder-color-disabled: var(--color-neutral-3); 1778 --tab-segment-item-background-color-hover: var(--tab-segment-item-background-color); 1779 --link-visited-text-decoration: none; 1780 --border-radius-pill: 50rem; 1781 --card-outlined-border-color-active: var(--color-action-primary-active); 1782 --table-font-weight: var(--font-weight-normal); 1783 --tab-segment-item-line-height: var(--text-link-small-line-height); 1784 --display4-size: 2.6875rem; 1785 --border-radius-lg: 0.75rem; 1786 --tab-primary-horizontal-item-border-top-width: 0; 1787 --form-input-font-size: var(--text-paragraph-font-size); 1788 --tab-primary-vertical-item-border-right-width: 0; 1789 --custom-control-border-color: var(--color-action-primary-default); 1790 --label-item-spacer-x: 0.375rem; 1791 --btn-sm-inline-item-font-size: var(--btn-sm-font-size); 1792 --card-flat-border-width: 0.0625rem; 1793 --table-lg-header-line-height: var(--text-paragraph-line-height); 1794 --body-color: var(--color-neutral-9); 1795 --tab-segment-item-box-shadow-active: var(--elevation-tight-2) rgba(89, 36, 235, 0.25); 1796 --container-max-lg: 960px; 1797 --btn-sm-line-height: 20px; 1798 --table-border-radius: var(--border-radius); 1799 --box-shadow: var(--elevation-tight-3) rgba(0, 0, 0, .15); 1800 --tab-tertiary-horizontal-item-border-top-width: 0; 1801 --table-row-background-color: var(--color-neutral-0); 1802 --label-sm-font-weight: var(--font-weight-bolder); 1803 --btn-border-width: 0.0625rem; 1804 --btn-sm-padding-y: 0.5rem; 1805 --btn-sm-padding-x: 0.75rem; 1806 --table-header-cell-min-height: 3.5rem; 1807 --table-title-link-text-decoration-hover: var(--link-text-decoration-hover); 1808 --card-vertical-aspect-ratio-default: var(--aspect-ratio-3); 1809 --tab-secondary-item-color-disabled: var(--color-action-neutral-disabled); 1810 --table-spaced-row-box-shadow: none; 1811 --nav-link-horizontal-active-indicator-length: 100%; 1812 --text-paragraph-xs-font-size: 0.6875rem;
1813 --card-elevated-box-shadow-hover: var(--elevation-tight-7) rgba(89, 36, 235, 0.17); 1814 --tab-secondary-vertical-item-border-top-width: 0.0625rem; 1815 --color-brand-primary-lighten-5: #e3dbfc; 1816 --color-brand-primary-lighten-6: #fbfaff; 1817 --color-brand-primary-lighten-3: #ac92f5; 1818 --color-brand-primary-lighten-4: #c8b6f8; 1819 --tab-primary-vertical-item-active-bar-height: auto; 1820 --color-brand-primary-lighten-1: #7549ee; 1821 --color-brand-primary-lighten-2: #906df2; 1822 --btn-inline-item-font-size: var(--btn-font-size); 1823 --color-action-primary-hover-lighten: #f2f0fa; 1824 --tab-primary-item-icon-color-active: var(--color-action-primary-default); 1825 --form-feedback-item-font-size: var(--text-paragraph-sm-font-size); 1826 --tab-secondary-item-line-height: var(--text-paragraph-line-height); 1827 --form-input-label-reference-mark-color: var(--color-state-error); 1828 --card-elevated-background-color-hover: var(--color-neutral-0); 1829 --form-text-line-height: var(--text-paragraph-sm-line-height); 1830 --table-cell-min-height: 3.5rem; 1831 --table-cell-padding-x: var(--spacer-3); 1832 --card-elevated-border-color-active: transparent; 1833 --table-cell-padding-y: var(--spacer-3); 1834 --card-elevated-border-color: transparent; 1835 --color-state-warning: #e06c00; 1836 --tab-primary-item-font-size: var(--text-paragraph-font-size); 1837 --form-input-placeholder-color: var(--color-neutral-4); 1838 --table-header-font-weight: var(--font-weight-semi-bold); 1839 --color-action-secondary-hover: #d26404; 1840 --tab-primary-horizontal-item-padding-y: var(--spacer-3); 1841 --tab-primary-horizontal-item-padding-x: var(--spacer-3); 1842 --link-hover-text-decoration: underline; 1843 --font-weight-bolder: 800; 1844 --table-title-link-color: var(--link-color); 1845 --form-input-border-color-disabled: var(--color-neutral-2); 1846 --table-sm-header-font-weight: var(--font-weight-semi-bold); 1847 --table-header-background-color: var(--color-neutral-0); 1848 --tab-segment-item-border-width: 0; 1849 --tab-tertiary-item-color: var(--color-neutral-8); 1850 --color-accent-5-lighten: #f6daff; 1851 --color-action-secondary-disabled: #f6b882; 1852 --tab-primary-item-background-color-disabled: var(--tab-primary-item-background-color); 1853 --btn-sm-font-size: 0.875rem; 1854 --tab-tertiary-item-border-radius: 0; 1855 --color-action-primary-default: #5924eb; 1856 --table-title-line-height: var(--text-paragraph-line-height); 1857 --table-lg-font-weight: var(--font-weight-normal); 1858 --tab-secondary-item-border-color-active: var(--tab-secondary-item-border-color); 1859 --marked-text-background-color: var(--color-brand-secondary-lighten-5); 1860 --tab-tertiary-item-background-color: var(--color-neutral-0); 1861 --tab-secondary-item-border-color-hover: var(--tab-secondary-item-border-color); 1862 --form-text-margin: 0.25rem 1rem 0; 1863 --display4-weight: var(--font-weight-light); 1864 --card-flat-border-color-active: var(--color-action-primary-active); 1865 --nav-link-vertical-active-indicator-length: 100%; 1866 --form-input-color: var(--color-neutral-8); 1867 --body-bg: var(--color-neutral-0); 1868 --tab-segment-border-width: 0.0625rem; 1869 --display2-weight: var(--font-weight-light); 1870 --tab-tertiary-item-icon-color-active: var(--tab-tertiary-item-icon-color); 1871 --tab-secondary-item-active-bar-border-radius: 0.0625rem; 1872 --custom-control-label-padding-left: 0.75rem; 1873 --tab-secondary-item-border-color: var(--color-neutral-3);
1874 --card-elevated-box-shadow: var(--elevation-tight-3) rgba(89, 36, 235, 0.22); 1875 --form-input-placeholder-line-height: var(--text-paragraph-line-height); 1876 --tab-primary-item-line-height: var(--text-paragraph-line-height); 1877 --condensed-form-input-background-color-disabled: var(--color-neutral-1); 1878 --condensed-form-input-filled-label-font-weight: var(--font-weight-bolder); 1879 --tab-secondary-horizontal-item-active-bar-width: auto; 1880 --color-action-secondary-default: #ed7105; 1881 --table-lg-font-size: var(--text-paragraph-font-size); 1882 --label-sm-font-size: var(--text-paragraph-xs-font-size); 1883 --tab-primary-item-active-bar-color-hover: var(--color-brand-primary-darken-1); 1884 --text-small-caps-font-size: 0.875rem; 1885 --text-paragraph-lg-font-size: 1.25rem; 1886 --border-radius-sm: 0.375rem; 1887 --tab-tertiary-item-active-bar-color-hover: var(--color-action-primary-hover); 1888 --color-action-neutral-disabled: #959ca5; 1889 --condensed-form-input-label-font-size: var(--text-paragraph-font-size); 1890 --tab-tertiary-item-box-shadow-active: var(--elevation-fluffy-2) rgba(77, 133, 255, 0.1); 1891 --tab-tertiary-item-background-color-hover: var(--tab-tertiary-item-background-color); 1892 --color-accent-3-lighten: #ffeaf9; 1893 --custom-control-background-color: var(--color-neutral-0); 1894 --text-small-caps-line-height: 20px; 1895 --font-weight-normal: 500; 1896 --btn-sm-border-radius: var(--border-radius-xs); 1897 --table-lg-header-cell-padding-y: var(--spacer-4); 1898 --tab-secondary-item-icon-color: var(--color-neutral-7); 1899 --table-lg-header-cell-padding-x: var(--spacer-4); 1900 --table-spaced-row-border-width: 0; 1901 --tab-primary-item-active-bar-color-active: var(--color-brand-primary); 1902 --card-body-padding-left: var(--spacer-4); 1903 --color-action-primary-active-lighten: #ece9f5; 1904 --tab-secondary-item-icon-color-disabled: var(--color-action-neutral-disabled); 1905 --card-autofit-col-sm-width: 8rem; 1906 --tab-secondary-item-color-active: var(--color-neutral-10); 1907 --tab-secondary-vertical-item-border-right-width: 0.0625rem; 1908 --card-flat-background-color: var(--color-neutral-1); 1909 --table-lg-header-font-size: var(--text-paragraph-font-size); 1910 --tab-tertiary-item-inline-item-spacer-x: var(--spacer-2); 1911 --tab-tertiary-item-inline-item-spacer-y: var(--spacer-2); 1912 --table-header-cell-padding-x: var(--spacer-3); 1913 --table-header-cell-padding-y: var(--spacer-3); 1914 --card-outlined-border-color-hover: var(--color-action-primary-hover); 1915 --btn-font-weight: var(--font-weight-semi-bold); 1916 --form-input-label-font-size: var(--text-paragraph-font-size); 1917 --form-input-label-margin-right: 1rem; 1918 --tab-segment-item-padding-y: var(--spacer-3); 1919 --tab-segment-item-padding-x: 0.375rem; 1920 --tab-primary-vertical-item-padding-y: var(--spacer-3); 1921 --tab-primary-vertical-item-padding-x: var(--spacer-3); 1922 --table-row-background-color-active: var(--color-action-primary-active-lighten); 1923 --condensed-form-text-font-size: var(--text-paragraph-sm-font-size); 1924 --tab-primary-horizontal-item-border-bottom-width: 0.03125rem; 1925 --custom-control-border-color-disabled: var(--color-action-primary-disabled); 1926 --color-state-error-lighten-1: #eb7e7e; 1927 --nav-link-horizontal-active-indicator-thickness: 0.125rem; 1928 --color-state-error-lighten-2: #fbe8e8; 1929 --tab-tertiary-item-border-color-hover: var(--tab-tertiary-item-border-color); 1930 --color-brand-primary-darken-3: #210963; 1931 --color-accent-4-lighten: #e9e8f1; 1932 --color-brand-primary-darken-4: #110532; 1933 --condensed-form-input-label-margin-x: 0.75rem; 1934 --color-brand-primary-darken-5: #000; 1935 --tab-tertiary-horizontal-item-border-right-width: 0; 1936 --headings-line-height: 1.2; 1937 --color-action-neutral-active: #3d536b; 1938 --tab-primary-item-inline-item-spacer-x: var(--spacer-3); 1939 --tab-primary-item-inline-item-spacer-y: var(--spacer-3); 1940 --tab-tertiary-item-box-shadow-hover: none; 1941 --table-sm-header-font-size: var(--text-paragraph-font-size); 1942 --tab-secondary-item-color-hover: var(--color-neutral-10); 1943 --btn-line-height: 24px; 1944 --tab-segment-item-font-weight-active: var(--tab-segment-item-font-weight); 1945 --card-elevated-border-color-hover: transparent;
1946 --table-lg-header-font-weight: var(--font-weight-semi-bold); 1947 --link-color: var(--color-action-primary-default); 1948 --h3-font-weight: var(--h1-font-weight); 1949 --tab-secondary-item-box-shadow-hover: none; 1950 --color-brand-primary-darken-1: #4212c7; 1951 --color-brand-primary-darken-2: #320e95; 1952 --color-action-neutral-hover-lighten: #eaebed; 1953 --card-body-padding-bottom: var(--spacer-4); 1954 --card-outlined-background-color-active: var(--color-neutral-0); 1955 --btn-lg-inline-item-font-size: var(--btn-lg-font-size); 1956 --text-paragraph-lg-line-height: 24px; 1957 --table-title-font-weight: var(--font-weight-semi-bold); 1958 --tab-primary-item-background-color-hover: var(--tab-primary-item-background-color); 1959 --btn-font-size: 1rem; 1960 --tab-secondary-vertical-item-active-bar-height: auto; 1961 --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; 1962 --tab-primary-item-font-weight: var(--font-weight-bold); 1963 --tab-primary-item-active-bar-thickness: 0.1875rem; 1964 --tab-primary-item-border-color-active: var(--tab-primary-item-border-color); 1965 --tab-segment-border-radius: var(--border-radius-pill); 1966 --color-action-primary-hover: #4429b3; 1967 --font-weight-light: 300; 1968 --link-hover-color: var(--color-action-primary-hover); 1969 --tab-tertiary-item-background-color-disabled: var(--tab-tertiary-item-background-color); 1970 --table-title-font-size: var(--text-small-caps-font-size); 1971 --text-link-md-font-size: 1rem; 1972 --transition-base: 0.2s ease-in-out; 1973 --nav-link-horizontal-margin: 0 1rem; 1974 --form-input-label-color-disabled: var(--color-neutral-8); 1975 --text-link-sm-line-height: 20px; 1976 --border-radius-xs: 0.25rem; 1977 --table-lg-header-cell-min-height: 4.5625rem; 1978 --table-header-color: var(--color-neutral-8); 1979 --form-feedback-item-border-radius: var(--border-radius); 1980 --text-small-caps-letter-spacing: 0.05em; 1981 --condensed-form-input-label-color-disabled: var(--color-neutral-4); 1982 --tab-secondary-item-border-radius: 0; 1983 --tab-tertiary-item-icon-font-size: var(--text-paragraph-font-size); 1984 --tab-primary-item-box-shadow-hover: none; 1985 --color-state-info: #2e5aac; 1986 --tab-tertiary-item-active-bar-thickness: 0.1875rem; 1987 --tab-secondary-vertical-item-border-bottom-width: 0.0625rem; 1988 --tab-segment-item-border-color-active: var(--tab-segment-item-border-color); 1989 --lead-font-weight: var(--font-weight-light); 1990 --table-row-color-hover: var(--table-row-color); 1991 --text-paragraph-xxs-line-height: 16px; 1992 --btn-lg-padding-y: 0.875rem; 1993 --btn-lg-padding-x: 1.125rem; 1994 --color-state-error: #da1414; 1995 --border-radius-xl: 1rem; 1996 --tab-primary-item-border-color-hover: var(--tab-primary-item-border-color); 1997 --font-size-base: var(--text-paragraph-font-size); 1998 --tab-tertiary-vertical-item-active-bar-height: auto; 1999 } 2000 :root { 2001 --font-family-base: "Lora; Nunito_Sans", sans-serif; 2002 --font-family-sans-serif: "Lora; Nunito_Sans", sans-serif; 2003 --text-paragraph-sm-font-size: 0.8125rem; 2004 --text-paragraph-xxs-font-size: 0.5625rem; 2005 --font-family-monospace: "Lora; Nunito_Sans", sans-serif; 2006 --color-brand-primary-darken-1: #4212c7; 2007 --color-neutral-0: #fff; 2008 --color-neutral-1: #FFFFFF; 2009 --color-action-primary-hover: #007BFF; 2010 --text-paragraph-xs-font-size: 0.6875rem; 2011 --color-brand-primary: #FFFFFF; 2012 --font-weight-normal: 400; 2013 --text-paragraph-xxs-line-height: 16px; 2014 --color-action-primary-default: #000000; 2015 } 2016</style>
2017<script data-senna-track="permanent" src="https://sampanews.sp.gov.br/combo?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649506512&/o/product-experience-manager-theme-contributor/js/liferay-usage-events.js" type = "text/javascript"></script>
2017 2018<link data-senna-track="temporary" href="/o/layout-common-styles/main.css?plid=24592&segmentsExperienceId=26704443&t=17609868211571789647354917" rel="stylesheet" type="text/css"><link data-senna-track="permanent" href="/o/frontend-js-aui-web/alloy_ui.css" rel="stylesheet"></link> 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
2031<script type="text/javascript"> 2032Liferay.on( 2033 'ddmFieldBlur', function(event) { 2034 if (window.Analytics) { 2035 Analytics.send( 2036 'fieldBlurred', 2037 'Form', 2038 { 2039 fieldName: event.fieldName, 2040 focusDuration: event.focusDuration, 2041 formId: event.formId, 2042 formPageTitle: event.formPageTitle, 2043 page: event.page, 2044 title: event.title 2045 } 2046 ); 2047 } 2048 } 2049); 2050 2051Liferay.on( 2052 'ddmFieldFocus', function(event) { 2053 if (window.Analytics) { 2054 Analytics.send( 2055 'fieldFocused', 2056 'Form', 2057 { 2058 fieldName: event.fieldName, 2059 formId: event.formId, 2060 formPageTitle: event.formPageTitle, 2061 page: event.page, 2062 title:event.title 2063 } 2064 ); 2065 } 2066 } 2067); 2068 2069Liferay.on( 2070 'ddmFormPageShow', function(event) { 2071 if (window.Analytics) { 2072 Analytics.send( 2073 'pageViewed', 2074 'Form', 2075 { 2076 formId: event.formId, 2077 formPageTitle: event.formPageTitle, 2078 page: event.page, 2079 title: event.title 2080 } 2081 ); 2082 } 2083 } 2084); 2085 2086Liferay.on( 2087 'ddmFormSubmit', function(event) { 2088 if (window.Analytics) { 2089 Analytics.send( 2090 'formSubmitted', 2091 'Form', 2092 { 2093 formId: event.formId, 2094 title: event.title 2095 } 2096 ); 2097 } 2098 } 2099); 2100 2101Liferay.on( 2102 'ddmFormView', function(event) { 2103 if (window.Analytics) { 2104 Analytics.send( 2105 'formViewed', 2106 'Form', 2107 { 2108 formId: event.formId, 2109 title: event.title 2110 } 2111 ); 2112 } 2113 } 2114); 2115 2116</script>
2116<script> 2117 2118</script>
2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139
2140<script type="text/javascript" data-senna-track="temporary"> 2141 if (window.Analytics) { 2142 window._com_liferay_document_library_analytics_isViewFileEntry = false; 2143 } 2144</script>
2144 2145 2146<link data-senna-track="temporary" href="/o/psp-css/bundle.css" rel="stylesheet" type="text/css" /><link data-senna-track="temporary" href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Quicksand:[email protected]&display=swap" rel="stylesheet" type="text/css" /> 2147 2148</head> 2149 2150<body class="chrome controls-visible yui3-skin-sam signed-out public-page site"> 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 <nav aria-label="Links rápidos" class="bg-dark cadmin quick-access-nav text-center text-white" id="iybi_quickAccessNav"> 2198 2199 2200 <a class="d-block p-2 sr-only sr-only-focusable text-reset" href="#main-content"> 2201 Pular para o Conteúdo principal 2202 </a> 2203 2204 2205 2206 </nav> 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281<div class="d-flex flex-column min-vh-100"> 2282 2283 <div class="d-flex flex-column flex-fill position-relative" id="wrapper"> 2284 2285 <div class=" flex-fill" id="content"> 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 <div id="master-layout-wrapper"> 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 <div class="lfr-layout-structure-item-header--copiar- lfr-layout-structure-item-a0077d3b-4e40-7aba-1b72-7fdf52fbfc31 " data-layout-structure-item-id="a0077d3b-4e40-7aba-1b72-7fdf52fbfc31"> 2376 <div id="fragment-7a12304a-d591-0332-d595-ba74a4a601ce"> 2377 <header class="header-container"> 2378 <!-- Middle Bar --> 2379 <div class="middle-bar"> 2380 <div class="middle-bar-content"> 2381 <div class="left-section"> 2382 <div class="menu-section fragment-zone"> 2383 <div> 2384 <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-fd6a0a41-728e-17d3-aec4-56ee28e075dd " data-layout-structure-item-id="fd6a0a41-728e-17d3-aec4-56ee28e075dd"> 2385 <div id="fragment-0c4075e0-8169-b0b3-5312-1b9f27754af4"> 2386 <div class="component-image overflow-hidden"> 2387 <a rel="noopener noreferrer" target="_blank" href="https://prefeitura.sp.gov.br/"><picture data-fileentryid="31096278"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/31096278/Thumbnail-300x300/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png?t=1760458447429"><source media="(max-width:903px) and (min-width:300px)" srcset="/o/adaptive-media/image/31096278/Preview-1000x0/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png?t=1760458447429"><img alt="logo da Prefeitura de São Paulo" class="w-100" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/24771855/25160874/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png/1990a1bf-fcdc-7af9-75c5-1a0af315067d?version=1.0&t=1760458447429" data-fileentryid="31096278"></picture></a> 2388 </div> 2389 </div> 2390 </div> 2391 <div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-8e89ba2d-e1d7-eaa2-c6f0-4290525fb4a2 " data-layout-structure-item-id="8e89ba2d-e1d7-eaa2-c6f0-4290525fb4a2"> 2392 <div id="fragment-0684d589-87a4-dcfe-8c5a-ad5afc962fec"> 2393 <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html"> 2394 <!-- ========================================= --> 2395 <!-- COMPONENTE MENU HAMBÃRGUER - LIFERAY FRAGMENT --> 2396 <!-- ========================================= --> 2397 <!-- HAMBURGER MENU COMPONENT --> 2398 <div class="hamburger-menu"> 2399 <!-- Botão Hambúrguer --> 2400 <button class="hamburger-btn" id="hamburgerBtn" aria-label="Abrir menu"> <span class="hamburger-line"></span> <span class="hamburger-line"></span> <span class="hamburger-line"></span> </button> <!-- Overlay --> 2401 <div class="menu-overlay" id="menuOverlay"></div> 2402 <!-- Container do Menu --> 2403 <div class="menu-container" id="menuContainer"> 2404 <!-- Header do Menu --> 2405 <div class="menu-header"> 2406 <h2 class="menu-title lfr-editable" data-lfr-editable-id="menu-title" data-lfr-editable-type="text" tabindex="0">Menu</h2> 2407 <button class="menu-close" id="menuClose" aria-label="Fechar menu">Ã</button> 2408 </div> 2409 <!-- Conteúdo do Menu - 4 Colunas --> 2410 <div class="menu-content">
2411 <!-- Coluna 1 - Menu (9 primeiros links em ordem alfabética) --> 2412 <div class="menu-column"> 2413 <h3 class="column-title lfr-editable" data-lfr-editable-id="column1-title" data-lfr-editable-type="text" tabindex="0">Editorias</h3> 2414 <div class="column-links"> 2415 <a href="/web/sampa-news" tabindex="0">Home</a> <a href="/web/sampa-news/artigos" tabindex="0">Artigos</a> <a href="/web/sampa-news/assistencia-social" tabindex="0">Assistência Social</a> <a href="/web/sampa-news/cidadania" tabindex="0">Cidadania</a> <a href="/web/sampa-news/cultura" tabindex="0">Cultura</a> <a href="/web/sampa-news/educacao" tabindex="0">Educação</a> <a href="/web/sampa-news/economia" tabindex="0">Economia</a> <a href="/web/sampa-news/esporte-e-lazer" tabindex="0">Esporte e Lazer</a> <a href="/web/sampa-news/habitacao" tabindex="0">Habitação</a> <a href="/web/sampa-news/inclusao" tabindex="0">Inclusão</a> 2416 </div> 2417 </div> 2418 <!-- Coluna 2 - Menu (9 últimos links em ordem alfabética) --> 2419 <div class="menu-column"> 2420 <h3 class="column-title lfr-editable" data-lfr-editable-id="column2-title" data-lfr-editable-type="text" tabindex="0">Editorias</h3> 2421 <div class="column-links"> 2422 <a href="/web/sampa-news/infraestrutura-obras" tabindex="0">Infraestrutura</a> <a href="/web/sampa-news/meio-ambiente" tabindex="0">Meio Ambiente</a> <a href="/web/sampa-news/mobilidade" tabindex="0">Mobilidade</a> <a href="/web/sampa-news/saude" tabindex="0">Saúde</a> <a href="/web/sampa-news/seguranca" tabindex="0">Segurança</a> <a href="/web/sampa-news/servicos" tabindex="0">Serviços</a> <a href="/web/sampa-news/tecnologia" tabindex="0">Tecnologia</a> <a href="/web/sampa-news/trabalhos" tabindex="0">Trabalho</a> <a href="/web/sampa-news/turismo-e-negocios" tabindex="0">Turismo e Negócios</a> <a href="/web/sampa-news/noticias" tabindex="0">Ãltimas NotÃcias</a> 2423 </div> 2424 </div> 2425 <!-- Coluna 3 - Links úteis --> 2426 <div class="menu-column"> 2427 <h3 class="column-title lfr-editable" data-lfr-editable-id="column3-title" data-lfr-editable-type="text" tabindex="0">Links úteis</h3> 2428 <div class="column-links"> 2429 <a href="http://transparencia.prefeitura.sp.gov.br/sistema-eletronico-de-informacao-ao-cidadao-e-sic/" tabindex="0">Acesso à informação</a> <a href="http://transparencia.prefeitura.sp.gov.br/" tabindex="0">Transparência São Paulo</a> <a href="https://legislacao.prefeitura.sp.gov.br/" tabindex="0">Legislação</a> <a href="https://www.prefeitura.sp.gov.br/cidade/secretarias/ouvidoria/fale_com_a_ouvidoria/index.php?p=227268" tabindex="0">Ouvidoria</a> <a href="https://sp156.prefeitura.sp.gov.br/portal " tabindex="0">SP 156</a> <a href="https://diariooficial.prefeitura.sp.gov.br/md_epubli_controlador.php?acao=inicio" tabindex="0">Diário Oficial</a> 2430 </div> 2431 <div class="column-menu-hamburguer-links"> 2432 <!-- <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">PolÃtica de privacidade</a> --> 2433 <!-- <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">Termos e Condições</a> --> 2434 <!-- <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">PolÃtica de Cookie</a> --> 2435 </div> 2436 </div> 2437 <!-- Coluna 4 - Redes Sociais --> 2438 <div class="menu-column"> 2439 <!-- Redes Sociais Section --> 2440 <div class="social-section-menu"> 2441 <div class="social-icon-header"> 2442 <svg width="40" height="40" viewBox="0 0 24 24" fill="#000000"> 2443 <path d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19C20.92,17.39 19.61,16.08 18,16.08Z"> </path> 2444 </svg> 2445 </div> 2446 <h3 class="social-title lfr-editable" data-lfr-editable-id="social-title" data-lfr-editable-type="text" tabindex="0">Redes Sociais - PrefSP</h3> 2447 <p class="social-description lfr-editable" data-lfr-editable-id="social-desc" data-lfr-editable-type="text" tabindex="0">Você também pode acompanhar o Sampa News nas redes sociais para mais informações, bastidores e conteúdos exclusivos sobre a cidade.</p> 2448 <div class="social-icons-grid"> 2449 <a target="_blank" href="https://www.instagram.com/prefsp"> <picture data-fileentryid="25551374"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551374/Thumbnail-300x300/instagram.png?t=1749062970254"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254">
2449 <img src="/documents/24771855/25160874/instagram.png/cc38202f-c535-d7f7-584b-967c49655d34?version=1.0&t=1749062970254" alt="Instagram" class="social-icon lfr-editable" data-lfr-editable-id="instagram-icon" data-lfr-editable-type="image" data-fileentryid="25551374" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.facebook.com/PrefSP"> <picture data-fileentryid="25551393"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551393/Thumbnail-300x300/facebook.png?t=1749062971316"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551393/Preview-1000x0/facebook.png?t=1749062971316"> <img src="/documents/24771855/25160874/facebook.png/fba28859-9a01-5ffe-814a-8db180c9f63a?version=1.0&t=1749062971316" alt="Facebook" class="social-icon lfr-editable" data-lfr-editable-id="facebook-icon" data-lfr-editable-type="image" data-fileentryid="25551393" tabindex="0"> </picture> </a> <a target="_blank" href="https://twitter.com/prefsp"> <picture data-fileentryid="25551412"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551412/Thumbnail-300x300/x.png?t=1749062972685"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551412/Preview-1000x0/x.png?t=1749062972685"> <img src="/documents/24771855/25160874/x.png/b66803af-e75a-0d6f-72cc-179f82d448ef?version=1.0&t=1749062972685" alt="Twitter" class="social-icon lfr-editable" data-lfr-editable-id="twitter-icon" data-lfr-editable-type="image" data-fileentryid="25551412" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"> <picture data-fileentryid="25551439"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551439/Thumbnail-300x300/youtube.png?t=1749062973818"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551439/Preview-1000x0/youtube.png?t=1749062973818"> <img src="/documents/24771855/25160874/youtube.png/15b4304e-2e21-559d-2dd2-dfe2a270a0f8?version=1.0&t=1749062973818" alt="YouTube" class="social-icon lfr-editable" data-lfr-editable-id="youtube-icon" data-lfr-editable-type="image" data-fileentryid="25551439" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"> <picture data-fileentryid="25551459"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551459/Thumbnail-300x300/linkedin.png?t=1749062975256"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551459/Preview-1000x0/linkedin.png?t=1749062975256"> <img src="/documents/24771855/25160874/linkedin.png/a890e84a-9a91-45dd-2e62-abb26799ec64?version=1.0&t=1749062975256" alt="LinkedIn" class="social-icon lfr-editable" data-lfr-editable-id="linkedin-icon" data-lfr-editable-type="image" data-fileentryid="25551459" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.tiktok.com/@prefsp"> <picture data-fileentryid="25574861"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25574861/Thumbnail-300x300/tiktok.png?t=1749071047834"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25574861/Preview-1000x0/tiktok.png?t=1749071047834"> <img src="/documents/24771855/25160874/tiktok.png/b080cb15-99a9-e3d7-a170-4c1276aba40e?version=1.0&t=1749071047834" alt="TikTok" class="social-icon lfr-editable" data-lfr-editable-id="tiktok-icon" data-lfr-editable-type="image" data-fileentryid="25574861" tabindex="0"> </picture> </a> 2450 </div> 2451 </div> 2452 </div> 2453 </div> 2454 <!-- Copyright menu-hamburguer --> 2455 <div class="menu-menu-hamburguer"> 2456 <p class="copyright-text lfr-editable" data-lfr-editable-id="copyright-text" data-lfr-editable-type="text" tabindex="0">© COPYRIGHT 2023, Prefeitura Municipal de São Paulo Viaduto do Chá, 15 - Centro - CEP: 01002-020</p> 2457 </div> 2458 </div> 2459 </div> 2460 <!-- ========================================= --> 2461 <!-- CSS STYLES --> 2462 <!-- ========================================= --> 2463 <style> 2464 /* Reset para o componente */ 2465 .hamburger-menu * { 2466 margin: 0; 2467 padding: 0; 2468 box-sizing: border-box; 2469 } 2470 2471 /* Container principal do componente */ 2472 .hamburger-menu { 2473 position: relative; 2474 display: inline-block; 2475 } 2476 2477 /* Botão Hambúrguer */ 2478 .hamburger-btn { 2479 background: transparent; 2480 border: none; 2481 cursor: pointer; 2482 padding: 8px; 2483 border-radius: 4px; 2484 transition: background-color 0.2s ease; 2485 display: flex; 2486 flex-direction: column; 2487 justify-content: center;
2488 align-items: center; 2489 width: 40px; 2490 height: 40px; 2491 } 2492 2493 .hamburger-btn:hover { 2494 background-color: rgba(0, 0, 0, 0.1); 2495 } 2496 2497 /* Linhas do hambúrguer */ 2498 .hamburger-line { 2499 width: 24px; 2500 height: 3px; 2501 background-color: #495057; 2502 margin: 2px 0; 2503 transition: all 0.3s ease; 2504 border-radius: 2px; 2505 } 2506 2507 /* Animação do botão quando ativo */ 2508 .hamburger-btn.active .hamburger-line:nth-child(1) { 2509 transform: rotate(45deg) translate(5px, 5px); 2510 } 2511 2512 .hamburger-btn.active .hamburger-line:nth-child(2) { 2513 opacity: 0; 2514 } 2515 2516 .hamburger-btn.active .hamburger-line:nth-child(3) { 2517 transform: rotate(-45deg) translate(7px, -6px); 2518 } 2519 2520 /* Overlay escuro */ 2521 .menu-overlay { 2522 position: fixed; 2523 top: 0; 2524 left: 0; 2525 width: 100%; 2526 height: 100%; 2527 background-color: rgba(0, 0, 0, 0.5); 2528 z-index: 998; 2529 opacity: 0; 2530 visibility: hidden; 2531 transition: all 0.3s ease; 2532 } 2533 2534 .menu-overlay.active { 2535 opacity: 1; 2536 visibility: visible; 2537 } 2538 2539 /* Container do menu */ 2540 .menu-container { 2541 position: fixed; 2542 top: 0; 2543 left: -100%; 2544 width: 100%; 2545 max-width: auto; 2546 height: 100vh; 2547 background-color: #ffffff; 2548 z-index: 999; 2549 transition: left 0.3s ease; 2550 overflow-y: auto; 2551 box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); 2552 display: flex; 2553 flex-direction: column; 2554 } 2555 2556 .menu-container.active { 2557 left: 0; 2558 } 2559 2560 /* Header do menu */ 2561 .menu-header { 2562 display: flex; 2563 justify-content: space-between; 2564 align-items: center; 2565 padding: 20px; 2566 border-bottom: 1px solid #e9ecef; 2567 background-color: #f8f9fa; 2568 flex-shrink: 0; 2569 } 2570 2571 .menu-title { 2572 font-size: 24px; 2573 font-weight: 700; 2574 color: #212529; 2575 margin: 0; 2576 } 2577 2578 .menu-close { 2579 background: transparent; 2580 border: none; 2581 font-size: 24px; 2582 cursor: pointer; 2583 padding: 8px; 2584 border-radius: 4px; 2585 color: #495057; 2586 transition: background-color 0.2s ease; 2587 width: 40px; 2588 height: 40px; 2589 display: flex; 2590 align-items: center; 2591 justify-content: center; 2592 } 2593 2594 .menu-close:hover { 2595 background-color: rgba(0, 0, 0, 0.1); 2596 } 2597 2598 /* Conteúdo do menu - 3 colunas */ 2599 .menu-content { 2600 padding: 40px 30px; 2601 display: grid; 2602 grid-template-columns: 1fr 1fr 1fr 1fr; 2603 gap: 10px; 2604 flex-grow: 1; 2605 } 2606 2607 /* Coluna individual */ 2608 .menu-column { 2609 display: flex; 2610 flex-direction: column; 2611 } 2612 2613 .column-title { 2614 font-size: 18px; 2615 font-weight: 600; 2616 color: #495057; 2617 margin-bottom: 25px; 2618 padding: 0; 2619 border: none; 2620 } 2621 2622 .column-links { 2623 display: flex; 2624 flex-direction: column; 2625 gap: 16px; 2626 margin-bottom: 30px; 2627 } 2628 2629 .menu-link { 2630 color: #212529; 2631 text-decoration: none; 2632 font-size: 16px; 2633 font-weight: 400; 2634 padding: 0; 2635 transition: color 0.2s ease; 2636 line-height: 1.5; 2637 } 2638 2639 .menu-link:hover { 2640 color: #007bff; 2641 } 2642 2643 /* Links do menu-hamburguer da coluna 2 */ 2644 .column-menu-hamburguer-links { 2645 display: flex; 2646 flex-direction: column; 2647 gap: 12px; 2648 margin-top: auto; 2649 padding-top: 20px; 2650 border-top: 1px solid #e9ecef; 2651 } 2652 2653 .menu-hamburguer-link { 2654 color: #6c757d; 2655 text-decoration: none; 2656 font-size: 14px; 2657 font-weight: 400; 2658 transition: color 0.2s ease; 2659 } 2660 2661 .menu-hamburguer-link:hover { 2662 color: #007bff; 2663 } 2664 2665 /* Social Section */ 2666 .social-section-menu { 2667 border-top: 1px solid #e9ecef; 2668 flex-wrap: wrap; 2669 } 2670 2671 .social-icon-header { 2672 margin-bottom: 15px; 2673 } 2674 2675 .social-title { 2676 font-size: 18px; 2677 font-weight: 700; 2678 color: #212529; 2679 margin-bottom: 15px; 2680 } 2681 2682 .social-description { 2683 color: #6c757d; 2684 font-size: 14px; 2685 line-height: 1.5; 2686 margin-bottom: 20px; 2687 } 2688 2689 .social-icons-grid { 2690 display: grid; 2691 grid-template-columns: repeat(6, 1fr); 2692 gap: 10px; 2693 width: 230px; 2694 } 2695 2696 .social-icon-menu { 2697 width: 40px; 2698 height: 40px; 2699 border-radius: 6px; 2700 transition: transform 0.2s ease; 2701 cursor: pointer; 2702 } 2703 2704 .social-icon-menu:hover { 2705 transform: scale(1.1); 2706 } 2707 2708 /* menu-hamburguer */ 2709 .menu-menu-hamburguer { 2710 padding: 20px 30px; 2711 border-top: 1px solid #e9ecef; 2712 background-color: #f8f9fa; 2713 flex-shrink: 0; 2714 } 2715 2716 .copyright-text { 2717 color: #6c757d; 2718 font-size: 12px; 2719 text-align: center; 2720 line-height: 1.4; 2721 } 2722 2723 /* Responsivo - Tablet */ 2724 @media (max-width: 768px) { 2725 .menu-container { 2726 max-width: 100%; 2727 } 2728 2729 .menu-content { 2730 grid-template-columns: 1fr; 2731 gap: 30px; 2732 padding: 30px 20px; 2733 } 2734 2735 .column-title { 2736 font-size: 16px; 2737 margin-bottom: 20px; 2738 } 2739 2740 .menu-link { 2741 font-size: 15px; 2742 } 2743 2744 .social-icons-grid { 2745 grid-template-columns: repeat(6, 1fr); 2746 } 2747 2748 .social-icon-menu { 2749 width: 35px; 2750 height: 35px; 2751 } 2752 } 2753 2754 /* Responsivo - Mobile */ 2755 @media (max-width: 480px) { 2756 .menu-header { 2757 padding: 15px; 2758 } 2759 2760 .menu-title { 2761 font-size: 20px; 2762 } 2763 2764 .menu-content { 2765 padding: 20px 15px; 2766 gap: 25px; 2767 } 2768 2769 .menu-menu-hamburguer { 2770 padding: 15px; 2771 } 2772 } 2773 2774 /* Classes editáveis do Liferay */ 2775 .lfr-editable { 2776 position: relative; 2777 } 2778 2779 /* Prevenção de scroll da página em desktop */ 2780 @media (min-width: 769px) { 2781 body.menu-open { 2782 overflow: hidden; 2783 } 2784 } 2785</style> 2786 <!-- ========================================= --> 2787 <!-- JAVASCRIPT --> 2788 <!-- ========================================= --> 2789
2789<script type=""> 2790 document.addEventListener('DOMContentLoaded', function() { 2791 const hamburgerBtn = document.getElementById('hamburgerBtn'); 2792 const menuOverlay = document.getElementById('menuOverlay'); 2793 const menuContainer = document.getElementById('menuContainer'); 2794 const menuClose = document.getElementById('menuClose'); 2795 2796 // Função para detectar se é mobile 2797 function isMobile() { 2798 return window.innerWidth <= 768; 2799 } 2800 2801 // Função para abrir o menu 2802 function openMenu() { 2803 hamburgerBtn.classList.add('active'); 2804 menuOverlay.classList.add('active'); 2805 menuContainer.classList.add('active'); 2806 2807 // Só bloqueia scroll em desktop 2808 if (!isMobile()) { 2809 document.body.classList.add('menu-open'); 2810 } 2811 } 2812 2813 // Função para fechar o menu 2814 function closeMenu() { 2815 hamburgerBtn.classList.remove('active'); 2816 menuOverlay.classList.remove('active'); 2817 menuContainer.classList.remove('active'); 2818 2819 // Remove o bloqueio de scroll 2820 document.body.classList.remove('menu-open'); 2821 } 2822 2823 // Event listeners 2824 hamburgerBtn.addEventListener('click', openMenu); 2825 menuClose.addEventListener('click', closeMenu); 2826 menuOverlay.addEventListener('click', closeMenu); 2827 2828 // Fechar com ESC 2829 document.addEventListener('keydown', function(e) { 2830 if (e.key === 'Escape' && menuContainer.classList.contains('active')) { 2831 closeMenu(); 2832 } 2833 }); 2834 2835 // Fechar menu ao clicar em links (opcional) 2836 const menuLinks = document.querySelectorAll('.column-links a'); 2837 menuLinks.forEach(link => { 2838 link.addEventListener('click', function() { 2839 // Remove o preventDefault para que os links funcionem 2840 closeMenu(); 2841 }); 2842 }); 2843 2844 // Ajustar comportamento ao redimensionar tela 2845 window.addEventListener('resize', function() { 2846 if (menuContainer.classList.contains('active')) { 2847 // Se mudou para mobile durante menu aberto, remove bloqueio 2848 if (isMobile()) { 2849 document.body.classList.remove('menu-open'); 2850 } else { 2851 document.body.classList.add('menu-open'); 2852 } 2853 } 2854 }); 2855 }); 2856</script>
2856 2857 </div> 2858 </div> 2859 <style>.component-html img { 2860 max-width: 100%; 2861}</style> 2862 </div> 2863 </div> 2864 </div> 2865 </div> 2866 <div class="logo-section"> 2867 <a href="/home"><picture data-fileentryid="27968568"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/27968568/Thumbnail-300x300/sampanews_LOGO_assinatura_500.png?t=1754334121435"><source media="(max-width:500px) and (min-width:300px)" srcset="/o/adaptive-media/image/27968568/Preview-1000x0/sampanews_LOGO_assinatura_500.png?t=1754334121435"><img class="logo lfr-editable" src="https://sampanews.sp.gov.br/documents/24771855/25160874/sampanews_LOGO_assinatura_500.png/b7e76827-8234-c797-6d5f-8da2b5389dde?version=1.0&t=1754334121435" alt="Placeholder" data-lfr-editable-id="img1" data-lfr-editable-type="image" data-fileentryid="27968568" loading="lazy"></picture></a> 2868 </div> 2869 <div class="accessibility-section fragment-zone"> 2870 <div class="search-section fragment-zone"> 2871 <div> 2872 <div class="lfr-layout-structure-item-com-liferay-portal-search-web-search-bar-portlet-searchbarportlet lfr-layout-structure-item-b3f12b56-5f3e-97b4-d1e5-8a3a536e6844 " data-layout-structure-item-id="b3f12b56-5f3e-97b4-d1e5-8a3a536e6844"> 2873 <div id="fragment-65a9961a-a4f5-aa0f-3a94-6761841df430"> 2874 <div class="portlet-boundary portlet-boundary_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_ portlet-static portlet-static-end portlet-borderless portlet-search-bar " id="p_p_id_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_"> 2875 <span id="p_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck"></span> 2876 <section class="portlet" id="portlet_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck"> 2877 <div class="portlet-content"> 2878 <div class=" portlet-content-container"> 2879 <div class="portlet-body"> 2880 <form action="https://sampanews.sp.gov.br/busca" id="dkrk___fm" method="get" name="dkrk___fm"> 2881 <div id="_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_reactSearchBar"> 2882 <div id="vrse"></div> 2883
2883<script type="module"> 2884import {ReactSearchBar as componentModule} from '/o/portal-search-web/__liferay__/search-bar.js'; 2885import {render} from '/o/portal-template-react-renderer-impl/__liferay__/index.js'; 2886{ 2887render(componentModule, {"isSearchExperiencesSupported":true,"letUserChooseScope":false,"componentId":null,"selectedEverythingSearchScope":false,"retainFacetSelections":false,"scopeParameterStringEverything":"everything","locale":"{\"country\": \"BR\", \"displayCountry\": \"Brazil\", \"displayLanguage\": \"Portuguese\", \"displayName\": \"Portuguese (Brazil)\", \"displayScript\": \"\", \"displayVariant\": \"\", \"extensionKeys\":[],\"ISO3Country\": \"BRA\", \"ISO3Language\": \"por\", \"language\": \"pt\", \"script\": \"\", \"unicodeLocaleAttributes\":[], \"unicodeLocaleKeys\":[], \"variant\": \"\"}","suggestionsDisplayThreshold":2,"isDXP":true,"scopeParameterStringCurrentSite":"this-site","suggestionsContributorConfiguration":"[{\"contributorName\":\"basic\",\"displayGroupName\":\"suggestions\",\"size\":5}]","destinationFriendlyURL":"\/busca","emptySearchEnabled":false,"scopeParameterName":"scope","keywordsParameterName":"q","portletId":"com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck","paginationStartParameterName":"","searchURL":"https:\/\/sampanews.sp.gov.br\/busca","suggestionsURL":"\/o\/search\/v1.0\/suggestions","initialKeywords":"","portletNamespace":"_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_","inputPlaceholder":"Procurar..."}, 'vrse'); 2888} 2889 2890</script>
2890 2891 </div> 2892 </form> 2893
2893<script type="module"> 2894import {SearchBar as ComponentModule} from '/o/portal-search-web/__liferay__/search-bar.js'; 2895{ 2896Liferay.component('__UNNAMED_COMPONENT__bf800fba-8f61-7fdc-5bec-3ebe49b54111', new ComponentModule({"formId":"dkrk___fm","namespace":"_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_","spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg","initialKeywords":"","retainFacetSelections":false}), { destroyOnNavigate: true, portletId: 'com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck'}); 2897} 2898 2899</script>
2899 2900 </div> 2901 </div> 2902 </div> 2903 </section> 2904 </div> 2905 </div> 2906 </div> 2907 </div> 2908 </div> 2909 <div> 2910 <div class="lfr-layout-structure-item-0e85eb31-d701-204c-ec30-661d7dbe5e39 lfr-layout-structure-item-container " data-layout-structure-item-id="0e85eb31-d701-204c-ec30-661d7dbe5e39"> 2911 <div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-363328d3-a3c7-59c5-cedd-66e227555fd0 " data-layout-structure-item-id="363328d3-a3c7-59c5-cedd-66e227555fd0"> 2912 <div id="fragment-a0862b31-1bc5-e049-ed7e-07279806ceaa"> 2913 <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html"> 2914 <div class="recursos-acessibilidade"> 2915 <span class="label-acessibilidade">Recursos de acessibilidade:</span> 2916 <div class="acessibilidade-toolbar-icones"> 2917 <button onclick="ajustarFonte('diminuir')" aria-label="Diminuir fonte" title="Diminuir fonte">Aâ</button> <button onclick="ajustarFonte('aumentar')" aria-label="Aumentar fonte" title="Aumentar fonte">A+</button> <button onclick="alternarContraste()" aria-label="Alto contraste" title="Ativar alto contraste"> â </button> 2918 </div> 2919 </div> 2920 <style> 2921 .recursos-acessibilidade { 2922 display: flex; 2923 align-items: center; 2924 gap: 0.75rem; 2925 font-family: Arial, sans-serif; 2926 font-size: 14px; 2927 color: #333; 2928 z-index: 9999; 2929 } 2930 .label-acessibilidade { 2931 font-weight: normal; 2932 color: #666; 2933 white-space: nowrap; 2934 } 2935 2936 /* Media query para ocultar toda a toolbar de acessibilidade no mobile */ 2937 @media (max-width: 768px) { 2938 .recursos-acessibilidade { 2939 display: none; 2940 } 2941 } 2942 2943 .acessibilidade-toolbar-icones { 2944 display: flex; 2945 align-items: center; 2946 gap: 0.5rem; 2947 } 2948 .acessibilidade-toolbar-icones button { 2949 background: none; 2950 border: none; 2951 font-size: 16px; 2952 font-weight: bold; 2953 cursor: pointer; 2954 padding: 0.25rem 0.5rem; 2955 color: #333; 2956 transition: all 0.2s ease; 2957 border-radius: 3px; 2958 min-width: 24px; 2959 text-align: center; 2960 } 2961 .acessibilidade-toolbar-icones button:hover { 2962 background-color: #f0f0f0; 2963 transform: scale(1.05); 2964 } 2965 .acessibilidade-toolbar-icones button:focus { 2966 outline: 2px solid #007acc; 2967 outline-offset: 2px; 2968 } 2969 .modo-contraste, 2970 .modo-contraste * { 2971 background-color: #000 !important; 2972 color: #fff !important; 2973 border-color: #fff !important; 2974 fill: #fff !important; 2975 } 2976 .modo-contraste .acessibilidade-toolbar-icones button:hover { 2977 background-color: #333 !important; 2978 } 2979 main, 2980 .portlet, 2981 .portlet-body, 2982 .content, 2983 .web-content, 2984 .content-wrapper, 2985 section, 2986 article, 2987 .news-body, 2988 .summary-body, 2989 .psp-section-title__text, 2990 p, 2991 span, 2992 li, 2993 td, 2994 th, 2995 div, 2996 h1, 2997 h2, 2998 h3, 2999 h4, 3000 h5, 3001 h6, 3002 a { 3003 transition: font-size 0.2s ease; 3004 } 3005</style> 3006
3006<script type="text/javascript"> 3007 let tamanhoFonteAtualPx = 16; 3008 const tamanhoMinPx = 12; 3009 const tamanhoMaxPx = 22; 3010 function ajustarFonte(acao) { 3011 if (acao === 'aumentar' && tamanhoFonteAtualPx < tamanhoMaxPx) { 3012 tamanhoFonteAtualPx += 1; 3013 } else if (acao === 'diminuir' && tamanhoFonteAtualPx > tamanhoMinPx) { 3014 tamanhoFonteAtualPx -= 1; 3015 } 3016 const seletor = ` 3017 main, .portlet, .portlet-body, .content, .web-content, 3018 .content-wrapper, section, article, .news-body, .summary-body, 3019 .psp-section-title__text, p, span, li, td, th, div, 3020 h1, h2, h3, h4, h5, h6, a 3021 `; 3022 document.querySelectorAll(seletor).forEach(el => { 3023 el.style.setProperty('font-size', `${tamanhoFonteAtualPx}px`, 'important'); 3024 }); 3025 } 3026 function alternarContraste() { 3027 document.documentElement.classList.toggle('modo-contraste'); 3028 } 3029</script>
3029 3030 </div> 3031 </div> 3032 </div> 3033 <div class="lfr-layout-structure-item-header---social-icons lfr-layout-structure-item-0b499e44-f1cd-7525-659d-0d0af4879305 " data-layout-structure-item-id="0b499e44-f1cd-7525-659d-0d0af4879305"> 3034 <div id="fragment-2f458a19-9d42-3920-92a9-8895bd5b1f11"> 3035 <div class="header-social-icons"> 3036 <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.instagram.com/prefsp"><picture data-fileentryid="25551374"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551374/Thumbnail-300x300/instagram.png?t=1749062970254"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/instagram.png/cc38202f-c535-d7f7-584b-967c49655d34?version=1.0&t=1749062970254" alt="Instagram" data-lfr-editable-id="Instagram" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551374" data-desktop-configuration="Preview-1000x0" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.facebook.com/PrefSP"><picture data-fileentryid="25551393"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551393/Thumbnail-300x300/facebook.png?t=1749062971316"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551393/Preview-1000x0/facebook.png?t=1749062971316"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/facebook.png/fba28859-9a01-5ffe-814a-8db180c9f63a?version=1.0&t=1749062971316" alt="Facebook" data-lfr-editable-id="Facebook" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551393" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://twitter.com/prefsp"><picture data-fileentryid="25551412"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551412/Thumbnail-300x300/x.png?t=1749062972685"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551412/Preview-1000x0/x.png?t=1749062972685"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/x.png/b66803af-e75a-0d6f-72cc-179f82d448ef?version=1.0&t=1749062972685" alt="X (Twitter)" data-lfr-editable-id="X (Twitter)" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551412" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"><picture data-fileentryid="25551439"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551439/Thumbnail-300x300/youtube.png?t=1749062973818"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551439/Preview-1000x0/youtube.png?t=1749062973818"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/youtube.png/15b4304e-2e21-559d-2dd2-dfe2a270a0f8?version=1.0&t=1749062973818" alt="YouTube" data-lfr-editable-id="YouTube" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551439" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"><picture data-fileentryid="25551459"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551459/Thumbnail-300x300/linkedin.png?t=1749062975256"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551459/Preview-1000x0/linkedin.png?t=1749062975256"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/linkedin.png/a890e84a-9a91-45dd-2e62-abb26799ec64?version=1.0&t=1749062975256" alt="LinkedIn" data-lfr-editable-id="LinkedIn" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551459" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.tiktok.com/@prefsp"><picture data-fileentryid="25574861"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25574861/Thumbnail-300x300/tiktok.png?t=1749071047834"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25574861/Preview-1000x0/tiktok.png?t=1749071047834">
3036<img src="https://sampanews.sp.gov.br/documents/24771855/25160874/tiktok.png/b080cb15-99a9-e3d7-a170-4c1276aba40e?version=1.0&t=1749071047834" alt="TikTok" data-lfr-editable-id="TikTok" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25574861" loading="lazy"></picture></a> 3037 </div> 3038 </div> 3039 <style>.header-social-icons { 3040 display: flex; 3041 gap: 5px; 3042 align-items: center; 3043} 3044 3045.header-social-icons a { 3046 display: inline-block; 3047} 3048 3049.header-social-icons a img { 3050 width: 24px !important; /* Tamanho menor para o header */ 3051 height: 24px !important; 3052 transition: transform 0.2s; 3053} 3054 3055.header-social-icons a img:hover { 3056 transform: scale(1.1); 3057}</style> 3058 </div> 3059 </div> 3060 </div> 3061 </div> 3062 </div> 3063 </div> 3064 </header> 3065 </div> 3066 <style>* { 3067 margin: 0; 3068 padding: 0; 3069 box-sizing: border-box; 3070} 3071 3072/* Header Container */ 3073.header-container { 3074 background-color: #cacac0; 3075 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); 3076} 3077 3078/* Middle Bar */ 3079.middle-bar { 3080 padding: 16px 0; 3081} 3082 3083.middle-bar-content { 3084 max-width: 1200px; 3085 margin: 0 auto; 3086 display: grid; 3087 grid-template-columns: 1fr auto 2fr; 3088 align-items: center; 3089 padding: 0 20px; 3090 gap: 20px; 3091} 3092 3093.left-section { 3094 display: flex; 3095 align-items: center; 3096 gap: 15px; 3097 justify-self: start; 3098} 3099 3100.menu-section { 3101 display: flex; 3102 align-items: center; 3103} 3104 3105.menu-drop { 3106 background-color: #f8f9fa; 3107 border: 2px dashed #dee2e6; 3108 padding: 12px 20px; 3109 border-radius: 4px; 3110 color: #6c757d; 3111 font-size: 14px; 3112 font-weight: 500; 3113} 3114 3115.search-section { 3116 display: flex; 3117 align-items: center; 3118} 3119 3120.search-drop { 3121 background-color: #f8f9fa; 3122 border: 2px dashed #dee2e6; 3123 padding: 12px 40px; 3124 border-radius: 4px; 3125 color: #6c757d; 3126 font-size: 14px; 3127 font-weight: 500; 3128} 3129 3130.logo-section { 3131 justify-content: center; 3132 align-items: center; 3133 justify-self: center; 3134} 3135 3136.logo-section>a:hover { 3137 opacity: 0.8; 3138 text-decoration: none; 3139} 3140 3141.logo-link { 3142 display: block; 3143 text-decoration: none; 3144} 3145 3146.logo { 3147 height: 70px; 3148 max-width: 180px; 3149 object-fit: contain; 3150 display: block; 3151 padding: 4px 0; 3152} 3153 3154.accessibility-section { 3155 display: flex; 3156 justify-content: flex-end; 3157 align-items: center; 3158 justify-self: end; 3159} 3160 3161.accessibility-drop { 3162 background-color: #f8f9fa; 3163 border: 2px dashed #dee2e6; 3164 padding: 12px 24px; 3165 border-radius: 4px; 3166 color: #6c757d; 3167 font-size: 14px; 3168 font-weight: 500; 3169} 3170 3171/* Liferay Fragment Mapping Classes */ 3172.lfr-editable { 3173 position: relative; 3174} 3175 3176/* Fragment zones for Liferay */ 3177.fragment-zone { 3178 min-height: 20px; 3179 position: relative; 3180} 3181 3182/* Responsive adjustments for larger screens */ 3183@media (min-width: 1400px) { 3184 .middle-bar-content { 3185 max-width: 1200px; 3186 } 3187} 3188 3189/* Mobile Layout - 2 linhas: primeira com 2 colunas, segunda com 1 coluna */ 3190@media (max-width: 768px) { 3191 3192 /* Mobile middle bar adjustments */ 3193 .middle-bar-content { 3194 max-width: none; 3195 display: grid; 3196 grid-template-columns: 1fr 1fr; 3197 grid-template-rows: auto auto; 3198 align-items: center; 3199 padding: 0 15px; 3200 gap: 12px; 3201 } 3202 3203 /* Left section (menu) - primeira linha, primeira coluna */ 3204 .left-section { 3205 grid-column: 1; 3206 grid-row: 1; 3207 display: flex; 3208 align-items: center; 3209 gap: 0; 3210 justify-self: start; 3211 } 3212 3213 .left-section .search-section { 3214 display: none; 3215 } 3216 3217 .menu-section { 3218 display: flex; 3219 align-items: center; 3220 } 3221 3222 .menu-drop { 3223 background-color: transparent; 3224 border: none; 3225 padding: 8px; 3226 color: #495057; 3227 font-size: 18px; 3228 font-weight: 500; 3229 } 3230 3231 /* Logo section - primeira linha, segunda coluna */ 3232 .logo-section { 3233 grid-column: 2; 3234 grid-row: 1; 3235 justify-content: center; 3236 align-items: center; 3237 justify-self: end; 3238 } 3239 3240 .logo { 3241 height: 66px; 3242 max-width: 150px; 3243 object-fit: contain; 3244 display: block; 3245 } 3246 3247 /* Accessibility section - segunda linha, ocupa as 2 colunas */ 3248 .accessibility-section { 3249 grid-column: 1 / -1; 3250 grid-row: 2; 3251 display: flex; 3252 justify-content: center; 3253 align-items: center; 3254 justify-self: stretch; 3255 } 3256 3257 .accessibility-drop { 3258 background-color: transparent; 3259 border: none; 3260 padding: 8px; 3261 color: #495057; 3262 font-size: 18px; 3263 font-weight: 500; 3264 } 3265 3266 /* Mobile header styling */ 3267 .middle-bar { 3268 padding: 16px 0; 3269 border-bottom: 1px solid #e9ecef; 3270 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); 3271 } 3272}</style> 3273</div> 3274<div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-f13bb041-df34-f68b-052b-f1808d0d9d33 " data-layout-structure-item-id="f13bb041-df34-f68b-052b-f1808d0d9d33"> 3275 <div id="fragment-a1bbd0ff-306a-2194-721f-0a9edfb5894b"> 3276 <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html"> 3277 <style>/* Alvo principal da Search Bar */ 3278.portlet-search-bar { 3279 border: 1px solid #111; 3280 background-color: #cacac1 !important; 3281 max-width: 600px; 3282 display: flex; 3283 align-items: center; 3284} 3285 3286 .input-group-inset-item{ 3287 background-color: #cacac1 !important; 3288 } 3289 3290/* Ãcone da lupa */ 3291.portlet-search-bar .input-group-item .lexicon-icon { 3292 color: #111; 3293 font-size: 1.2rem; 3294 margin-right: 8px; 3295} 3296 3297/* Input de texto */ 3298.portlet-search-bar input[type="text"], 3299.portlet-search-bar input[type="search"] { 3300 border: none; 3301 background: transparent; 3302 font-size: 1rem; 3303 flex-grow: 1; 3304 padding: 8px; 3305 outline: none; 3306} 3307 3308/* Botão Buscar */ 3309.portlet-search-bar button[type="submit"],
3310.portlet-search-bar .btn[type="submit"] { 3311 color: #fff; 3312 border: none; 3313 padding: 8px 16px; 3314 font-weight: bold; 3315 cursor: pointer; 3316} 3317 3318/* Hover do botão */ 3319.portlet-search-bar button[type="submit"]:hover { 3320 background-color: #cacac1; 3321} 3322 3323 .input-group .input-group-inset-item-after { 3324 background-color: #eaeae5; 3325 border-top-width: 0px; 3326 border-bottom-width: 0px; 3327 border-right-width: 0px; 3328 } 3329 3330 /* Banner */ 3331 .psp-banner{ 3332 border-radius: 0; 3333 } 3334 3335 /*Iframe*/ 3336 .embed-responsive{ 3337 width: 100% !important; 3338 } 3339 3340 /*Legenda*/ 3341 figcaption { 3342 border-left: 2px solid #000; 3343 padding: 4px; 3344 margin-top: 8px; 3345 } 3346</style> 3347 </div> 3348 </div> 3349</div> 3350<div class="layout-content portlet-layout" id="main-content" role="main"> 3351 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-30256ceb-62f8-1868-cbc9-a93977e96f7d " data-layout-structure-item-id="30256ceb-62f8-1868-cbc9-a93977e96f7d"> 3352 <div id="fragment-f2748840-44be-2f70-58e2-5833a2d16759"> 3353 <div class="py-3"></div> 3354 </div> 3355 </div> 3356 <div class="lfr-layout-structure-item-314a276c-af59-5b0c-4b83-f3dc8c4ac5ad lfr-layout-structure-item-container " data-layout-structure-item-id="314a276c-af59-5b0c-4b83-f3dc8c4ac5ad"> 3357 <div class="lfr-layout-structure-item-fb0f4804-09c8-362a-4554-224fb838758e lfr-layout-structure-item-container container-fluid container-fluid-max-xl" data-layout-structure-item-id="fb0f4804-09c8-362a-4554-224fb838758e"> 3358 <div class="lfr-layout-structure-item-2b196b45-a941-1fe2-f879-a1eb3a1dd39a lfr-layout-structure-item-collection" data-layout-structure-item-id="2b196b45-a941-1fe2-f879-a1eb3a1dd39a" data-analytics-targetable-collection="com.liferay.layout.list.retriever.ClassedModelListObjectReference@3852308" id="analytics-targetable-collection-2b196b45-a941-1fe2-f879-a1eb3a1dd39a"> 3359 <div class="container-fluid overflow-hidden px-0"> 3360 <div class="row align-items-start"> 3361 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 3362 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 3363 <div id="fragment-a14902f2-e5e4-2d70-48d7-423555c23223"> 3364 <!-- News Collection Fragment - Vertical Layout --> 3365 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 3366 <div class="sp-citcr-section"> 3367 <!-- News Collection Container --> 3368 <div class="sp-citcr-list"> 3369 <!-- Individual News Item Template --> 3370 <div class="sp-citcr-item"> 3371 <!-- News Image (Top) --> 3372 <div class="sp-citcr-image"> 3373 <!-- Category Badge (Overlaid on Image) --> 3374 <div class="sp-citcr-category"> 3375 <div class="sp-citcr-category-text"> 3376 <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Saúde</a> 3377 </div> 3378 </div> 3379 <div class="sp-citcr-img"> 3380 <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus"> <img src="https://sampanews.sp.gov.br/documents/34276/0/20261006A_Insuguracao_UPA_UBS_Residencial_+das_Orquideas_SB-03.jpg/37d2dc61-98fa-e870-1d94-718cc4ccdd9b?version=1.0&t=1791308556442" alt="News Image"> </a> 3381 </div> 3382 </div> 3383 <!-- News Content (Bottom) --> 3384 <div class="sp-citcr-content"> 3385 <div class="sp-citcr-publish-date"> 3386 <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">06/10/26 13:51</a> 3387 </div> 3388 <!-- News Title --> 3389 <div class="sp-citcr-title"> 3390 <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Prefeitura inaugura 35ª UPA e 485ª UBS da cidade com entrega de novas unidades em Perus</a> 3391 </div> 3392 <!-- News Headline/Description --> 3393 <div class="sp-citcr-headline"> 3394 <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Complexo na periferia da Zona Norte recebeu mais de R$ 14,2 milhões e reúne 326 profissionais; unidades oferecem urgência 24 horas e acompanhamento de saúde</a> 3395 </div> 3396 </div> 3397 </div> 3398 </div> 3399 </div> 3400 </div> 3401 <style>/* Reset link styles */ 3402.sp-citcr-section a, 3403.sp-citcr-section a:link, 3404.sp-citcr-section a:visited, 3405.sp-citcr-section a:hover, 3406.sp-citcr-section a:active, 3407.sp-citcr-section a:focus { 3408 color: inherit; 3409 outline: none; 3410 border: none; 3411 background: none; 3412 cursor: inherit; 3413} 3414
3415/* Ensure link reset applies to all nested elements */ 3416.sp-citcr-section a * { 3417 color: inherit; 3418 text-decoration: none; 3419} 3420 3421.sp-citcr-text-summary { 3422 color: #666; 3423 margin: 12px 0 0 0; 3424 padding: 0; 3425 text-decoration: none; 3426} 3427 3428.sp-citcr-text-summary::before { 3429 display: none; 3430} 3431 3432.sp-citcr-text-summary a { 3433 color: inherit; 3434 text-decoration: none; 3435} 3436 3437/* Estilos para listas dentro do resumo */ 3438.sp-citcr-text-summary ul { 3439 list-style: none; 3440 padding-left: 0; 3441 margin: 8px 0; 3442} 3443 3444.sp-citcr-text-summary li { 3445 position: relative; 3446 padding-left: 20px; 3447 margin-bottom: 4px; 3448 font-size: 16px; 3449} 3450 3451.sp-citcr-text-summary li::before { 3452 content: "â"; 3453 position: absolute; 3454 left: 0; 3455 color: #007bff; 3456 font-weight: bold; 3457} 3458 3459.sp-citcr-section { 3460 padding: 0; 3461 background: #fff; 3462} 3463 3464.sp-citcr-list { 3465 display: flex; 3466 flex-direction: column; 3467 gap: 0; 3468 max-width: 100%; 3469 margin: 0; 3470} 3471 3472.sp-citcr-item { 3473 display: flex; 3474 flex-direction: column; 3475 overflow: hidden; 3476 transition: transform 0.3s ease; 3477 cursor: pointer; 3478 min-height: auto; 3479 background: #fff; 3480} 3481 3482/* News Image (Top) */ 3483.sp-citcr-image { 3484 position: relative; 3485 width: 100%; 3486 overflow: hidden; 3487 background: #f8f9fa; 3488} 3489 3490.sp-citcr-img { 3491 border-bottom: 6px solid #007bff; 3492 aspect-ratio: 100 / 62.5; 3493} 3494 3495.sp-citcr-img, 3496.sp-citcr-img img { 3497 width: 100%; 3498 height: 100%; 3499 object-fit: cover; 3500 transition: transform 0.3s ease; 3501} 3502 3503/* News Content (Bottom) */ 3504.sp-citcr-content { 3505 flex: 1; 3506 padding: 15px 0px; 3507 display: flex; 3508 flex-direction: column; 3509 justify-content: flex-start; 3510 position: relative; 3511 background: #fff; 3512} 3513 3514/* Category Badge (Overlaid on Image - Top Left) */ 3515.sp-citcr-category { 3516 position: absolute; 3517 top: 4px; 3518 left: 4px; 3519 z-index: 10; 3520} 3521 3522.sp-citcr-category-text { 3523 background: #007bff; 3524 color: #ffffff; 3525 padding: 5px 5px; 3526 font-size: 12px; 3527 display: inline-block; 3528} 3529 3530.sp-citcr-title { 3531 color: #1a1a1a; 3532 margin: 0 0 8px 0; 3533 display: -webkit-box; 3534 -webkit-line-clamp: 2; 3535 overflow: hidden; 3536 font-weight: bold; 3537 font-size: 18px; 3538} 3539 3540.sp-citcr-headline { 3541 color: #555; 3542 margin: 0 0 8px 0; 3543 display: -webkit-box; 3544 -webkit-line-clamp: 3; 3545 -webkit-box-orient: vertical; 3546 overflow: hidden; 3547 flex-grow: 0; 3548} 3549 3550.sp-citcr-publish-date { 3551 color: #555; 3552 font-size: .8rem; 3553 display: -webkit-box; 3554 -webkit-line-clamp: 3; 3555 -webkit-box-orient: vertical; 3556 overflow: hidden; 3557 flex-grow: 0; 3558} 3559 3560/* Responsive Design */ 3561@media (max-width: 768px) { 3562 3563 .sp-citcr-list { 3564 gap: 0; 3565 } 3566 3567 3568 .sp-citcr-category { 3569 top: 5px; 3570 left: 5px; 3571 } 3572} 3573 3574@media (max-width: 480px) { 3575 .sp-citcr-image { 3576 height: 180px; 3577 } 3578 3579 .sp-citcr-category { 3580 top: 5px; 3581 left: 5px; 3582 } 3583} 3584 3585/* Animation for items appearing */ 3586.sp-citcr-item { 3587 opacity: 0; 3588 animation: fadeInUpVertical 0.6s ease forwards; 3589} 3590 3591.sp-citcr-item:nth-child(1) { 3592 animation-delay: 0.1s; 3593} 3594.sp-citcr-item:nth-child(2) { 3595 animation-delay: 0.2s; 3596} 3597.sp-citcr-item:nth-child(3) { 3598 animation-delay: 0.3s; 3599} 3600.sp-citcr-item:nth-child(4) { 3601 animation-delay: 0.4s; 3602} 3603 3604@keyframes fadeInUpVertical { 3605 from { 3606 opacity: 0; 3607 transform: translateY(30px); 3608 } 3609 to { 3610 opacity: 1; 3611 transform: translateY(0); 3612 } 3613} 3614 3615/* Print styles */ 3616@media print { 3617 .sp-citcr-item:hover { 3618 transform: none; 3619 } 3620 3621 .sp-citcr-category-text { 3622 background: #000000 !important; 3623 color: #ffffff !important; 3624 } 3625}</style> 3626
3626<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-a14902f2-e5e4-2d70-48d7-423555c23223'); const fragmentElementId = 'fragment-a14902f2-e5e4-2d70-48d7-423555c23223'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 3627 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 3628 function formatDate(date) { 3629 const day = String(date.getDate()).padStart(2, '0'); 3630 const month = String(date.getMonth() + 1).padStart(2, '0'); 3631 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 3632 const hours = String(date.getHours()).padStart(2, '0'); 3633 const minutes = String(date.getMinutes()).padStart(2, '0'); 3634 3635 return `${day}/${month}/${year} ${hours}:${minutes}`; 3636 } 3637 3638 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 3639 function formatDateOnly(date) { 3640 const day = String(date.getDate()).padStart(2, '0');
3641 const month = String(date.getMonth() + 1).padStart(2, '0'); 3642 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 3643 3644 return `${day}/${month}/${year}`; 3645 } 3646 3647 // Função para fazer parse de diferentes formatos de data 3648 function parseDate(dateString) { 3649 if (!dateString || dateString.trim() === '') return null; 3650 3651 dateString = dateString.trim(); 3652 3653 try { 3654 // Se for timestamp em segundos 3655 if (/^\d{10}$/.test(dateString)) { 3656 return new Date(parseInt(dateString) * 1000); 3657 } 3658 3659 // Se for timestamp em milissegundos 3660 if (/^\d{13}$/.test(dateString)) { 3661 return new Date(parseInt(dateString)); 3662 } 3663 3664 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 3665 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 3666 const parts = dateString.split(/[\/\s:]/); 3667 const day = parseInt(parts[0]);
3668 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 3669 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 3670 const hour = parts[3] ? parseInt(parts[3]) : 0; 3671 const minute = parts[4] ? parseInt(parts[4]) : 0; 3672 const second = parts[5] ? parseInt(parts[5]) : 0; 3673 3674 return new Date(year, month, day, hour, minute, second); 3675 } 3676 3677 // Para formato ISO (yyyy-MM-dd) 3678 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 3679 const parts = dateString.split(/[-T\s:]/); 3680 const year = parseInt(parts[0]); 3681 const month = parseInt(parts[1]) - 1; 3682 const day = parseInt(parts[2]); 3683 const hour = parts[3] ? parseInt(parts[3]) : 0; 3684 const minute = parts[4] ? parseInt(parts[4]) : 0; 3685 const second = parts[5] ? parseInt(parts[5]) : 0; 3686 3687 return new Date(year, month, day, hour, minute, second); 3688 } 3689 3690 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 3691 if (dateString.includes('T') || dateString.includes('-')) { 3692 let parsedDate = new Date(dateString); 3693 if (!isNaN(parsedDate.getTime())) { 3694 return parsedDate; 3695 } 3696 } 3697 3698 } catch (e) { 3699 console.warn('Erro ao fazer parse da data:', dateString, e); 3700 } 3701 3702 return null; 3703 } 3704 3705 // Função principal para reduzir 3 horas das datas mapeadas 3706 function reduceDatesBy3Hours() { 3707 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 3708 3709 dateElements.forEach(function(element) { 3710 const currentText = element.textContent.trim(); 3711 3712 // Ignora se for texto padrão ou estiver vazio 3713 if (currentText === 'Data de Publicação' || currentText === '') { 3714 return; 3715 } 3716 3717 // Verifica se já foi processado 3718 if (element.getAttribute('data-hours-reduced') === 'true') { 3719 return; 3720 } 3721 3722 // Tenta fazer parse da data mapeada 3723 const parsedDate = parseDate(currentText); 3724 3725 if (parsedDate && !isNaN(parsedDate.getTime())) { 3726 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 3727 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 3728 3729 // Atualiza o elemento com a data reduzida 3730 element.textContent = formatDate(reducedDate); 3731 3732 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 3733 // element.textContent = formatDateOnly(reducedDate); 3734 3735 // Marca como processado para evitar reprocessamento 3736 element.setAttribute('data-hours-reduced', 'true'); 3737 } else { 3738 console.warn('Não foi possÃvel fazer parse da data:', currentText); 3739 } 3740 }); 3741 } 3742 3743 // Aguardar carregamento e processar datas 3744 setTimeout(function() { 3745 reduceDatesBy3Hours(); 3746 }, 500); 3747 3748 // Observer para detectar mudanças no DOM 3749 const observer = new MutationObserver(function(mutations) { 3750 mutations.forEach(function(mutation) { 3751 if (mutation.type === 'childList') { 3752 mutation.addedNodes.forEach(function(node) { 3753 if (node.nodeType === Node.ELEMENT_NODE) { 3754 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 3755 if (dateElements.length > 0) { 3756 setTimeout(reduceDatesBy3Hours, 100); 3757 } 3758 } 3759 }); 3760 } 3761 }); 3762 }); 3763 3764 // Observa mudanças no container principal 3765 const container = document.querySelector('.sp-citcr-section'); 3766 if (container) { 3767 observer.observe(container, { 3768 childList: true, 3769 subtree: true 3770 }); 3771 } 3772 3773 // Funcionalidade de clique nos itens de notÃcia 3774 const newsItems = document.querySelectorAll('.sp-citcr-item'); 3775
3776 newsItems.forEach(function(item) { 3777 item.addEventListener('click', function() { 3778 console.log('News item clicked'); 3779 }); 3780 3781 item.setAttribute('tabindex', '0'); 3782 item.setAttribute('role', 'article'); 3783 3784 item.addEventListener('keydown', function(e) { 3785 if (e.key === 'Enter' || e.key === ' ') { 3786 e.preventDefault(); 3787 item.click(); 3788 } 3789 }); 3790 }); 3791 3792 // Função global para reprocessar datas manualmente 3793 window.reduceDatesBy3Hours = function() { 3794 // Remove marcadores de processamento para permitir reprocessamento 3795 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 3796 dateElements.forEach(function(element) { 3797 element.removeAttribute('data-hours-reduced'); 3798 }); 3799 reduceDatesBy3Hours(); 3800 }; 3801});;</script>
3801 3802 </div> 3803 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 3804 <div id="fragment-a03d47b0-6f14-a081-0344-461fa3bd097b"> 3805 <div class="py-2"></div> 3806 </div> 3807 </div> 3808 </div> 3809 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 3810 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 3811 <div id="fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144"> 3812 <!-- News Collection Fragment - Vertical Layout --> 3813 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 3814 <div class="sp-citcr-section"> 3815 <!-- News Collection Container --> 3816 <div class="sp-citcr-list"> 3817 <!-- Individual News Item Template --> 3818 <div class="sp-citcr-item"> 3819 <!-- News Image (Top) --> 3820 <div class="sp-citcr-image"> 3821 <!-- Category Badge (Overlaid on Image) --> 3822 <div class="sp-citcr-category"> 3823 <div class="sp-citcr-category-text"> 3824 <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Trabalho</a> 3825 </div> 3826 </div> 3827 <div class="sp-citcr-img"> 3828 <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a> 3829 </div> 3830 </div> 3831 <!-- News Content (Bottom) --> 3832 <div class="sp-citcr-content"> 3833 <div class="sp-citcr-publish-date"> 3834 <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">05/10/26 13:06</a> 3835 </div> 3836 <!-- News Title --> 3837 <div class="sp-citcr-title"> 3838 <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Cate abre outubro com mais de 4.000 vagas de emprego; área de atendimento reúne 300 oportunidades</a> 3839 </div> 3840 <!-- News Headline/Description --> 3841 <div class="sp-citcr-headline"> 3842 <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Com salários de até R$ 4.000, oportunidades estão distribuÃdas por várias regiões da cidade e contemplam diferentes setores</a> 3843 </div> 3844 </div> 3845 </div> 3846 </div> 3847 </div> 3848 </div> 3849
3849<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144'); const fragmentElementId = 'fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 3850 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 3851 function formatDate(date) { 3852 const day = String(date.getDate()).padStart(2, '0'); 3853 const month = String(date.getMonth() + 1).padStart(2, '0'); 3854 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 3855 const hours = String(date.getHours()).padStart(2, '0'); 3856 const minutes = String(date.getMinutes()).padStart(2, '0'); 3857 3858 return `${day}/${month}/${year} ${hours}:${minutes}`; 3859 } 3860 3861 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 3862 function formatDateOnly(date) { 3863 const day = String(date.getDate()).padStart(2, '0');
3864 const month = String(date.getMonth() + 1).padStart(2, '0'); 3865 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 3866 3867 return `${day}/${month}/${year}`; 3868 } 3869 3870 // Função para fazer parse de diferentes formatos de data 3871 function parseDate(dateString) { 3872 if (!dateString || dateString.trim() === '') return null; 3873 3874 dateString = dateString.trim(); 3875 3876 try { 3877 // Se for timestamp em segundos 3878 if (/^\d{10}$/.test(dateString)) { 3879 return new Date(parseInt(dateString) * 1000); 3880 } 3881 3882 // Se for timestamp em milissegundos 3883 if (/^\d{13}$/.test(dateString)) { 3884 return new Date(parseInt(dateString)); 3885 } 3886 3887 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 3888 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 3889 const parts = dateString.split(/[\/\s:]/); 3890 const day = parseInt(parts[0]);
3891 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 3892 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 3893 const hour = parts[3] ? parseInt(parts[3]) : 0; 3894 const minute = parts[4] ? parseInt(parts[4]) : 0; 3895 const second = parts[5] ? parseInt(parts[5]) : 0; 3896 3897 return new Date(year, month, day, hour, minute, second); 3898 } 3899 3900 // Para formato ISO (yyyy-MM-dd) 3901 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 3902 const parts = dateString.split(/[-T\s:]/); 3903 const year = parseInt(parts[0]); 3904 const month = parseInt(parts[1]) - 1; 3905 const day = parseInt(parts[2]); 3906 const hour = parts[3] ? parseInt(parts[3]) : 0; 3907 const minute = parts[4] ? parseInt(parts[4]) : 0; 3908 const second = parts[5] ? parseInt(parts[5]) : 0; 3909 3910 return new Date(year, month, day, hour, minute, second); 3911 } 3912 3913 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 3914 if (dateString.includes('T') || dateString.includes('-')) { 3915 let parsedDate = new Date(dateString); 3916 if (!isNaN(parsedDate.getTime())) { 3917 return parsedDate; 3918 } 3919 } 3920 3921 } catch (e) { 3922 console.warn('Erro ao fazer parse da data:', dateString, e); 3923 } 3924 3925 return null; 3926 } 3927 3928 // Função principal para reduzir 3 horas das datas mapeadas 3929 function reduceDatesBy3Hours() { 3930 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 3931 3932 dateElements.forEach(function(element) { 3933 const currentText = element.textContent.trim(); 3934 3935 // Ignora se for texto padrão ou estiver vazio 3936 if (currentText === 'Data de Publicação' || currentText === '') { 3937 return; 3938 } 3939 3940 // Verifica se já foi processado 3941 if (element.getAttribute('data-hours-reduced') === 'true') { 3942 return; 3943 } 3944 3945 // Tenta fazer parse da data mapeada 3946 const parsedDate = parseDate(currentText); 3947 3948 if (parsedDate && !isNaN(parsedDate.getTime())) { 3949 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 3950 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 3951 3952 // Atualiza o elemento com a data reduzida 3953 element.textContent = formatDate(reducedDate); 3954 3955 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 3956 // element.textContent = formatDateOnly(reducedDate); 3957 3958 // Marca como processado para evitar reprocessamento 3959 element.setAttribute('data-hours-reduced', 'true'); 3960 } else { 3961 console.warn('Não foi possÃvel fazer parse da data:', currentText); 3962 } 3963 }); 3964 } 3965 3966 // Aguardar carregamento e processar datas 3967 setTimeout(function() { 3968 reduceDatesBy3Hours(); 3969 }, 500); 3970 3971 // Observer para detectar mudanças no DOM 3972 const observer = new MutationObserver(function(mutations) { 3973 mutations.forEach(function(mutation) { 3974 if (mutation.type === 'childList') { 3975 mutation.addedNodes.forEach(function(node) { 3976 if (node.nodeType === Node.ELEMENT_NODE) { 3977 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 3978 if (dateElements.length > 0) { 3979 setTimeout(reduceDatesBy3Hours, 100); 3980 } 3981 } 3982 }); 3983 } 3984 }); 3985 }); 3986 3987 // Observa mudanças no container principal 3988 const container = document.querySelector('.sp-citcr-section'); 3989 if (container) { 3990 observer.observe(container, { 3991 childList: true, 3992 subtree: true 3993 }); 3994 } 3995 3996 // Funcionalidade de clique nos itens de notÃcia 3997 const newsItems = document.querySelectorAll('.sp-citcr-item'); 3998
3999 newsItems.forEach(function(item) { 4000 item.addEventListener('click', function() { 4001 console.log('News item clicked'); 4002 }); 4003 4004 item.setAttribute('tabindex', '0'); 4005 item.setAttribute('role', 'article'); 4006 4007 item.addEventListener('keydown', function(e) { 4008 if (e.key === 'Enter' || e.key === ' ') { 4009 e.preventDefault(); 4010 item.click(); 4011 } 4012 }); 4013 }); 4014 4015 // Função global para reprocessar datas manualmente 4016 window.reduceDatesBy3Hours = function() { 4017 // Remove marcadores de processamento para permitir reprocessamento 4018 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 4019 dateElements.forEach(function(element) { 4020 element.removeAttribute('data-hours-reduced'); 4021 }); 4022 reduceDatesBy3Hours(); 4023 }; 4024});;</script>
4024 4025 </div> 4026 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 4027 <div id="fragment-4d50913f-0d9e-3a12-d02f-613a18cc6480"> 4028 <div class="py-2"></div> 4029 </div> 4030 </div> 4031 </div> 4032 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 4033 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 4034 <div id="fragment-16442bc8-a79d-720e-bcd1-c97699a545d7"> 4035 <!-- News Collection Fragment - Vertical Layout --> 4036 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 4037 <div class="sp-citcr-section"> 4038 <!-- News Collection Container --> 4039 <div class="sp-citcr-list"> 4040 <!-- Individual News Item Template --> 4041 <div class="sp-citcr-item"> 4042 <!-- News Image (Top) --> 4043 <div class="sp-citcr-image"> 4044 <!-- Category Badge (Overlaid on Image) --> 4045 <div class="sp-citcr-category"> 4046 <div class="sp-citcr-category-text"> 4047 <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Cultura</a> 4048 </div> 4049 </div> 4050 <div class="sp-citcr-img"> 4051 <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-10-01+at+20.35.15+%281%29.jpg/93ff2a0e-67e8-c480-dc13-0e69d6ec0de7?version=1.0&t=1790947818235" alt="News Image"> </a> 4052 </div> 4053 </div> 4054 <!-- News Content (Bottom) --> 4055 <div class="sp-citcr-content"> 4056 <div class="sp-citcr-publish-date"> 4057 <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">02/10/26 10:30</a> 4058 </div> 4059 <!-- News Title --> 4060 <div class="sp-citcr-title"> 4061 <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Carnaval 2027: Prefeitura antecipa organização e 741 blocos estão inscritos para desfilarem nas ruas da cidade, 17,6% a mais do que na última edição</a> 4062 </div> 4063 <!-- News Headline/Description --> 4064 <div class="sp-citcr-headline"> 4065 <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Planejamento começou meses antes da folia e reúne 13 secretarias municipais, com participação de blocos e representantes dos bairros na organização da festa</a> 4066 </div> 4067 </div> 4068 </div> 4069 </div> 4070 </div> 4071 </div> 4072
4072<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-16442bc8-a79d-720e-bcd1-c97699a545d7'); const fragmentElementId = 'fragment-16442bc8-a79d-720e-bcd1-c97699a545d7'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 4073 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 4074 function formatDate(date) { 4075 const day = String(date.getDate()).padStart(2, '0'); 4076 const month = String(date.getMonth() + 1).padStart(2, '0'); 4077 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4078 const hours = String(date.getHours()).padStart(2, '0'); 4079 const minutes = String(date.getMinutes()).padStart(2, '0'); 4080 4081 return `${day}/${month}/${year} ${hours}:${minutes}`; 4082 } 4083 4084 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 4085 function formatDateOnly(date) { 4086 const day = String(date.getDate()).padStart(2, '0');
4087 const month = String(date.getMonth() + 1).padStart(2, '0'); 4088 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4089 4090 return `${day}/${month}/${year}`; 4091 } 4092 4093 // Função para fazer parse de diferentes formatos de data 4094 function parseDate(dateString) { 4095 if (!dateString || dateString.trim() === '') return null; 4096 4097 dateString = dateString.trim(); 4098 4099 try { 4100 // Se for timestamp em segundos 4101 if (/^\d{10}$/.test(dateString)) { 4102 return new Date(parseInt(dateString) * 1000); 4103 } 4104 4105 // Se for timestamp em milissegundos 4106 if (/^\d{13}$/.test(dateString)) { 4107 return new Date(parseInt(dateString)); 4108 } 4109 4110 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 4111 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 4112 const parts = dateString.split(/[\/\s:]/); 4113 const day = parseInt(parts[0]);
4114 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 4115 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 4116 const hour = parts[3] ? parseInt(parts[3]) : 0; 4117 const minute = parts[4] ? parseInt(parts[4]) : 0; 4118 const second = parts[5] ? parseInt(parts[5]) : 0; 4119 4120 return new Date(year, month, day, hour, minute, second); 4121 } 4122 4123 // Para formato ISO (yyyy-MM-dd) 4124 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 4125 const parts = dateString.split(/[-T\s:]/); 4126 const year = parseInt(parts[0]); 4127 const month = parseInt(parts[1]) - 1; 4128 const day = parseInt(parts[2]); 4129 const hour = parts[3] ? parseInt(parts[3]) : 0; 4130 const minute = parts[4] ? parseInt(parts[4]) : 0; 4131 const second = parts[5] ? parseInt(parts[5]) : 0; 4132 4133 return new Date(year, month, day, hour, minute, second); 4134 } 4135 4136 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 4137 if (dateString.includes('T') || dateString.includes('-')) { 4138 let parsedDate = new Date(dateString); 4139 if (!isNaN(parsedDate.getTime())) { 4140 return parsedDate; 4141 } 4142 } 4143 4144 } catch (e) { 4145 console.warn('Erro ao fazer parse da data:', dateString, e); 4146 } 4147 4148 return null; 4149 } 4150 4151 // Função principal para reduzir 3 horas das datas mapeadas 4152 function reduceDatesBy3Hours() { 4153 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 4154 4155 dateElements.forEach(function(element) { 4156 const currentText = element.textContent.trim(); 4157 4158 // Ignora se for texto padrão ou estiver vazio 4159 if (currentText === 'Data de Publicação' || currentText === '') { 4160 return; 4161 } 4162 4163 // Verifica se já foi processado 4164 if (element.getAttribute('data-hours-reduced') === 'true') { 4165 return; 4166 } 4167 4168 // Tenta fazer parse da data mapeada 4169 const parsedDate = parseDate(currentText); 4170 4171 if (parsedDate && !isNaN(parsedDate.getTime())) { 4172 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 4173 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 4174 4175 // Atualiza o elemento com a data reduzida 4176 element.textContent = formatDate(reducedDate); 4177 4178 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 4179 // element.textContent = formatDateOnly(reducedDate); 4180 4181 // Marca como processado para evitar reprocessamento 4182 element.setAttribute('data-hours-reduced', 'true'); 4183 } else { 4184 console.warn('Não foi possÃvel fazer parse da data:', currentText); 4185 } 4186 }); 4187 } 4188 4189 // Aguardar carregamento e processar datas 4190 setTimeout(function() { 4191 reduceDatesBy3Hours(); 4192 }, 500); 4193 4194 // Observer para detectar mudanças no DOM 4195 const observer = new MutationObserver(function(mutations) { 4196 mutations.forEach(function(mutation) { 4197 if (mutation.type === 'childList') { 4198 mutation.addedNodes.forEach(function(node) { 4199 if (node.nodeType === Node.ELEMENT_NODE) { 4200 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 4201 if (dateElements.length > 0) { 4202 setTimeout(reduceDatesBy3Hours, 100); 4203 } 4204 } 4205 }); 4206 } 4207 }); 4208 }); 4209 4210 // Observa mudanças no container principal 4211 const container = document.querySelector('.sp-citcr-section'); 4212 if (container) { 4213 observer.observe(container, { 4214 childList: true, 4215 subtree: true 4216 }); 4217 } 4218 4219 // Funcionalidade de clique nos itens de notÃcia 4220 const newsItems = document.querySelectorAll('.sp-citcr-item'); 4221
4222 newsItems.forEach(function(item) { 4223 item.addEventListener('click', function() { 4224 console.log('News item clicked'); 4225 }); 4226 4227 item.setAttribute('tabindex', '0'); 4228 item.setAttribute('role', 'article'); 4229 4230 item.addEventListener('keydown', function(e) { 4231 if (e.key === 'Enter' || e.key === ' ') { 4232 e.preventDefault(); 4233 item.click(); 4234 } 4235 }); 4236 }); 4237 4238 // Função global para reprocessar datas manualmente 4239 window.reduceDatesBy3Hours = function() { 4240 // Remove marcadores de processamento para permitir reprocessamento 4241 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 4242 dateElements.forEach(function(element) { 4243 element.removeAttribute('data-hours-reduced'); 4244 }); 4245 reduceDatesBy3Hours(); 4246 }; 4247});;</script>
4247 4248 </div> 4249 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 4250 <div id="fragment-468764d2-5609-f915-5ab4-4bf15c339b15"> 4251 <div class="py-2"></div> 4252 </div> 4253 </div> 4254 </div> 4255 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 4256 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 4257 <div id="fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2"> 4258 <!-- News Collection Fragment - Vertical Layout --> 4259 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 4260 <div class="sp-citcr-section"> 4261 <!-- News Collection Container --> 4262 <div class="sp-citcr-list"> 4263 <!-- Individual News Item Template --> 4264 <div class="sp-citcr-item"> 4265 <!-- News Image (Top) --> 4266 <div class="sp-citcr-image"> 4267 <!-- Category Badge (Overlaid on Image) --> 4268 <div class="sp-citcr-category"> 4269 <div class="sp-citcr-category-text"> 4270 <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Gestão</a> 4271 </div> 4272 </div> 4273 <div class="sp-citcr-img"> 4274 <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a> 4275 </div> 4276 </div> 4277 <!-- News Content (Bottom) --> 4278 <div class="sp-citcr-content"> 4279 <div class="sp-citcr-publish-date"> 4280 <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">01/10/26 18:58</a> 4281 </div> 4282 <!-- News Title --> 4283 <div class="sp-citcr-title"> 4284 <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Prefeitura elabora orçamento anual recorde para o ano 2027: R$ 146,52 bilhões</a> 4285 </div> 4286 <!-- News Headline/Description --> 4287 <div class="sp-citcr-headline"> 4288 <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Valor para investimentos na capital passou de R$ 5 bilhões em 2021 para R$ 20 bilhões em 2027, resultado de gestão que alia responsabilidade fiscal e eficiência no gasto público</a> 4289 </div> 4290 </div> 4291 </div> 4292 </div> 4293 </div> 4294 </div> 4295
4295<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2'); const fragmentElementId = 'fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 4296 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 4297 function formatDate(date) { 4298 const day = String(date.getDate()).padStart(2, '0'); 4299 const month = String(date.getMonth() + 1).padStart(2, '0'); 4300 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4301 const hours = String(date.getHours()).padStart(2, '0'); 4302 const minutes = String(date.getMinutes()).padStart(2, '0'); 4303 4304 return `${day}/${month}/${year} ${hours}:${minutes}`; 4305 } 4306 4307 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 4308 function formatDateOnly(date) { 4309 const day = String(date.getDate()).padStart(2, '0');
4310 const month = String(date.getMonth() + 1).padStart(2, '0'); 4311 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4312 4313 return `${day}/${month}/${year}`; 4314 } 4315 4316 // Função para fazer parse de diferentes formatos de data 4317 function parseDate(dateString) { 4318 if (!dateString || dateString.trim() === '') return null; 4319 4320 dateString = dateString.trim(); 4321 4322 try { 4323 // Se for timestamp em segundos 4324 if (/^\d{10}$/.test(dateString)) { 4325 return new Date(parseInt(dateString) * 1000); 4326 } 4327 4328 // Se for timestamp em milissegundos 4329 if (/^\d{13}$/.test(dateString)) { 4330 return new Date(parseInt(dateString)); 4331 } 4332 4333 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 4334 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 4335 const parts = dateString.split(/[\/\s:]/); 4336 const day = parseInt(parts[0]);
4337 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 4338 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 4339 const hour = parts[3] ? parseInt(parts[3]) : 0; 4340 const minute = parts[4] ? parseInt(parts[4]) : 0; 4341 const second = parts[5] ? parseInt(parts[5]) : 0; 4342 4343 return new Date(year, month, day, hour, minute, second); 4344 } 4345 4346 // Para formato ISO (yyyy-MM-dd) 4347 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 4348 const parts = dateString.split(/[-T\s:]/); 4349 const year = parseInt(parts[0]); 4350 const month = parseInt(parts[1]) - 1; 4351 const day = parseInt(parts[2]); 4352 const hour = parts[3] ? parseInt(parts[3]) : 0; 4353 const minute = parts[4] ? parseInt(parts[4]) : 0; 4354 const second = parts[5] ? parseInt(parts[5]) : 0; 4355 4356 return new Date(year, month, day, hour, minute, second); 4357 } 4358 4359 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 4360 if (dateString.includes('T') || dateString.includes('-')) { 4361 let parsedDate = new Date(dateString); 4362 if (!isNaN(parsedDate.getTime())) { 4363 return parsedDate; 4364 } 4365 } 4366 4367 } catch (e) { 4368 console.warn('Erro ao fazer parse da data:', dateString, e); 4369 } 4370 4371 return null; 4372 } 4373 4374 // Função principal para reduzir 3 horas das datas mapeadas 4375 function reduceDatesBy3Hours() { 4376 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 4377 4378 dateElements.forEach(function(element) { 4379 const currentText = element.textContent.trim(); 4380 4381 // Ignora se for texto padrão ou estiver vazio 4382 if (currentText === 'Data de Publicação' || currentText === '') { 4383 return; 4384 } 4385 4386 // Verifica se já foi processado 4387 if (element.getAttribute('data-hours-reduced') === 'true') { 4388 return; 4389 } 4390 4391 // Tenta fazer parse da data mapeada 4392 const parsedDate = parseDate(currentText); 4393 4394 if (parsedDate && !isNaN(parsedDate.getTime())) { 4395 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 4396 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 4397 4398 // Atualiza o elemento com a data reduzida 4399 element.textContent = formatDate(reducedDate); 4400 4401 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 4402 // element.textContent = formatDateOnly(reducedDate); 4403 4404 // Marca como processado para evitar reprocessamento 4405 element.setAttribute('data-hours-reduced', 'true'); 4406 } else { 4407 console.warn('Não foi possÃvel fazer parse da data:', currentText); 4408 } 4409 }); 4410 } 4411 4412 // Aguardar carregamento e processar datas 4413 setTimeout(function() { 4414 reduceDatesBy3Hours(); 4415 }, 500); 4416 4417 // Observer para detectar mudanças no DOM 4418 const observer = new MutationObserver(function(mutations) { 4419 mutations.forEach(function(mutation) { 4420 if (mutation.type === 'childList') { 4421 mutation.addedNodes.forEach(function(node) { 4422 if (node.nodeType === Node.ELEMENT_NODE) { 4423 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 4424 if (dateElements.length > 0) { 4425 setTimeout(reduceDatesBy3Hours, 100); 4426 } 4427 } 4428 }); 4429 } 4430 }); 4431 }); 4432 4433 // Observa mudanças no container principal 4434 const container = document.querySelector('.sp-citcr-section'); 4435 if (container) { 4436 observer.observe(container, { 4437 childList: true, 4438 subtree: true 4439 }); 4440 } 4441 4442 // Funcionalidade de clique nos itens de notÃcia 4443 const newsItems = document.querySelectorAll('.sp-citcr-item'); 4444
4445 newsItems.forEach(function(item) { 4446 item.addEventListener('click', function() { 4447 console.log('News item clicked'); 4448 }); 4449 4450 item.setAttribute('tabindex', '0'); 4451 item.setAttribute('role', 'article'); 4452 4453 item.addEventListener('keydown', function(e) { 4454 if (e.key === 'Enter' || e.key === ' ') { 4455 e.preventDefault(); 4456 item.click(); 4457 } 4458 }); 4459 }); 4460 4461 // Função global para reprocessar datas manualmente 4462 window.reduceDatesBy3Hours = function() { 4463 // Remove marcadores de processamento para permitir reprocessamento 4464 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 4465 dateElements.forEach(function(element) { 4466 element.removeAttribute('data-hours-reduced'); 4467 }); 4468 reduceDatesBy3Hours(); 4469 }; 4470});;</script>
4470 4471 </div> 4472 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 4473 <div id="fragment-2ab0d724-2d37-6180-8f9d-5a88960fc5c6"> 4474 <div class="py-2"></div> 4475 </div> 4476 </div> 4477 </div> 4478 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 4479 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 4480 <div id="fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66"> 4481 <!-- News Collection Fragment - Vertical Layout --> 4482 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 4483 <div class="sp-citcr-section"> 4484 <!-- News Collection Container --> 4485 <div class="sp-citcr-list"> 4486 <!-- Individual News Item Template --> 4487 <div class="sp-citcr-item"> 4488 <!-- News Image (Top) --> 4489 <div class="sp-citcr-image"> 4490 <!-- Category Badge (Overlaid on Image) --> 4491 <div class="sp-citcr-category"> 4492 <div class="sp-citcr-category-text"> 4493 <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Saúde</a> 4494 </div> 4495 </div> 4496 <div class="sp-citcr-img"> 4497 <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-09-23+at+14.17.34+%282%29.jpeg/541e8595-0ac7-3b9a-84c7-46798303da5d?version=1.0&t=1790872614434" alt="News Image"> </a> 4498 </div> 4499 </div> 4500 <!-- News Content (Bottom) --> 4501 <div class="sp-citcr-content"> 4502 <div class="sp-citcr-publish-date"> 4503 <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">01/10/26 13:29</a> 4504 </div> 4505 <!-- News Title --> 4506 <div class="sp-citcr-title"> 4507 <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Protocolo de monitoramento cerebral reduz em cerca de 54% tempo de internação de recém-nascidos em UTIs municipais de São Paulo</a> 4508 </div> 4509 <!-- News Headline/Description --> 4510 <div class="sp-citcr-headline"> 4511 <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Tecnologia acompanha cérebro de bebês de alto risco em tempo real e identifica crises que podem não apresentar sinais visÃveis</a> 4512 </div> 4513 </div> 4514 </div> 4515 </div> 4516 </div> 4517 </div> 4518
4518<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66'); const fragmentElementId = 'fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 4519 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 4520 function formatDate(date) { 4521 const day = String(date.getDate()).padStart(2, '0'); 4522 const month = String(date.getMonth() + 1).padStart(2, '0'); 4523 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4524 const hours = String(date.getHours()).padStart(2, '0'); 4525 const minutes = String(date.getMinutes()).padStart(2, '0'); 4526 4527 return `${day}/${month}/${year} ${hours}:${minutes}`; 4528 } 4529 4530 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 4531 function formatDateOnly(date) { 4532 const day = String(date.getDate()).padStart(2, '0');
4533 const month = String(date.getMonth() + 1).padStart(2, '0'); 4534 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4535 4536 return `${day}/${month}/${year}`; 4537 } 4538 4539 // Função para fazer parse de diferentes formatos de data 4540 function parseDate(dateString) { 4541 if (!dateString || dateString.trim() === '') return null; 4542 4543 dateString = dateString.trim(); 4544 4545 try { 4546 // Se for timestamp em segundos 4547 if (/^\d{10}$/.test(dateString)) { 4548 return new Date(parseInt(dateString) * 1000); 4549 } 4550 4551 // Se for timestamp em milissegundos 4552 if (/^\d{13}$/.test(dateString)) { 4553 return new Date(parseInt(dateString)); 4554 } 4555 4556 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 4557 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 4558 const parts = dateString.split(/[\/\s:]/); 4559 const day = parseInt(parts[0]);
4560 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 4561 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 4562 const hour = parts[3] ? parseInt(parts[3]) : 0; 4563 const minute = parts[4] ? parseInt(parts[4]) : 0; 4564 const second = parts[5] ? parseInt(parts[5]) : 0; 4565 4566 return new Date(year, month, day, hour, minute, second); 4567 } 4568 4569 // Para formato ISO (yyyy-MM-dd) 4570 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 4571 const parts = dateString.split(/[-T\s:]/); 4572 const year = parseInt(parts[0]); 4573 const month = parseInt(parts[1]) - 1; 4574 const day = parseInt(parts[2]); 4575 const hour = parts[3] ? parseInt(parts[3]) : 0; 4576 const minute = parts[4] ? parseInt(parts[4]) : 0; 4577 const second = parts[5] ? parseInt(parts[5]) : 0; 4578 4579 return new Date(year, month, day, hour, minute, second); 4580 } 4581 4582 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 4583 if (dateString.includes('T') || dateString.includes('-')) { 4584 let parsedDate = new Date(dateString); 4585 if (!isNaN(parsedDate.getTime())) { 4586 return parsedDate; 4587 } 4588 } 4589 4590 } catch (e) { 4591 console.warn('Erro ao fazer parse da data:', dateString, e); 4592 } 4593 4594 return null; 4595 } 4596 4597 // Função principal para reduzir 3 horas das datas mapeadas 4598 function reduceDatesBy3Hours() { 4599 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 4600 4601 dateElements.forEach(function(element) { 4602 const currentText = element.textContent.trim(); 4603 4604 // Ignora se for texto padrão ou estiver vazio 4605 if (currentText === 'Data de Publicação' || currentText === '') { 4606 return; 4607 } 4608 4609 // Verifica se já foi processado 4610 if (element.getAttribute('data-hours-reduced') === 'true') { 4611 return; 4612 } 4613 4614 // Tenta fazer parse da data mapeada 4615 const parsedDate = parseDate(currentText); 4616 4617 if (parsedDate && !isNaN(parsedDate.getTime())) { 4618 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 4619 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 4620 4621 // Atualiza o elemento com a data reduzida 4622 element.textContent = formatDate(reducedDate); 4623 4624 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 4625 // element.textContent = formatDateOnly(reducedDate); 4626 4627 // Marca como processado para evitar reprocessamento 4628 element.setAttribute('data-hours-reduced', 'true'); 4629 } else { 4630 console.warn('Não foi possÃvel fazer parse da data:', currentText); 4631 } 4632 }); 4633 } 4634 4635 // Aguardar carregamento e processar datas 4636 setTimeout(function() { 4637 reduceDatesBy3Hours(); 4638 }, 500); 4639 4640 // Observer para detectar mudanças no DOM 4641 const observer = new MutationObserver(function(mutations) { 4642 mutations.forEach(function(mutation) { 4643 if (mutation.type === 'childList') { 4644 mutation.addedNodes.forEach(function(node) { 4645 if (node.nodeType === Node.ELEMENT_NODE) { 4646 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 4647 if (dateElements.length > 0) { 4648 setTimeout(reduceDatesBy3Hours, 100); 4649 } 4650 } 4651 }); 4652 } 4653 }); 4654 }); 4655 4656 // Observa mudanças no container principal 4657 const container = document.querySelector('.sp-citcr-section'); 4658 if (container) { 4659 observer.observe(container, { 4660 childList: true, 4661 subtree: true 4662 }); 4663 } 4664 4665 // Funcionalidade de clique nos itens de notÃcia 4666 const newsItems = document.querySelectorAll('.sp-citcr-item'); 4667
4668 newsItems.forEach(function(item) { 4669 item.addEventListener('click', function() { 4670 console.log('News item clicked'); 4671 }); 4672 4673 item.setAttribute('tabindex', '0'); 4674 item.setAttribute('role', 'article'); 4675 4676 item.addEventListener('keydown', function(e) { 4677 if (e.key === 'Enter' || e.key === ' ') { 4678 e.preventDefault(); 4679 item.click(); 4680 } 4681 }); 4682 }); 4683 4684 // Função global para reprocessar datas manualmente 4685 window.reduceDatesBy3Hours = function() { 4686 // Remove marcadores de processamento para permitir reprocessamento 4687 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 4688 dateElements.forEach(function(element) { 4689 element.removeAttribute('data-hours-reduced'); 4690 }); 4691 reduceDatesBy3Hours(); 4692 }; 4693});;</script>
4693 4694 </div> 4695 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 4696 <div id="fragment-816ac632-d92d-bc77-2051-25308a733d0b"> 4697 <div class="py-2"></div> 4698 </div> 4699 </div> 4700 </div> 4701 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 4702 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 4703 <div id="fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88"> 4704 <!-- News Collection Fragment - Vertical Layout --> 4705 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 4706 <div class="sp-citcr-section"> 4707 <!-- News Collection Container --> 4708 <div class="sp-citcr-list"> 4709 <!-- Individual News Item Template --> 4710 <div class="sp-citcr-item"> 4711 <!-- News Image (Top) --> 4712 <div class="sp-citcr-image"> 4713 <!-- Category Badge (Overlaid on Image) --> 4714 <div class="sp-citcr-category"> 4715 <div class="sp-citcr-category-text"> 4716 <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Mobilidade</a> 4717 </div> 4718 </div> 4719 <div class="sp-citcr-img"> 4720 <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/6c2143a3-ea27-4a7b-9b43-41da83c4cb25.jpg/67f9a484-3869-40e9-ef19-189379a4a73e?version=1.0&t=1790792199636" alt="News Image"> </a> 4721 </div> 4722 </div> 4723 <!-- News Content (Bottom) --> 4724 <div class="sp-citcr-content"> 4725 <div class="sp-citcr-publish-date"> 4726 <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">30/09/26 15:20</a> 4727 </div> 4728 <!-- News Title --> 4729 <div class="sp-citcr-title"> 4730 <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Prefeitura atinge marco histórico de 2 mil ônibus elétricos na frota de São Paulo com entrega de mais 250 veÃculos</a> 4731 </div> 4732 <!-- News Headline/Description --> 4733 <div class="sp-citcr-headline"> 4734 <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Cidade já lidera a eletromobilidade no Brasil; na América Latina, só fica atrás da soma da frota de todo o Chile e agora supera Nova York, Madri, Roma, Berlim, Los Angeles, Chicago e Lisboa juntas</a> 4735 </div> 4736 </div> 4737 </div> 4738 </div> 4739 </div> 4740 </div> 4741
4741<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88'); const fragmentElementId = 'fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 4742 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 4743 function formatDate(date) { 4744 const day = String(date.getDate()).padStart(2, '0'); 4745 const month = String(date.getMonth() + 1).padStart(2, '0'); 4746 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4747 const hours = String(date.getHours()).padStart(2, '0'); 4748 const minutes = String(date.getMinutes()).padStart(2, '0'); 4749 4750 return `${day}/${month}/${year} ${hours}:${minutes}`; 4751 } 4752 4753 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 4754 function formatDateOnly(date) { 4755 const day = String(date.getDate()).padStart(2, '0');
4756 const month = String(date.getMonth() + 1).padStart(2, '0'); 4757 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4758 4759 return `${day}/${month}/${year}`; 4760 } 4761 4762 // Função para fazer parse de diferentes formatos de data 4763 function parseDate(dateString) { 4764 if (!dateString || dateString.trim() === '') return null; 4765 4766 dateString = dateString.trim(); 4767 4768 try { 4769 // Se for timestamp em segundos 4770 if (/^\d{10}$/.test(dateString)) { 4771 return new Date(parseInt(dateString) * 1000); 4772 } 4773 4774 // Se for timestamp em milissegundos 4775 if (/^\d{13}$/.test(dateString)) { 4776 return new Date(parseInt(dateString)); 4777 } 4778 4779 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 4780 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 4781 const parts = dateString.split(/[\/\s:]/); 4782 const day = parseInt(parts[0]);
4783 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 4784 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 4785 const hour = parts[3] ? parseInt(parts[3]) : 0; 4786 const minute = parts[4] ? parseInt(parts[4]) : 0; 4787 const second = parts[5] ? parseInt(parts[5]) : 0; 4788 4789 return new Date(year, month, day, hour, minute, second); 4790 } 4791 4792 // Para formato ISO (yyyy-MM-dd) 4793 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 4794 const parts = dateString.split(/[-T\s:]/); 4795 const year = parseInt(parts[0]); 4796 const month = parseInt(parts[1]) - 1; 4797 const day = parseInt(parts[2]); 4798 const hour = parts[3] ? parseInt(parts[3]) : 0; 4799 const minute = parts[4] ? parseInt(parts[4]) : 0; 4800 const second = parts[5] ? parseInt(parts[5]) : 0; 4801 4802 return new Date(year, month, day, hour, minute, second); 4803 } 4804 4805 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 4806 if (dateString.includes('T') || dateString.includes('-')) { 4807 let parsedDate = new Date(dateString); 4808 if (!isNaN(parsedDate.getTime())) { 4809 return parsedDate; 4810 } 4811 } 4812 4813 } catch (e) { 4814 console.warn('Erro ao fazer parse da data:', dateString, e); 4815 } 4816 4817 return null; 4818 } 4819 4820 // Função principal para reduzir 3 horas das datas mapeadas 4821 function reduceDatesBy3Hours() { 4822 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 4823 4824 dateElements.forEach(function(element) { 4825 const currentText = element.textContent.trim(); 4826 4827 // Ignora se for texto padrão ou estiver vazio 4828 if (currentText === 'Data de Publicação' || currentText === '') { 4829 return; 4830 } 4831 4832 // Verifica se já foi processado 4833 if (element.getAttribute('data-hours-reduced') === 'true') { 4834 return; 4835 } 4836 4837 // Tenta fazer parse da data mapeada 4838 const parsedDate = parseDate(currentText); 4839 4840 if (parsedDate && !isNaN(parsedDate.getTime())) { 4841 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 4842 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 4843 4844 // Atualiza o elemento com a data reduzida 4845 element.textContent = formatDate(reducedDate); 4846 4847 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 4848 // element.textContent = formatDateOnly(reducedDate); 4849 4850 // Marca como processado para evitar reprocessamento 4851 element.setAttribute('data-hours-reduced', 'true'); 4852 } else { 4853 console.warn('Não foi possÃvel fazer parse da data:', currentText); 4854 } 4855 }); 4856 } 4857 4858 // Aguardar carregamento e processar datas 4859 setTimeout(function() { 4860 reduceDatesBy3Hours(); 4861 }, 500); 4862 4863 // Observer para detectar mudanças no DOM 4864 const observer = new MutationObserver(function(mutations) { 4865 mutations.forEach(function(mutation) { 4866 if (mutation.type === 'childList') { 4867 mutation.addedNodes.forEach(function(node) { 4868 if (node.nodeType === Node.ELEMENT_NODE) { 4869 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 4870 if (dateElements.length > 0) { 4871 setTimeout(reduceDatesBy3Hours, 100); 4872 } 4873 } 4874 }); 4875 } 4876 }); 4877 }); 4878 4879 // Observa mudanças no container principal 4880 const container = document.querySelector('.sp-citcr-section'); 4881 if (container) { 4882 observer.observe(container, { 4883 childList: true, 4884 subtree: true 4885 }); 4886 } 4887 4888 // Funcionalidade de clique nos itens de notÃcia 4889 const newsItems = document.querySelectorAll('.sp-citcr-item'); 4890
4891 newsItems.forEach(function(item) { 4892 item.addEventListener('click', function() { 4893 console.log('News item clicked'); 4894 }); 4895 4896 item.setAttribute('tabindex', '0'); 4897 item.setAttribute('role', 'article'); 4898 4899 item.addEventListener('keydown', function(e) { 4900 if (e.key === 'Enter' || e.key === ' ') { 4901 e.preventDefault(); 4902 item.click(); 4903 } 4904 }); 4905 }); 4906 4907 // Função global para reprocessar datas manualmente 4908 window.reduceDatesBy3Hours = function() { 4909 // Remove marcadores de processamento para permitir reprocessamento 4910 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 4911 dateElements.forEach(function(element) { 4912 element.removeAttribute('data-hours-reduced'); 4913 }); 4914 reduceDatesBy3Hours(); 4915 }; 4916});;</script>
4916 4917 </div> 4918 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 4919 <div id="fragment-5c888b2d-4fd2-de82-eb62-6419a727c674"> 4920 <div class="py-2"></div> 4921 </div> 4922 </div> 4923 </div> 4924 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 4925 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 4926 <div id="fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea"> 4927 <!-- News Collection Fragment - Vertical Layout --> 4928 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 4929 <div class="sp-citcr-section"> 4930 <!-- News Collection Container --> 4931 <div class="sp-citcr-list"> 4932 <!-- Individual News Item Template --> 4933 <div class="sp-citcr-item"> 4934 <!-- News Image (Top) --> 4935 <div class="sp-citcr-image"> 4936 <!-- Category Badge (Overlaid on Image) --> 4937 <div class="sp-citcr-category"> 4938 <div class="sp-citcr-category-text"> 4939 <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Trabalho</a> 4940 </div> 4941 </div> 4942 <div class="sp-citcr-img"> 4943 <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-09-28+at+09.14.39.jpeg/82e230d2-3f81-35f1-45e6-24dedbcb551a?version=1.0&t=1790598668799" alt="News Image"> </a> 4944 </div> 4945 </div> 4946 <!-- News Content (Bottom) --> 4947 <div class="sp-citcr-content"> 4948 <div class="sp-citcr-publish-date"> 4949 <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">28/09/26 09:23</a> 4950 </div> 4951 <!-- News Title --> 4952 <div class="sp-citcr-title"> 4953 <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Ãltima semana de setembro tem mais de 4.500 vagas de emprego no Cate, com salários de até R$ 4.300</a> 4954 </div> 4955 <!-- News Headline/Description --> 4956 <div class="sp-citcr-headline"> 4957 <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Seleções contemplam candidatos em inÃcio de carreira e profissionais com experiência em diferentes áreas</a> 4958 </div> 4959 </div> 4960 </div> 4961 </div> 4962 </div> 4963 </div> 4964
4964<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea'); const fragmentElementId = 'fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 4965 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 4966 function formatDate(date) { 4967 const day = String(date.getDate()).padStart(2, '0'); 4968 const month = String(date.getMonth() + 1).padStart(2, '0'); 4969 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4970 const hours = String(date.getHours()).padStart(2, '0'); 4971 const minutes = String(date.getMinutes()).padStart(2, '0'); 4972 4973 return `${day}/${month}/${year} ${hours}:${minutes}`; 4974 } 4975 4976 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 4977 function formatDateOnly(date) { 4978 const day = String(date.getDate()).padStart(2, '0');
4979 const month = String(date.getMonth() + 1).padStart(2, '0'); 4980 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 4981 4982 return `${day}/${month}/${year}`; 4983 } 4984 4985 // Função para fazer parse de diferentes formatos de data 4986 function parseDate(dateString) { 4987 if (!dateString || dateString.trim() === '') return null; 4988 4989 dateString = dateString.trim(); 4990 4991 try { 4992 // Se for timestamp em segundos 4993 if (/^\d{10}$/.test(dateString)) { 4994 return new Date(parseInt(dateString) * 1000); 4995 } 4996 4997 // Se for timestamp em milissegundos 4998 if (/^\d{13}$/.test(dateString)) { 4999 return new Date(parseInt(dateString)); 5000 } 5001 5002 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 5003 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 5004 const parts = dateString.split(/[\/\s:]/); 5005 const day = parseInt(parts[0]);
5006 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 5007 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 5008 const hour = parts[3] ? parseInt(parts[3]) : 0; 5009 const minute = parts[4] ? parseInt(parts[4]) : 0; 5010 const second = parts[5] ? parseInt(parts[5]) : 0; 5011 5012 return new Date(year, month, day, hour, minute, second); 5013 } 5014 5015 // Para formato ISO (yyyy-MM-dd) 5016 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 5017 const parts = dateString.split(/[-T\s:]/); 5018 const year = parseInt(parts[0]); 5019 const month = parseInt(parts[1]) - 1; 5020 const day = parseInt(parts[2]); 5021 const hour = parts[3] ? parseInt(parts[3]) : 0; 5022 const minute = parts[4] ? parseInt(parts[4]) : 0; 5023 const second = parts[5] ? parseInt(parts[5]) : 0; 5024 5025 return new Date(year, month, day, hour, minute, second); 5026 } 5027 5028 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 5029 if (dateString.includes('T') || dateString.includes('-')) { 5030 let parsedDate = new Date(dateString); 5031 if (!isNaN(parsedDate.getTime())) { 5032 return parsedDate; 5033 } 5034 } 5035 5036 } catch (e) { 5037 console.warn('Erro ao fazer parse da data:', dateString, e); 5038 } 5039 5040 return null; 5041 } 5042 5043 // Função principal para reduzir 3 horas das datas mapeadas 5044 function reduceDatesBy3Hours() { 5045 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 5046 5047 dateElements.forEach(function(element) { 5048 const currentText = element.textContent.trim(); 5049 5050 // Ignora se for texto padrão ou estiver vazio 5051 if (currentText === 'Data de Publicação' || currentText === '') { 5052 return; 5053 } 5054 5055 // Verifica se já foi processado 5056 if (element.getAttribute('data-hours-reduced') === 'true') { 5057 return; 5058 } 5059 5060 // Tenta fazer parse da data mapeada 5061 const parsedDate = parseDate(currentText); 5062 5063 if (parsedDate && !isNaN(parsedDate.getTime())) { 5064 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 5065 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 5066 5067 // Atualiza o elemento com a data reduzida 5068 element.textContent = formatDate(reducedDate); 5069 5070 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 5071 // element.textContent = formatDateOnly(reducedDate); 5072 5073 // Marca como processado para evitar reprocessamento 5074 element.setAttribute('data-hours-reduced', 'true'); 5075 } else { 5076 console.warn('Não foi possÃvel fazer parse da data:', currentText); 5077 } 5078 }); 5079 } 5080 5081 // Aguardar carregamento e processar datas 5082 setTimeout(function() { 5083 reduceDatesBy3Hours(); 5084 }, 500); 5085 5086 // Observer para detectar mudanças no DOM 5087 const observer = new MutationObserver(function(mutations) { 5088 mutations.forEach(function(mutation) { 5089 if (mutation.type === 'childList') { 5090 mutation.addedNodes.forEach(function(node) { 5091 if (node.nodeType === Node.ELEMENT_NODE) { 5092 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 5093 if (dateElements.length > 0) { 5094 setTimeout(reduceDatesBy3Hours, 100); 5095 } 5096 } 5097 }); 5098 } 5099 }); 5100 }); 5101 5102 // Observa mudanças no container principal 5103 const container = document.querySelector('.sp-citcr-section'); 5104 if (container) { 5105 observer.observe(container, { 5106 childList: true, 5107 subtree: true 5108 }); 5109 } 5110 5111 // Funcionalidade de clique nos itens de notÃcia 5112 const newsItems = document.querySelectorAll('.sp-citcr-item'); 5113
5114 newsItems.forEach(function(item) { 5115 item.addEventListener('click', function() { 5116 console.log('News item clicked'); 5117 }); 5118 5119 item.setAttribute('tabindex', '0'); 5120 item.setAttribute('role', 'article'); 5121 5122 item.addEventListener('keydown', function(e) { 5123 if (e.key === 'Enter' || e.key === ' ') { 5124 e.preventDefault(); 5125 item.click(); 5126 } 5127 }); 5128 }); 5129 5130 // Função global para reprocessar datas manualmente 5131 window.reduceDatesBy3Hours = function() { 5132 // Remove marcadores de processamento para permitir reprocessamento 5133 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 5134 dateElements.forEach(function(element) { 5135 element.removeAttribute('data-hours-reduced'); 5136 }); 5137 reduceDatesBy3Hours(); 5138 }; 5139});;</script>
5139 5140 </div> 5141 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 5142 <div id="fragment-90637ee2-f3a7-05ad-723b-08cc7050ac2a"> 5143 <div class="py-2"></div> 5144 </div> 5145 </div> 5146 </div> 5147 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 5148 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 5149 <div id="fragment-6304fb08-2c1e-c984-848e-e14f085972b3"> 5150 <!-- News Collection Fragment - Vertical Layout --> 5151 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 5152 <div class="sp-citcr-section"> 5153 <!-- News Collection Container --> 5154 <div class="sp-citcr-list"> 5155 <!-- Individual News Item Template --> 5156 <div class="sp-citcr-item"> 5157 <!-- News Image (Top) --> 5158 <div class="sp-citcr-image"> 5159 <!-- Category Badge (Overlaid on Image) --> 5160 <div class="sp-citcr-category"> 5161 <div class="sp-citcr-category-text"> 5162 <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">Habitação</a> 5163 </div> 5164 </div> 5165 <div class="sp-citcr-img"> 5166 <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a> 5167 </div> 5168 </div> 5169 <!-- News Content (Bottom) --> 5170 <div class="sp-citcr-content"> 5171 <div class="sp-citcr-publish-date"> 5172 <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">25/09/26 19:18</a> 5173 </div> 5174 <!-- News Title --> 5175 <div class="sp-citcr-title"> 5176 <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">Prefeitura entrega mais de 1,2 mil escrituras para moradores de Heliópolis, na Zona Sul</a> 5177 </div> 5178 <!-- News Headline/Description --> 5179 <div class="sp-citcr-headline"> 5180 <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">FamÃlias contempladas são residentes da Gleba K; cidade atinge mais de 101 mil documentos entregues</a> 5181 </div> 5182 </div> 5183 </div> 5184 </div> 5185 </div> 5186 </div> 5187
5187<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-6304fb08-2c1e-c984-848e-e14f085972b3'); const fragmentElementId = 'fragment-6304fb08-2c1e-c984-848e-e14f085972b3'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 5188 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 5189 function formatDate(date) { 5190 const day = String(date.getDate()).padStart(2, '0'); 5191 const month = String(date.getMonth() + 1).padStart(2, '0'); 5192 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 5193 const hours = String(date.getHours()).padStart(2, '0'); 5194 const minutes = String(date.getMinutes()).padStart(2, '0'); 5195 5196 return `${day}/${month}/${year} ${hours}:${minutes}`; 5197 } 5198 5199 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 5200 function formatDateOnly(date) { 5201 const day = String(date.getDate()).padStart(2, '0');
5202 const month = String(date.getMonth() + 1).padStart(2, '0'); 5203 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 5204 5205 return `${day}/${month}/${year}`; 5206 } 5207 5208 // Função para fazer parse de diferentes formatos de data 5209 function parseDate(dateString) { 5210 if (!dateString || dateString.trim() === '') return null; 5211 5212 dateString = dateString.trim(); 5213 5214 try { 5215 // Se for timestamp em segundos 5216 if (/^\d{10}$/.test(dateString)) { 5217 return new Date(parseInt(dateString) * 1000); 5218 } 5219 5220 // Se for timestamp em milissegundos 5221 if (/^\d{13}$/.test(dateString)) { 5222 return new Date(parseInt(dateString)); 5223 } 5224 5225 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 5226 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 5227 const parts = dateString.split(/[\/\s:]/); 5228 const day = parseInt(parts[0]);
5229 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 5230 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 5231 const hour = parts[3] ? parseInt(parts[3]) : 0; 5232 const minute = parts[4] ? parseInt(parts[4]) : 0; 5233 const second = parts[5] ? parseInt(parts[5]) : 0; 5234 5235 return new Date(year, month, day, hour, minute, second); 5236 } 5237 5238 // Para formato ISO (yyyy-MM-dd) 5239 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 5240 const parts = dateString.split(/[-T\s:]/); 5241 const year = parseInt(parts[0]); 5242 const month = parseInt(parts[1]) - 1; 5243 const day = parseInt(parts[2]); 5244 const hour = parts[3] ? parseInt(parts[3]) : 0; 5245 const minute = parts[4] ? parseInt(parts[4]) : 0; 5246 const second = parts[5] ? parseInt(parts[5]) : 0; 5247 5248 return new Date(year, month, day, hour, minute, second); 5249 } 5250 5251 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 5252 if (dateString.includes('T') || dateString.includes('-')) { 5253 let parsedDate = new Date(dateString); 5254 if (!isNaN(parsedDate.getTime())) { 5255 return parsedDate; 5256 } 5257 } 5258 5259 } catch (e) { 5260 console.warn('Erro ao fazer parse da data:', dateString, e); 5261 } 5262 5263 return null; 5264 } 5265 5266 // Função principal para reduzir 3 horas das datas mapeadas 5267 function reduceDatesBy3Hours() { 5268 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 5269 5270 dateElements.forEach(function(element) { 5271 const currentText = element.textContent.trim(); 5272 5273 // Ignora se for texto padrão ou estiver vazio 5274 if (currentText === 'Data de Publicação' || currentText === '') { 5275 return; 5276 } 5277 5278 // Verifica se já foi processado 5279 if (element.getAttribute('data-hours-reduced') === 'true') { 5280 return; 5281 } 5282 5283 // Tenta fazer parse da data mapeada 5284 const parsedDate = parseDate(currentText); 5285 5286 if (parsedDate && !isNaN(parsedDate.getTime())) { 5287 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 5288 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 5289 5290 // Atualiza o elemento com a data reduzida 5291 element.textContent = formatDate(reducedDate); 5292 5293 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 5294 // element.textContent = formatDateOnly(reducedDate); 5295 5296 // Marca como processado para evitar reprocessamento 5297 element.setAttribute('data-hours-reduced', 'true'); 5298 } else { 5299 console.warn('Não foi possÃvel fazer parse da data:', currentText); 5300 } 5301 }); 5302 } 5303 5304 // Aguardar carregamento e processar datas 5305 setTimeout(function() { 5306 reduceDatesBy3Hours(); 5307 }, 500); 5308 5309 // Observer para detectar mudanças no DOM 5310 const observer = new MutationObserver(function(mutations) { 5311 mutations.forEach(function(mutation) { 5312 if (mutation.type === 'childList') { 5313 mutation.addedNodes.forEach(function(node) { 5314 if (node.nodeType === Node.ELEMENT_NODE) { 5315 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 5316 if (dateElements.length > 0) { 5317 setTimeout(reduceDatesBy3Hours, 100); 5318 } 5319 } 5320 }); 5321 } 5322 }); 5323 }); 5324 5325 // Observa mudanças no container principal 5326 const container = document.querySelector('.sp-citcr-section'); 5327 if (container) { 5328 observer.observe(container, { 5329 childList: true, 5330 subtree: true 5331 }); 5332 } 5333 5334 // Funcionalidade de clique nos itens de notÃcia 5335 const newsItems = document.querySelectorAll('.sp-citcr-item'); 5336
5337 newsItems.forEach(function(item) { 5338 item.addEventListener('click', function() { 5339 console.log('News item clicked'); 5340 }); 5341 5342 item.setAttribute('tabindex', '0'); 5343 item.setAttribute('role', 'article'); 5344 5345 item.addEventListener('keydown', function(e) { 5346 if (e.key === 'Enter' || e.key === ' ') { 5347 e.preventDefault(); 5348 item.click(); 5349 } 5350 }); 5351 }); 5352 5353 // Função global para reprocessar datas manualmente 5354 window.reduceDatesBy3Hours = function() { 5355 // Remove marcadores de processamento para permitir reprocessamento 5356 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 5357 dateElements.forEach(function(element) { 5358 element.removeAttribute('data-hours-reduced'); 5359 }); 5360 reduceDatesBy3Hours(); 5361 }; 5362});;</script>
5362 5363 </div> 5364 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 5365 <div id="fragment-02c3ccd3-0bf5-b4ca-d7e6-9e1abfbbc265"> 5366 <div class="py-2"></div> 5367 </div> 5368 </div> 5369 </div> 5370 <div class="col col-lg-4 col-sm-12 col-12 col-md-12"> 5371 <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1"> 5372 <div id="fragment-ea342903-e3e3-88d6-b65c-d7670578c448"> 5373 <!-- News Collection Fragment - Vertical Layout --> 5374 <!-- This fragment displays a collection of news items in vertical layout with mappable fields --> 5375 <div class="sp-citcr-section"> 5376 <!-- News Collection Container --> 5377 <div class="sp-citcr-list"> 5378 <!-- Individual News Item Template --> 5379 <div class="sp-citcr-item"> 5380 <!-- News Image (Top) --> 5381 <div class="sp-citcr-image"> 5382 <!-- Category Badge (Overlaid on Image) --> 5383 <div class="sp-citcr-category"> 5384 <div class="sp-citcr-category-text"> 5385 <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Esportes</a> 5386 </div> 5387 </div> 5388 <div class="sp-citcr-img"> 5389 <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a> 5390 </div> 5391 </div> 5392 <!-- News Content (Bottom) --> 5393 <div class="sp-citcr-content"> 5394 <div class="sp-citcr-publish-date"> 5395 <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">25/09/26 17:35</a> 5396 </div> 5397 <!-- News Title --> 5398 <div class="sp-citcr-title"> 5399 <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Com piscina semiolÃmpica coberta e aquecida, Prefeitura entrega recuperação e modernização completa do Centro Esportivo Carioca</a> 5400 </div> 5401 <!-- News Headline/Description --> 5402 <div class="sp-citcr-headline"> 5403 <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Equipamento esportivo, que atende os moradores da área do Ipiranga, também ganhou vestiários adaptados para pessoas com deficiência e outras melhorias</a> 5404 </div> 5405 </div> 5406 </div> 5407 </div> 5408 </div> 5409 </div> 5410
5410<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-ea342903-e3e3-88d6-b65c-d7670578c448'); const fragmentElementId = 'fragment-ea342903-e3e3-88d6-b65c-d7670578c448'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() { 5411 // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM 5412 function formatDate(date) { 5413 const day = String(date.getDate()).padStart(2, '0'); 5414 const month = String(date.getMonth() + 1).padStart(2, '0'); 5415 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 5416 const hours = String(date.getHours()).padStart(2, '0'); 5417 const minutes = String(date.getMinutes()).padStart(2, '0'); 5418 5419 return `${day}/${month}/${year} ${hours}:${minutes}`; 5420 } 5421 5422 // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA 5423 function formatDateOnly(date) { 5424 const day = String(date.getDate()).padStart(2, '0');
5425 const month = String(date.getMonth() + 1).padStart(2, '0'); 5426 const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dÃgitos do ano 5427 5428 return `${day}/${month}/${year}`; 5429 } 5430 5431 // Função para fazer parse de diferentes formatos de data 5432 function parseDate(dateString) { 5433 if (!dateString || dateString.trim() === '') return null; 5434 5435 dateString = dateString.trim(); 5436 5437 try { 5438 // Se for timestamp em segundos 5439 if (/^\d{10}$/.test(dateString)) { 5440 return new Date(parseInt(dateString) * 1000); 5441 } 5442 5443 // Se for timestamp em milissegundos 5444 if (/^\d{13}$/.test(dateString)) { 5445 return new Date(parseInt(dateString)); 5446 } 5447 5448 // Para formato brasileiro dd/MM/yyyy (PRIORIDADE) 5449 if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) { 5450 const parts = dateString.split(/[\/\s:]/); 5451 const day = parseInt(parts[0]);
5452 const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed 5453 const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]); 5454 const hour = parts[3] ? parseInt(parts[3]) : 0; 5455 const minute = parts[4] ? parseInt(parts[4]) : 0; 5456 const second = parts[5] ? parseInt(parts[5]) : 0; 5457 5458 return new Date(year, month, day, hour, minute, second); 5459 } 5460 5461 // Para formato ISO (yyyy-MM-dd) 5462 if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) { 5463 const parts = dateString.split(/[-T\s:]/); 5464 const year = parseInt(parts[0]); 5465 const month = parseInt(parts[1]) - 1; 5466 const day = parseInt(parts[2]); 5467 const hour = parts[3] ? parseInt(parts[3]) : 0; 5468 const minute = parts[4] ? parseInt(parts[4]) : 0; 5469 const second = parts[5] ? parseInt(parts[5]) : 0; 5470 5471 return new Date(year, month, day, hour, minute, second); 5472 } 5473 5474 // Ãltimo recurso: tenta parse direto (apenas para formatos ISO válidos) 5475 if (dateString.includes('T') || dateString.includes('-')) { 5476 let parsedDate = new Date(dateString); 5477 if (!isNaN(parsedDate.getTime())) { 5478 return parsedDate; 5479 } 5480 } 5481 5482 } catch (e) { 5483 console.warn('Erro ao fazer parse da data:', dateString, e); 5484 } 5485 5486 return null; 5487 } 5488 5489 // Função principal para reduzir 3 horas das datas mapeadas 5490 function reduceDatesBy3Hours() { 5491 const dateElements = document.querySelectorAll('.sp-citcr-publish-date'); 5492 5493 dateElements.forEach(function(element) { 5494 const currentText = element.textContent.trim(); 5495 5496 // Ignora se for texto padrão ou estiver vazio 5497 if (currentText === 'Data de Publicação' || currentText === '') { 5498 return; 5499 } 5500 5501 // Verifica se já foi processado 5502 if (element.getAttribute('data-hours-reduced') === 'true') { 5503 return; 5504 } 5505 5506 // Tenta fazer parse da data mapeada 5507 const parsedDate = parseDate(currentText); 5508 5509 if (parsedDate && !isNaN(parsedDate.getTime())) { 5510 // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos) 5511 const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000)); 5512 5513 // Atualiza o elemento com a data reduzida 5514 element.textContent = formatDate(reducedDate); 5515 5516 // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima 5517 // element.textContent = formatDateOnly(reducedDate); 5518 5519 // Marca como processado para evitar reprocessamento 5520 element.setAttribute('data-hours-reduced', 'true'); 5521 } else { 5522 console.warn('Não foi possÃvel fazer parse da data:', currentText); 5523 } 5524 }); 5525 } 5526 5527 // Aguardar carregamento e processar datas 5528 setTimeout(function() { 5529 reduceDatesBy3Hours(); 5530 }, 500); 5531 5532 // Observer para detectar mudanças no DOM 5533 const observer = new MutationObserver(function(mutations) { 5534 mutations.forEach(function(mutation) { 5535 if (mutation.type === 'childList') { 5536 mutation.addedNodes.forEach(function(node) { 5537 if (node.nodeType === Node.ELEMENT_NODE) { 5538 const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])'); 5539 if (dateElements.length > 0) { 5540 setTimeout(reduceDatesBy3Hours, 100); 5541 } 5542 } 5543 }); 5544 } 5545 }); 5546 }); 5547 5548 // Observa mudanças no container principal 5549 const container = document.querySelector('.sp-citcr-section'); 5550 if (container) { 5551 observer.observe(container, { 5552 childList: true, 5553 subtree: true 5554 }); 5555 } 5556 5557 // Funcionalidade de clique nos itens de notÃcia 5558 const newsItems = document.querySelectorAll('.sp-citcr-item'); 5559
5560 newsItems.forEach(function(item) { 5561 item.addEventListener('click', function() { 5562 console.log('News item clicked'); 5563 }); 5564 5565 item.setAttribute('tabindex', '0'); 5566 item.setAttribute('role', 'article'); 5567 5568 item.addEventListener('keydown', function(e) { 5569 if (e.key === 'Enter' || e.key === ' ') { 5570 e.preventDefault(); 5571 item.click(); 5572 } 5573 }); 5574 }); 5575 5576 // Função global para reprocessar datas manualmente 5577 window.reduceDatesBy3Hours = function() { 5578 // Remove marcadores de processamento para permitir reprocessamento 5579 const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]'); 5580 dateElements.forEach(function(element) { 5581 element.removeAttribute('data-hours-reduced'); 5582 }); 5583 reduceDatesBy3Hours(); 5584 }; 5585});;</script>
5585 5586 </div> 5587 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217"> 5588 <div id="fragment-6fc23c20-c9bc-4c41-4079-7ea2967fdbd8"> 5589 <div class="py-2"></div> 5590 </div> 5591 </div> 5592 </div> 5593 </div> 5594 </div> 5595 <div> 5596 <div class="pagination-bar pb-2 pt-3"> 5597 <div class="pagination-results">Exibindo 1 - 9 de 788 resultados.</div> 5598 <ul class="pagination pagination-root"> 5599 <li class="disabled page-item"> 5600 <div class="page-link"> 5601 <svg class="lexicon-icon lexicon-icon-angle-left" role="presentation"> 5602 <use xlink:href="https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg#angle-left" /> 5603 </svg> 5604 </div> 5605 </li> 5606 <li class="active page-item"><a class="link-unstyled page-link">1</a></li> 5607 <li class="page-item"><a class="link-unstyled page-link">2</a></li> 5608 <li class="page-item"><a class="link-unstyled page-link">3</a></li> 5609 <li class="dropdown page-item"><button class="btn btn-unstyled dropdown-toggle page-link" type="button">...</button></li> 5610 <li class="page-item"><a class="link-unstyled page-link">88</a></li> 5611 <li class="page-item"><a class="link-unstyled page-link"> 5612 <svg class="lexicon-icon lexicon-icon-angle-right" role="presentation"> 5613 <use xlink:href="https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg#angle-right" /> 5614 </svg> 5615 </a></li> 5616 </ul> 5617 </div> 5618 <div id="jxxl"></div> 5619 </div> 5620 </div> 5621 </div> 5622 </div> 5623 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-879ce55c-0d52-f67e-653e-325399a2a191 " data-layout-structure-item-id="879ce55c-0d52-f67e-653e-325399a2a191"> 5624 <div id="fragment-02d24d3a-20b4-97b8-3983-045044d0de9d"> 5625 <div class="py-3"></div> 5626 </div> 5627 </div> 5628</div> 5629<div class="lfr-layout-structure-item-0e4e0286-2d3d-6105-292a-481c7b3628ac lfr-layout-structure-item-container " data-layout-structure-item-id="0e4e0286-2d3d-6105-292a-481c7b3628ac"> 5630 <div class="lfr-layout-structure-item-f63c70f8-2fda-8aa8-817c-809b3dfa0582 lfr-layout-structure-item-container container-fluid container-fluid-max-xl" data-layout-structure-item-id="f63c70f8-2fda-8aa8-817c-809b3dfa0582"> 5631 <div class="lfr-layout-structure-item-c073f31e-8df3-6785-2db6-155ced8b712d lfr-layout-structure-item-row " data-layout-structure-item-id="c073f31e-8df3-6785-2db6-155ced8b712d"> 5632 <div class="row align-items-lg-center align-items-sm-center align-items-center align-items-md-center flex-lg-row flex-sm-row flex-row flex-md-row"> 5633 <div class="col col-lg-4 col-sm-7 col-7 col-md-4 d-flex flex-column"> 5634 <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-f1af4e0e-942a-a376-58dd-f3d180ff9c38 " data-layout-structure-item-id="f1af4e0e-942a-a376-58dd-f3d180ff9c38"> 5635 <div id="fragment-99790c53-aaea-37ab-c7ad-eed939fe370a"> 5636 <div class="component-image overflow-hidden"> 5637 <a href="/home"><picture data-fileentryid="29066958"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/29066958/Thumbnail-300x300/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/29066958/Preview-1000x0/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><source media="(max-width:300px) and (min-width:300px)" srcset="/o/adaptive-media/image/29066958/Thumbnail-300x300/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><img alt="" class="w-0" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/24771855/26522825/sampanews_LOGO_final_fundo_preto.png/5ab6573f-38dc-40dc-6d3b-a6cf98372dd3?version=1.0&t=1756835438113" data-fileentryid="29066958" data-desktop-configuration="Thumbnail-300x300"></picture></a> 5638 </div> 5639 </div> 5640 </div> 5641 </div> 5642 <div class="col col-lg-8 col-sm-5 col-5 col-md-8 d-flex flex-column"> 5643 <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-ae4cf244-dac1-f2cb-bc24-fbc8b3fb3b9a " data-layout-structure-item-id="ae4cf244-dac1-f2cb-bc24-fbc8b3fb3b9a"> 5644 <div id="fragment-63bedb1d-7a2b-b2f0-a229-b5e4180a312b"> 5645 <div class="component-image overflow-hidden"> 5646 <a href="https://prefeitura.sp.gov.br/"><picture data-fileentryid="26571306"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/26571306/Thumbnail-300x300/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><source media="(max-width:171px)" srcset="/o/adaptive-media/image/26571306/Preview-1000x0/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><source media="(max-width:171px) and (min-width:171px)" srcset="/o/adaptive-media/image/26571306/Thumbnail-300x300/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><img alt="" class="w-0" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/2477185
56465/25160874/LOGO_PREFEITURA_COLOR.png/8f4791d6-b89f-0902-de12-455983038e88?version=1.0&t=1750450063978" data-fileentryid="26571306" data-desktop-configuration="Thumbnail-300x300"></picture></a> 5647 </div> 5648 </div> 5649 </div> 5650 </div> 5651 </div> 5652 </div> 5653 <div class="lfr-layout-structure-item-ce69843b-d12d-0fff-ea90-3244c32c44a6 lfr-layout-structure-item-row " data-layout-structure-item-id="ce69843b-d12d-0fff-ea90-3244c32c44a6"> 5654 <div class="row align-items-lg-start align-items-sm-start align-items-start align-items-md-start flex-lg-row flex-sm-row flex-row flex-md-row"> 5655 <div class="col col-lg-12 col-sm-12 col-12 col-md-12"> 5656 <div class="lfr-layout-structure-item-footer--copiar- lfr-layout-structure-item-4f7ef626-8090-d7c5-0a6f-e11c0b076aa1 " data-layout-structure-item-id="4f7ef626-8090-d7c5-0a6f-e11c0b076aa1"> 5657 <div id="fragment-c4bdb226-bbe5-8dc2-4a7a-d78e565f505b"> 5658 <!-- Layout em três colunas --> 5659 <div class="footer-three-columns"> 5660 <!-- Primeira coluna - Mapa do Site (Parte 1) --> 5661 <div class="footer-column"> 5662 <h3>Mapa do Site</h3> 5663 <ul> 5664 <li><a class="site-map-link" href="/home" tabindex="0" data-lfr-editable-id="home-link" data-lfr-editable-type="link"><b>Home</b></a></li> 5665 <li><a class="site-map-link" href="/noticias" tabindex="0" data-lfr-editable-id="lasted-news-link" data-lfr-editable-type="link">Ultimas Noticias</a></li> 5666 <li><a class="site-map-link" href="/web/sampa-news/animais" tabindex="0" data-lfr-editable-id="animais-link" data-lfr-editable-type="link">Animais</a></li> 5667 <li><a class="site-map-link" href="/artigos" tabindex="0" data-lfr-editable-id="artigos-link" data-lfr-editable-type="link">Artigos</a></li> 5668 <li><a class="site-map-link" href="/assistencia-social" tabindex="0" data-lfr-editable-id="assistencia-social-link" data-lfr-editable-type="link">Assistência Social</a></li> 5669 <li><a class="site-map-link" href="/cidadania" tabindex="0" data-lfr-editable-id="cidadania-link" data-lfr-editable-type="link">Cidadania</a></li> 5670 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/cultura" tabindex="0" data-lfr-editable-id="cultura-link" data-lfr-editable-type="link">Cultura</a></li> 5671 <li><a class="site-map-link" href="/economia" tabindex="0" data-lfr-editable-id="economia-link" data-lfr-editable-type="link">Economia</a></li> 5672 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/educacao" tabindex="0" data-lfr-editable-id="education-link" data-lfr-editable-type="link">Educação</a></li> 5673 <li><a class="site-map-link" href="/esporte-e-lazer" tabindex="0" data-lfr-editable-id="esporte-lazer-link" data-lfr-editable-type="link">Esporte e Lazer</a></li> 5674 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/gestao" tabindex="0" data-lfr-editable-id="gestao-link" data-lfr-editable-type="link">Gestão</a></li> 5675 <li><a class="site-map-link" href="/meio-ambiente" tabindex="0" data-lfr-editable-id="meio-ambiente-link" data-lfr-editable-type="link">Meio Ambiente</a></li> 5676 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/mobilidade" tabindex="0" data-lfr-editable-id="mobilidade-link" data-lfr-editable-type="link">Mobilidade</a></li> 5677 </ul> 5678 </div> 5679 <!-- Segunda coluna - Mapa do Site (Parte 2) --> 5680 <div class="footer-column"> 5681 <h3> </h3> 5682 <!-- Espaço para alinhamento visual --> 5683 <ul> 5684 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/habitacao" tabindex="0" data-lfr-editable-id="habitacao-link" data-lfr-editable-type="link">Habitação</a></li> 5685 <li><a class="site-map-link" href="/inclusao" tabindex="0" data-lfr-editable-id="inclusao-link" data-lfr-editable-type="link">Inclusão</a></li> 5686 <li><a class="site-map-link" href="/infraestrutura-obras" tabindex="0" data-lfr-editable-id="infraestrutura-link" data-lfr-editable-type="link">Infraestrutura</a></li> 5687 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/saude" tabindex="0" data-lfr-editable-id="saude-link" data-lfr-editable-type="link">Saúde</a></li> 5688 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/seguranca" tabindex="0" data-lfr-editable-id="seguranca-link" data-lfr-editable-type="link">Segurança</a></li> 5689 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/servicos" tabindex="0" data-lfr-editable-id="servicos-link" data-lfr-editable-type="link">Serviços</a></li> 5690 <li><a class="site-map-link" href="/tecnologia" tabindex="0" data-lfr-editable-id="tecnologia-link" data-lfr-editable-type="link">Tecnologia</a></li> 5691 <li><a class="site-map-link" href="/trabalhos" tabindex="0" data-lfr-editable-id="trabalho-link" data-lfr-editable-type="link">Trabalho</a></li> 5692 <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/turismo-e-negocios" tabindex="0" data-lfr-editable-id="turismo-negocios-link" data-lfr-editable-type="link">Turismo e Negócios</a></li> 5693 <!-- 5694 <li><a class="site-map-link" href="/web/sampa-news/urbanismo" tabindex="0" 5695 data-lfr-editable-id="urban-link" data-lfr-editable-type="link">Urbanismo</a> 5696 </li> 5697 --> 5698 <li><a class="site-map-link" href="/zeladoria" tabindex="0" data-lfr-editable-id="janitorial-link" data-lfr-editable-type="link">Zeladoria</a></li> 5699 </ul> 5700 </div> 5701 <!-- Terceira coluna - Links Ãteis --> 5702 <div class="footer-column"> 5703 <h3>Links Ãteis</h3> 5704 <ul> 5705 <li><a class="useful-link" href="http://transparencia.prefeitura.sp.gov.br/sistema-eletronico-de-informacao-ao-cidadao-e-sic/" tabindex="0" data-lfr-editable-id="acesso-informacao-l
5705ink" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Acesso à informação</a></li> 5706 <li><a class="useful-link" href="http://transparencia.prefeitura.sp.gov.br/" tabindex="0" data-lfr-editable-id="transparencia-sp-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Transparência São Paulo</a></li> 5707 <li><a class="useful-link" href="https://legislacao.prefeitura.sp.gov.br/" tabindex="0" data-lfr-editable-id="legislacao-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Legislação</a></li> 5708 <li><a class="useful-link" href="https://www.prefeitura.sp.gov.br/cidade/secretarias/ouvidoria/fale_com_a_ouvidoria/index.php?p=227268" tabindex="0" data-lfr-editable-id="ouvidoria-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Ouvidoria</a></li> 5709 <li><a class="useful-link" href="https://sp156.prefeitura.sp.gov.br/portal " tabindex="0" data-lfr-editable-id="sp156-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">SP 156</a></li> 5710 <li><a class="useful-link" href="https://diariooficial.prefeitura.sp.gov.br/md_epubli_controlador.php?acao=inicio" tabindex="0" data-lfr-editable-id="diario-oficial-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Diário Oficial</a></li> 5711 </ul> 5712 </div> 5713 </div> 5714 </div> 5715 <style> /* Layout de três colunas */ 5716 .footer-three-columns { 5717 display: flex; 5718 gap: 40px; 5719 margin-bottom: 40px; 5720 } 5721 5722 .footer-column { 5723 flex: 1; 5724 min-width: 0; 5725 /* Permite que o flex funcione corretamente */ 5726 } 5727 5728 .footer-column h3 { 5729 font-size: 18px; 5730 margin-bottom: 15px; 5731 color: #FFF; 5732 font-weight: bold; 5733 } 5734 5735 .footer-column ul { 5736 list-style: none; 5737 padding: 0; 5738 margin: 0; 5739 } 5740 5741 .footer-column ul li { 5742 margin-bottom: 10px; 5743 font-size: 14px; 5744 } 5745 5746 /* Estilos para links do mapa do site */ 5747 .site-map-link { 5748 color: #FFF; 5749 text-decoration: none; 5750 transition: color 0.2s; 5751 } 5752 5753 .site-map-link:hover { 5754 color: #0066cc; 5755 } 5756 5757 /* Estilos para links úteis */ 5758 .useful-link { 5759 color: #FFF; 5760 text-decoration: none; 5761 transition: color 0.2s; 5762 } 5763 5764 .useful-link:hover { 5765 color: #0066cc; 5766 } 5767 5768 /* Layout responsivo */ 5769 @media (max-width: 768px) { 5770 .footer-three-columns { 5771 flex-wrap: wrap; 5772 gap: 20px; 5773 } 5774 5775 .footer-column { 5776 flex: 1 1 calc(50% - 10px); /* Duas colunas por linha */ 5777 min-width: calc(50% - 10px); 5778 } 5779 5780 .footer-column:nth-child(3) { 5781 flex: 1 1 100%; /* Terceira coluna ocupa linha inteira */ 5782 min-width: 100%; 5783 } 5784 5785 .footer-column h3 { 5786 font-size: 16px; 5787 } 5788 5789 .social-media-icons { 5790 justify-content: center; 5791 } 5792 } 5793 5794 @media (max-width: 480px) { 5795 .footer-three-columns { 5796 flex-direction: column; 5797 gap: 15px; 5798 } 5799 5800 .footer-column { 5801 flex: 1 1 100%; 5802 min-width: 100%; 5803 } 5804 5805 .footer-column ul li { 5806 font-size: 13px; 5807 margin-bottom: 8px; 5808 } 5809 }</style> 5810 </div> 5811 </div> 5812 </div> 5813 </div> 5814 <div class="lfr-layout-structure-item-90db2e82-84d8-cf24-4229-41ba02937a9b lfr-layout-structure-item-row " data-layout-structure-item-id="90db2e82-84d8-cf24-4229-41ba02937a9b"> 5815 <div class="row align-items-lg-start align-items-sm-start align-items-start align-items-md-start flex-lg-row flex-sm-row flex-row flex-md-row"> 5816 <div class="col col-lg-4 col-sm-12 col-12 col-md-4"> 5817 <div class="lfr-layout-structure-item-basic-component-heading lfr-layout-structure-item-b880f6cc-95de-e23e-36ec-2c2c9a613f7b " data-layout-structure-item-id="b880f6cc-95de-e23e-36ec-2c2c9a613f7b"> 5818 <div id="fragment-3f9ab8dc-f49a-acce-158d-fce4ffbbb459"> 5819 <h5 class="component-heading mb-0 text-break" data-lfr-editable-id="element-text" data-lfr-editable-type="text">Redes Sociais</h5> 5820 </div> 5821 </div> 5822 <div class="lfr-layout-structure-item-header---social-icons lfr-layout-structure-item-a032e5b8-7c93-33cc-6f97-0dc2c85bca3d " data-layout-structure-item-id="a032e5b8-7c93-33cc-6f97-0dc2c85bca3d"> 5823 <div id="fragment-dde74449-ca08-6bd9-c477-55d211c44b04"> 5824 <div class="header-social-icons"> 5825 <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.instagram.com/prefsp"><picture data-fileentryid="26457610"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457610/Preview-1000x0/instagram-white.png?t=1750161447746"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457610/Thumbnail-300x300/instagram-white.png?t=1750161447746">
5825<img src="https://sampanews.sp.gov.br/documents/24771855/25160874/instagram-white.png/aee303e5-2ac4-2da3-251f-8a75e09dbbef?version=1.0&t=1750161447746" alt="Instagram" data-lfr-editable-id="Instagram" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457610"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.facebook.com/PrefSP"><picture data-fileentryid="26457593"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457593/Preview-1000x0/facebook-white.png?t=1750161447373"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457593/Thumbnail-300x300/facebook-white.png?t=1750161447373"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/facebook-white.png/9479f073-7635-32cd-094f-ca53f89d33fe?version=1.0&t=1750161447373" alt="Facebook" data-lfr-editable-id="Facebook" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457593"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://twitter.com/prefsp"><picture data-fileentryid="26457576"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457576/Preview-1000x0/x-white.png?t=1750161446938"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457576/Thumbnail-300x300/x-white.png?t=1750161446938"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/x-white.png/5d0e454f-1c52-3e70-e906-1c782ed7a36d?version=1.0&t=1750161446938" alt="X (Twitter)" data-lfr-editable-id="X (Twitter)" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457576"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"><picture data-fileentryid="26457559"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457559/Preview-1000x0/youtube-white.png?t=1750161446597"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457559/Thumbnail-300x300/youtube-white.png?t=1750161446597"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/youtube-white.png/a1726933-d532-ae73-9f7d-4ff01c427a67?version=1.0&t=1750161446597" alt="YouTube" data-lfr-editable-id="YouTube" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457559"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"><picture data-fileentryid="26457542"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457542/Preview-1000x0/linkedin-white.png?t=1750161446196"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457542/Thumbnail-300x300/linkedin-white.png?t=1750161446196"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/linkedin-white.png/df01a457-dfef-1749-3c33-a553bd222984?version=1.0&t=1750161446196" alt="LinkedIn" data-lfr-editable-id="LinkedIn" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457542"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.tiktok.com/@prefsp"><picture data-fileentryid="26457525"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457525/Preview-1000x0/tiktio-white.png?t=1750161445875"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457525/Thumbnail-300x300/tiktio-white.png?t=1750161445875"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/tiktio-white.png/1839d1b0-c830-d9cd-774a-491b83fcb26c?version=1.0&t=1750161445875" alt="TikTok" data-lfr-editable-id="TikTok" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457525"></picture></a> 5826 </div> 5827 </div> 5828 </div> 5829 </div> 5830 <div class="col col-lg-8 col-sm-12 col-12 col-md-8"></div> 5831 </div> 5832 </div> 5833 <div class="lfr-layout-structure-item-basic-component-paragraph lfr-layout-structure-item-2314d530-f758-24d2-1905-25772952756d " data-layout-structure-item-id="2314d530-f758-24d2-1905-25772952756d"> 5834 <div id="fragment-93b94519-10b2-f451-4153-b3e9b723053e"> 5835 <div class="clearfix component-paragraph text-break" data-lfr-editable-id="element-text" data-lfr-editable-type="rich-text">© COPYRIGHT 2025, Prefeitura Municipal de São Paulo, Viaduto do Chá, 15 - Centro - CEP: 01002-020</div> 5836 </div> 5837 <style>.component-paragraph img { 5838 max-width: 100%; 5839}</style> 5840 </div> 5841 </div> 5842</div> 5843<div class="lfr-layout-structure-item-hand-talk lfr-layout-structure-item-ef5f7ea5-1f45-7376-416f-03a425189823 " data-layout-structure-item-id="ef5f7ea5-1f45-7376-416f-03a425189823"> 5844 <div id="fragment-8ac397bc-56ea-77a6-afde-b393e328fe41"> 5845
5845<script src="https://plugin.handtalk.me/web/latest/handtalk.min.js"></script>
5845 5846 <div class="psp-handTalk-plugin alert alert-primary w-100 page-editor-only" role="alert"> 5847 <h2 class="psp-heading psp-heading--size-4 text-uppercase font-weight-bold">HAND TALK</h2> 5848 <p>Clique neste componente para ter acesso as configurações do plugin Hand Talk</p> 5849 </div> 5850 </div> 5851
5851<script type="module">const configuration = {"sideMobile":"right","side":"right","buttonColor":"a11yColorMain","highContrast":false,"mobileEnabled":true,"language":"ptBR-bzs","avatar":"HUGO","textEnabled":true,"alignAsDesktop":true,"align":"default","opacity":100,"alignMobile":"default"}; const fragmentElement = document.querySelector('#fragment-8ac397bc-56ea-77a6-afde-b393e328fe41'); const fragmentElementId = 'fragment-8ac397bc-56ea-77a6-afde-b393e328fe41'; const fragmentEntryLinkNamespace = 'fayq'; const fragmentNamespace = 'fayq'; const layoutMode = 'view';// Token estático - substitua pelo seu token real 5852const HANDTALK_TOKEN = "aa1f4871439ba18dabef482aae5fd934"; 5853 5854let ht = new HT({ 5855 //general 5856 token: HANDTALK_TOKEN, // Token agora é estático 5857 avatar: configuration.avatar, 5858 textEnabled: configuration.textEnabled, 5859 5860 //mobile 5861 mobileEnabled: configuration.mobileEnabled, 5862 mobileConfig: { 5863 align: configuration.alignAsDesktop ? configuration.align : configuration.alignMobile, 5864 side: configuration.alignAsDesktop ? configuration.side : configuration.sideMobile, 5865 opacity: configuration.opacity, 5866 highContrast: configuration.highContrast, 5867 colorButton: configuration.colorButton, 5868 }, 5869 maxTextSize: 500, 5870 //styles 5871 align: configuration.align, 5872 side: configuration.side, 5873 opacity: configuration.opacity, 5874 highContrast: configuration.highContrast, 5875 colorButton: configuration.colorButton, 5876 parentElement: document.querySelector("body") 5877}); 5878 5879if(document.querySelector(".has-edit-mode-menu")){ 5880 fragmentElement.querySelector(".psp-handTalk-plugin").classList.remove("d-none"); 5881};</script>
5881 5882</div> 5883<div class="lfr-layout-structure-item-atualiza--o-din-mica-de-cores-e-fonte lfr-layout-structure-item-7cb7f005-b2e8-496f-a9f6-a1fe16a5b4af " data-layout-structure-item-id="7cb7f005-b2e8-496f-a9f6-a1fe16a5b4af"> 5884 <div id="fragment-0879bbd8-5da9-a143-799c-a48fa4fce216"> 5885 <div></div> 5886 </div> 5887 <style>@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap'); 5888 5889body, h1, h2, h3, h4, h5, a { 5890font-family: "lora", sans-serif !important; 5891} 5892 5893p, span, strong, i, b, button, p > a { 5894font-family: "Nunito Sans", sans-serif !important; 5895} 5896 5897.logo-section span { 5898font-family: "lora", sans-serif !important; 5899}</style> 5900
5900<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-0879bbd8-5da9-a143-799c-a48fa4fce216'); const fragmentElementId = 'fragment-0879bbd8-5da9-a143-799c-a48fa4fce216'; const fragmentEntryLinkNamespace = 'rykv'; const fragmentNamespace = 'rykv'; const layoutMode = 'view';(() => { 5901 // Mapeamento de categorias e cores 5902 const colors = { 5903 animais: "#bea8c2", 5904 "meio ambiente": "#4CAF50", 5905 serviços: "#CDDC39", 5906 servicos: "#CDDC39", 5907 mobilidade: "#907895", 5908 transporte: "#907895", 5909 educação: "#A4D0D1", 5910 educacao: "#A4D0D1", 5911 "urbanismo e infraestrutura": "#795548", 5912 urbanismo: "#795548", 5913 cultura: "#BC9C87", 5914 infraestrutura: "#795548", 5915 saúde: "#5084C1", 5916 saude: "#5084C1", 5917 "assistência social": "#D0BDBE", 5918 "assistencia social": "#D0BDBE", 5919 "trabalho e tecnologia": "#03A9F4", 5920 trabalho: "#03A9F4", 5921 segurança: "#B9D4C5", 5922 seguranca: "#B9D4C5", 5923 "esportes e lazer": "#2854C5", 5924 esportes: "#2854C5", 5925 lazer: "#2854C5", 5926 cidadania: "#EAC452", 5927 habitação: "#DA954B", 5928 habitacao: "#DA954B", 5929 economia: "#78A75A", 5930 "turismo e negócios": "#00BCD4", 5931 "turismo e negocios": "#00BCD4", 5932 turismo: "#00BCD4", 5933 inclusão: "#DA954B", 5934 inclusao: "#DA954B", 5935 zeladoria: "#8D6E63", 5936 artigos: "#795548", 5937 obras: "#795548", 5938 gestão: "#982442", 5939 gestao: "#982442", 5940 "Prefeitura Presente": "#ec6608", 5941 }; 5942 5943 const selectors = { 5944 background: [ 5945 ".card-image-top-category-tag", 5946 ".card-sidebar-news-geral-text-category-tag", 5947 ".card-news-image-top-vertical-category-text", 5948 ".cil-category-text", 5949 ".sampa-podcast-category", 5950 ".text-category-tag", 5951 ".sp-citcr-category", 5952 ".sp-citcr-category-text", 5953 ".destacador-image-top-category-tag", 5954 ].join(","), 5955 5956 border: [ 5957 ".card-news-image-top-news-vertical-image", 5958 ".card-image-top-image-container", 5959 ".cil-image", 5960 ".sampa-podcast-thumbnail", 5961 ".sp-citcr-img", 5962 ".destacador-image-top-image-wrapper-home", 5963 ].join(","), 5964 5965 underline: ".card-sidebar-news-geral-title-underline", 5966 linkBefore: ".card-sidebar-news-geral-text-link", 5967 listItems: ".sp-citcr-text-summary li", 5968 }; 5969 5970 // Cache unificado 5971 const processedElements = new WeakSet(); 5972 5973 let timeoutId = null; 5974 let observer = null; 5975 let dynamicStyleSheet = null; 5976 let ruleIndex = 0; 5977 5978 // Função para criar/obter stylesheet dinâmica 5979 function getDynamicStyleSheet() { 5980 if (!dynamicStyleSheet) { 5981 const style = document.createElement("style"); 5982 style.id = "category-dynamic-styles"; 5983 document.head.appendChild(style); 5984 dynamicStyleSheet = style.sheet; 5985 } 5986 return dynamicStyleSheet; 5987 } 5988 5989 // Função para extrair a primeira categoria 5990 function getFirstCategory(text) { 5991 if (!text) return null; 5992 return text.trim().toLowerCase().split(",")[0].trim(); 5993 } 5994 5995 // Função para encontrar categoria em um elemento 5996 function findCategoryForElement(el) { 5997 let parent = el; 5998 for (let i = 0; i < 5; i++) { 5999 const categoryEl = parent.querySelector 6000 ? parent.querySelector(selectors.background) 6001 : null; 6002 if (categoryEl) { 6003 return getFirstCategory(categoryEl.textContent); 6004 } 6005 parent = parent.parentElement; 6006 if (!parent) break; 6007 } 6008 return null; 6009 } 6010 6011 // Função para aplicar cor no ::before 6012 function applyBeforeColor(el, category, prefix = "category") { 6013 const uniqueClass = `${prefix}-${category.replace( 6014 /[^a-z0-9]/g, 6015 "-" 6016 )}-${ruleIndex++}`; 6017 el.classList.add(uniqueClass); 6018 6019 const stylesheet = getDynamicStyleSheet(); 6020 const content = 6021 prefix === "category-li" ? 'content: "⢠"; margin-right: 8px;' : ""; 6022 const rule = `.${uniqueClass}::before { ${content} color: ${colors[category]} !important; }`; 6023 6024 try { 6025 stylesheet.insertRule(rule, stylesheet.cssRules.length); 6026 } catch (e) { 6027 // Silently handle errors 6028 } 6029 } 6030 6031 function applyStyles() { 6032 // Apply background colors
6033 document.querySelectorAll(selectors.background).forEach((el) => { 6034 if (processedElements.has(el)) return; 6035 6036 const category = getFirstCategory(el.textContent); 6037 if (category && colors[category]) { 6038 el.style.backgroundColor = colors[category]; 6039 el.style.color = "#000000"; 6040 processedElements.add(el); 6041 } 6042 }); 6043 6044 // Apply borders 6045 document.querySelectorAll(selectors.border).forEach((el) => { 6046 if (processedElements.has(el)) return; 6047 6048 const category = findCategoryForElement(el); 6049 if (category && colors[category]) { 6050 el.style.borderBottom = `6px solid ${colors[category]}`; 6051 processedElements.add(el); 6052 } 6053 }); 6054 6055 // Apply underline background 6056 document.querySelectorAll(selectors.underline).forEach((el) => { 6057 if (processedElements.has(el)) return; 6058 6059 const category = findCategoryForElement(el); 6060 if (category && colors[category]) { 6061 el.style.backgroundColor = colors[category]; 6062 el.style.setProperty("background-color", colors[category], "important"); 6063 processedElements.add(el); 6064 } 6065 }); 6066 6067 // Apply color to ::before of link elements 6068 document.querySelectorAll(selectors.linkBefore).forEach((el) => { 6069 if (processedElements.has(el)) return; 6070 6071 const category = findCategoryForElement(el); 6072 if (category && colors[category]) { 6073 applyBeforeColor(el, category, "category-link"); 6074 processedElements.add(el); 6075 } 6076 }); 6077 6078 // Apply color to ::before of li elements in sp-citcr-text-summary 6079 document.querySelectorAll(selectors.listItems).forEach((li) => { 6080 if (processedElements.has(li)) return; 6081 6082 const category = findCategoryForElement(li); 6083 if (category && colors[category]) { 6084 applyBeforeColor(li, category, "category-li"); 6085 processedElements.add(li); 6086 } 6087 }); 6088 } 6089 6090 // Função para limpar cache 6091 function clearCache() { 6092 processedElements.clear(); 6093 } 6094 6095 // Debounced version 6096 function debouncedApplyStyles() { 6097 if (timeoutId) clearTimeout(timeoutId); 6098 timeoutId = setTimeout(() => { 6099 clearCache(); 6100 applyStyles(); 6101 }, 150); 6102 } 6103 6104 // Inicializar observer 6105 function initObserver() { 6106 if (observer) observer.disconnect(); 6107 observer = new MutationObserver(debouncedApplyStyles); 6108 observer.observe(document.body, { 6109 childList: true, 6110 subtree: true, 6111 attributes: false, 6112 characterData: false, 6113 }); 6114 } 6115 6116 // Cleanup 6117 function cleanup() { 6118 if (timeoutId) { 6119 clearTimeout(timeoutId); 6120 timeoutId = null; 6121 } 6122 if (observer) { 6123 observer.disconnect(); 6124 observer = null; 6125 } 6126 const styleEl = document.getElementById("category-dynamic-styles"); 6127 if (styleEl) { 6128 styleEl.remove(); 6129 dynamicStyleSheet = null; 6130 } 6131 } 6132 6133 // Inicialização 6134 if (document.readyState === "loading") { 6135 document.addEventListener("DOMContentLoaded", () => { 6136 applyStyles();
6137 initObserver(); 6138 }); 6139 } else { 6140 applyStyles(); 6141 initObserver(); 6142 } 6143 6144 // Event listeners 6145 window.addEventListener("beforeunload", cleanup); 6146 window.addEventListener("popstate", cleanup); 6147 6148 document.addEventListener("visibilitychange", () => { 6149 if (document.hidden) { 6150 cleanup(); 6151 } else { 6152 initObserver(); 6153 } 6154 }); 6155 6156 // Debug function 6157 window.forceApplyStyles = () => { 6158 clearCache(); 6159 applyStyles(); 6160 }; 6161})(); 6162;</script>
6162 6163</div> 6164 6165 6166 6167 6168 </div> 6169 6170 6171 6172 6173<form action="#" aria-hidden="true" class="hide" id="hrefFm" method="post" name="hrefFm"><span></span><button hidden type="submit">Oculto</button></form> 6174 6175 6176 </div> 6177 6178 </div> 6179</div> 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303
6304<script type="text/javascript"> 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317</script>
6317<script> 6318 6319</script>
6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361
6361<script type="module"> 6362 import {Session} from '/o/frontend-js-web/__liferay__/legacy.js'; 6363 6364 if (Liferay.Session && Liferay.Session.destructor) { 6365 Liferay.Session.destructor(); 6366 } 6367 6368 Liferay.Session = new Session( 6369 { 6370 autoExtend: true, 6371 redirectOnExpire: false, 6372 redirectUrl: 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fweb\x2fprefeitura-de-sao-paulo\x2f', 6373 rememberMe: false, 6374 sessionLength: 900, 6375 sessionTimeoutOffset: 250, 6376 warningLength: 60 6377 }) 6378 </script>
6378 6379 6380
6381<script type="text/javascript"> 6382 6383 window.dataLayer = window.dataLayer || []; 6384 function gtag(){dataLayer.push(arguments);} 6385 gtag('js', new Date()); 6386 gtag('config', 'GFQF2C97ZC'); 6387 6388 6389 6390 6391 6392(function() {var $ = AUI.$;var _ = AUI._; 6393 var onShare = function (data) { 6394 if (window.Analytics) { 6395 Analytics.send('shared', 'SocialBookmarks', { 6396 className: data.className, 6397 classPK: data.classPK, 6398 type: data.type, 6399 url: data.url, 6400 }); 6401 } 6402 }; 6403 6404 var onDestroyPortlet = function () { 6405 Liferay.detach('socialBookmarks:share', onShare); 6406 Liferay.detach('destroyPortlet', onDestroyPortlet); 6407 }; 6408 6409 Liferay.on('socialBookmarks:share', onShare); 6410 Liferay.on('destroyPortlet', onDestroyPortlet); 6411})(); 6412(function() {var $ = AUI.$;var _ = AUI._; 6413 var onVote = function (event) { 6414 if (window.Analytics) { 6415 let title = event.contentTitle; 6416 6417 if (!title) { 6418 const dmNode = document.querySelector( 6419 '[data-analytics-file-entry-id="' + event.classPK + '"]' 6420 ); 6421 6422 if (dmNode) { 6423 title = dmNode.dataset.analyticsFileEntryTitle; 6424 } 6425 } 6426 6427 Analytics.send('VOTE', 'Ratings', { 6428 className: event.className, 6429 classPK: event.classPK, 6430 externalReferenceCode: event.externalReferenceCode, 6431 ratingType: event.ratingType, 6432 score: event.score, 6433 title, 6434 }); 6435 } 6436 }; 6437 6438 var onDestroyPortlet = function () { 6439 Liferay.detach('ratings:vote', onVote); 6440 Liferay.detach('destroyPortlet', onDestroyPortlet); 6441 }; 6442 6443 Liferay.on('ratings:vote', onVote); 6444 Liferay.on('destroyPortlet', onDestroyPortlet); 6445})(); 6446(function() {var $ = AUI.$;var _ = AUI._; 6447 var onDestroyPortlet = function () { 6448 Liferay.detach('messagePosted', onMessagePosted); 6449 Liferay.detach('destroyPortlet', onDestroyPortlet); 6450 }; 6451 6452 Liferay.on('destroyPortlet', onDestroyPortlet); 6453 6454 var onMessagePosted = function (event) { 6455 if (window.Analytics) { 6456 const eventProperties = { 6457 className: event.className, 6458 classPK: event.classPK, 6459 commentId: event.commentId, 6460 externalReferenceCode: event.externalReferenceCode, 6461 text: event.text, 6462 }; 6463 6464 const blogNode = document.querySelector( 6465 '[data-analytics-asset-id="' + event.classPK + '"]' 6466 ); 6467 6468 const dmNode = document.querySelector( 6469 '[data-analytics-file-entry-id="' + event.classPK + '"]' 6470 ); 6471 6472 if (blogNode) { 6473 eventProperties.title = blogNode.dataset.analyticsAssetTitle; 6474 } 6475 else if (dmNode) { 6476 eventProperties.title = dmNode.dataset.analyticsFileEntryTitle; 6477 } 6478 6479 Analytics.send('posted', 'Comment', eventProperties); 6480 } 6481 }; 6482 6483 Liferay.on('messagePosted', onMessagePosted); 6484})(); 6485 6486 function getValueByAttribute(node, attr) { 6487 return ( 6488 node.dataset[attr] || 6489 (node.parentElement && node.parentElement.dataset[attr]) 6490 ); 6491 } 6492 6493 function sendDocumentDownloadedAnalyticsEvent(anchor) { 6494 var fileEntryId = getValueByAttribute( 6495 anchor, 6496 'analyticsFileEntryId' 6497 ); 6498 var title = getValueByAttribute( 6499 anchor, 6500 'analyticsFileEntryTitle' 6501 ); 6502 var version = getValueByAttribute( 6503 anchor, 6504 'analyticsFileEntryVersion' 6505 ); 6506 var externalReferenceCode = getValueByAttribute( 6507 anchor, 6508 'analyticsExternalReferenceCode' 6509 ); 6510 6511 if (fileEntryId) { 6512 Analytics.send('documentDownloaded', 'Document', { 6513 externalReferenceCode, 6514 fileEntryId, 6515 groupId: themeDisplay.getScopeGroupId(), 6516 preview: 6517 !!window._com_liferay_document_library_analytics_isViewFileEntry, 6518 title, 6519 version, 6520 }); 6521 } 6522 } 6523 6524 function handleDownloadClick(event) { 6525 if (window.Analytics) { 6526 if (event.target.nodeName.toLowerCase() === 'a') { 6527 sendDocumentDownloadedAnalyticsEvent( 6528 event.target 6529 ); 6530 } 6531 else if ( 6532 event.target.parentNode && 6533 event.target.parentNode.nodeName.toLowerCase() === 'a' 6534 ) { 6535 sendDocumentDownloadedAnalyticsEvent( 6536 event.target.parentNode 6537 ); 6538 } 6539 else { 6540 var target = event.target; 6541 var matchTextContent = 6542 target.textContent && 6543 target.textContent.toLowerCase() === 6544 'baixar'; 6545 var matchTitle = 6546 target.title && target.title.toLowerCase() === 'download'; 6547 var matchAction = target.action === 'download'; 6548 var matchLexiconIcon = !!target.querySelector( 6549 '.lexicon-icon-download' 6550 ); 6551 var matchLexiconClassName = target.classList.contains( 6552 'lexicon-icon-download' 6553 ); 6554 var matchParentTitle = 6555 target.parentNode && 6556 target.parentNode.title && 6557 target.parentNode.title.toLowerCase() === 'download'; 6558 var matchParentLexiconClassName = 6559 target.parentNode && 6560 target.parentNode.classList.contains('lexicon-icon-download'); 6561 6562 if ( 6563 matchTextContent || 6564 matchTitle || 6565 matchParentTitle || 6566 matchAction || 6567 matchLexiconIcon || 6568 matchLexiconClassName || 6569 matchParentLexiconClassName 6570 ) { 6571 var selectedFiles = document.querySelectorAll( 6572 '.form .custom-control-input:checked' 6573 ); 6574
6575 selectedFiles.forEach(({value}) => { 6576 var selectedFile = document.querySelector( 6577 '[data-analytics-file-entry-id="' + value + '"]' 6578 ); 6579 6580 sendDocumentDownloadedAnalyticsEvent( 6581 selectedFile 6582 ); 6583 }); 6584 } 6585 } 6586 } 6587 } 6588 6589 Liferay.once('destroyPortlet', () => { 6590 document.body.removeEventListener( 6591 'click', 6592 handleDownloadClick 6593 ); 6594 }); 6595 6596 Liferay.once('portletReady', () => { 6597 document.body.addEventListener( 6598 'click', 6599 handleDownloadClick 6600 ); 6601 }); 6602 6603 6604 if (window.svg4everybody && Liferay.Data.ICONS_INLINE_SVG) { 6605 svg4everybody( 6606 { 6607 polyfill: true, 6608 validate: function (src, svg, use) { 6609 return !src || !src.startsWith('#'); 6610 } 6611 } 6612 ); 6613 } 6614 6615(function() {var $ = AUI.$;var _ = AUI._; 6616 Liferay.Util.delegate( 6617 document, 6618 'focusin', 6619 '.portlet', 6620 function(event) { 6621 event.delegateTarget.closest('.portlet').classList.add('open'); 6622 } 6623 ); 6624 6625 Liferay.Util.delegate( 6626 document, 6627 'focusout', 6628 '.portlet', 6629 function(event) { 6630 event.delegateTarget.closest('.portlet').classList.remove('open'); 6631 } 6632 ); 6633})(); 6634 6635 // <![CDATA[ 6636 6637 6638 6639 Liferay.currentURL = '\x2fnoticias'; 6640 Liferay.currentURLEncoded = '\x252Fnoticias'; 6641 6642 // ]]> 6643 6644 6645 6646 Liferay.Portlet.register('com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck'); 6647 6648 6649 Liferay.Portlet.onLoad( 6650 { 6651 canEditTitle: false, 6652 columnPos: 0, 6653 isAjaxable: true, 6654 isStatic: 'end', 6655 namespacedId: 'p_p_id_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_', 6656 portletId: 'com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck', 6657 refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d24592\x26p_p_id\x3dcom_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Fnoticias', 6658 refreshURLData: {} 6659 } 6660 ); 6661 6662 6663</script>
6663<script type="module"> 6664import {InfoItemActionHandler as ComponentModule} from '/o/layout-taglib/__liferay__/render.js'; 6665import {PaginationBar as componentModule} from '/o/frontend-taglib-clay/__liferay__/index.js'; 6666import {NumericCollectionPaginationPropsTransformer as propsTransformer} from '/o/layout-taglib/__liferay__/render.js'; 6667import {render} from '/o/portal-template-react-renderer-impl/__liferay__/index.js'; 6668AUI().use( 6669 'liferay-menu', 6670function(A) { 6671{ 6672render(componentModule, propsTransformer({"activeDelta":9,"totalItems":788,"componentId":null,"activePage":1,"hasBodyContent":false,"additionalProps":{"collectionId":"2b196b45-a941-1fe2-f879-a1eb3a1dd39a"},"locale":"{\"country\": \"BR\", \"displayCountry\": \"Brazil\", \"displayLanguage\": \"Portuguese\", \"displayName\": \"Portuguese (Brazil)\", \"displayScript\": \"\", \"displayVariant\": \"\", \"extensionKeys\":[],\"ISO3Country\": \"BRA\", \"ISO3Language\": \"por\", \"language\": \"pt\", \"script\": \"\", \"unicodeLocaleAttributes\":[], \"unicodeLocaleKeys\":[], \"variant\": \"\"}","labels":{"perPageItems":"{0} Itens","selectPerPageItems":"{0} Itens","paginationResults":"Exibindo {0} - {1} de {2} resultados."},"disabledPages":null,"cssClass":"pb-2 pt-3","portletId":null,"showDeltasDropDown":false,"id":null,"deltas":[{"label":10},{"label":20},{"label":30},{"label":50}],"ellipsisBuffer":2}), 'jxxl'); 6673} 6674{ 6675Liferay.component('infoItemActionComponent', new ComponentModule({"executeInfoItemActionURL":"https:\/\/sampanews.sp.gov.br\/c\/portal\/execute_info_item_action?p_l_mode=view&plid=24592","namespace":"","spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg"}), { destroyOnNavigate: true, portletId: ''}); 6676} 6677(function() { 6678var $ = AUI.$;var _ = AUI._; 6679 new Liferay.Menu(); 6680 6681 var liferayNotices = Liferay.Data.notices; 6682 6683 for (var i = 0; i < liferayNotices.length; i++) { 6684 Liferay.Util.openToast(liferayNotices[i]); 6685 } 6686 6687})(); 6688}); 6689 6690</script>
6690 6691 6692 6693 6694 6695 6696 6697 6698 6699
6700<script src="/o/dialect-theme/js/main.(Dqv62sm20Lg).js" type="text/javascript"></script>
6700 6701 6702 6703 6704
6705<script type="module"> 6706import {main} from '/o/frontend-js-tooltip-support-web/__liferay__/index.js'; 6707{ 6708main(); 6709} 6710 6711</script>
6711<script type="module"> 6712import {main} from '/o/frontend-js-bootstrap-support-web/__liferay__/index.js'; 6713{ 6714main(); 6715} 6716 6717</script>
6717<script type="text/javascript"> 6718Liferay.CustomDialogs = {enabled: false}; 6719 6720</script>
6720<script> 6721 6722</script>
6722<script type="module"> 6723import {runThirdPartyCookiesInterval} from '/o/cookies-banner-web/__liferay__/index.js'; 6724{ 6725runThirdPartyCookiesInterval(); 6726} 6727 6728</script>
6728 6729 6730 6731 6732 6733 6734 6735 6736<div aria-label="banner cookies" class="cookies-banner cookies-banner-bottom" role="dialog"> 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 <div class="portlet-boundary portlet-boundary_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_ portlet-static portlet-static-end portlet-borderless portlet-cookies-banner " id="p_p_id_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_"> 6810 <span id="p_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet"></span> 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844<div class="container-fluid container-fluid-max-xl container-view"> 6845 <div class="row"> 6846 <div class="autofit-row autofit-padded-no-gutters autofit-row-center autofit-float-sm-down px-2 px-md-0"> 6847 <div class="autofit-col autofit-col-expand"> 6848 <p class="mb-2 text-5 text-weight-semi-bold"> 6849 A Prefeitura de São Paulo valoriza sua privacidade! 6850 </p> 6851 6852 <p class="mb-0"> 6853 Em nosso site, utilizamos cookies, que são arquivos salvos no seu computador para auxiliar a coletar informações sobre suas preferências e sobre outras páginas da internet visitadas por você a fim de otimizar sua experiência de navegação em nosso site, apresentando conteúdos personalizados. Ao selecionar "Aceitar todos", você consente com a utilização de cookies. 6854 6855 <a class="" href="https://prefeitura.sp.gov.br/web/controladoria_geral/w/acesso-%C3%A0-prote%C3%A7%C3%A3o-de-dados-pessoais" >Saiba mais</a> 6856 </p> 6857 </div> 6858 6859 <div class="autofit-col"> 6860 <button class="btn btn-sm btn-link" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_configurationButton" type="button" >Configuração</button> 6861 </div> 6862 6863 <div class="autofit-col"> 6864 <button class="btn btn-sm btn-secondary" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_acceptAllButton" type="button" >Aceitar tudo</button> 6865 </div> 6866 6867 6868 <div class="autofit-col"> 6869 <button class="btn btn-sm btn-secondary" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_declineAllButton" type="button" >Recusar tudo</button> 6870 </div> 6871 6872 </div> 6873 </div> 6874</div> 6875
6876<script type="module"> 6877import {CookiesBanner as ComponentModule} from '/o/cookies-banner-web/__liferay__/index.js'; 6878{ 6879Liferay.component('CookiesBanner', new ComponentModule({"configurationURL":"https:\/\/sampanews.sp.gov.br\/noticias?p_p_id=com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet&p_p_lifecycle=0&p_p_state=pop_up&_com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet_mvcPath=%2Fcookies_banner_configuration%2Fview.jsp&p_p_auth=DEj90x1c","consentRenewalPeriod":12,"optionalConsentCookieTypeNames":["CONSENT_TYPE_FUNCTIONAL","CONSENT_TYPE_PERFORMANCE","CONSENT_TYPE_PERSONALIZATION"],"spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg","configurationNamespace":"com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet","modifiedDate":"1789563948751","namespace":"_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_","requiredConsentCookieTypeNames":["CONSENT_TYPE_NECESSARY"],"includeDeclineAllButton":true,"title":"Configuração de cookie"}), { destroyOnNavigate: true, portletId: 'com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet'}); 6880} 6881 6882</script>
6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 </div> 6893 6894 6895 6896 6897 6898 6899 6900</div>
6900<script data-senna-track="temporary" type="text/javascript" src="https://plugin.handtalk.me/web/latest/handtalk.min.js"></script>
6900<script data-senna-track="temporary" type="text/javascript" src="/o/psp-js/main.js"></script>
6900 6901</body> 6902 6903</html> 6904 6905 6906
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.