PageSourceSearch

https://globaladvertisingnews.com/js/utils/searchFilterUtils.js?v9e91e12689728780f01d6dd9a70eb5c9bae56d64

js globaladvertisingnews.com collected 2026-09-26 09:18:57 UTC 1,411 bytes, 36 lines download raw bytes

1export const COOKIE_NAME = 'adv-search-filters';
2export const SHOW_SPINNER_ACTION = 'show-spinner';
3export const VALID_TYPES = new Set(['news', 'agp_style_article', 'press_release']);
4export const DEFAULTS = {
5  types: [],
6  scope: 'network',
7  searchIn: 'all',
8  dateMode: 'duration',
9  duration: '',
10  dateFrom: '',
11  dateTo: '',
12  sortBy: 'relevance',
13};
14
15export function readFilterCookie() {
16  const cookie = document.cookie.split(';').find(entry => entry.trim().startsWith(`${COOKIE_NAME}=`));
17  if (!cookie) return null;
18  try {
19    return JSON.parse(decodeURIComponent(cookie.trim().slice(COOKIE_NAME.length + 1)));
20  } catch {
21    return null;
22  }
23}
24
25export function buildFilterParams(filters) {
26  const params = new URLSearchParams();
27  const types = (filters.types && filters.types.length > 0) ? filters.types : [...VALID_TYPES];
28  params.set('type', types.join(','));
29  if (filters.dateMode === 'duration' && filters.duration) params.set('duration', filters.duration);
30  if (filters.dateMode === 'custom' && filters.dateFrom) params.set('date_from', filters.dateFrom);
31  if (filters.dateMode === 'custom' && filters.dateTo) params.set('date_to', filters.dateTo);
32  if (filters.scope && filters.scope !== DEFAULTS.scope) params.set('scope', filters.scope);
33  if (filters.searchIn) params.set('search_in', filters.searchIn);
34  if (filters.sortBy) params.set('sort', filters.sortBy);
35  return params;
36}

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.