Snippets Collections
{'envs': [{'type': 'encrypted', 'value': 'Na1IRD7uhchPTvv3Io4QaJmef0GiPPkYS/j+CUSGXsY=', 'target': ['production'], 'configurationId': None, 'comment': '', 'id': 'GUetd8WLeysIWAZN', 'key': 'TEST3', 'createdAt': 1721114058202, 'updatedAt': 1721114058202, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'vsmValue': 'eyJ2IjoidjIiLCJjIjoiN0tpWkQrSEJGM2V3ZE9hK0RIUDYrZmpqOW5SZ0hsQzg5NUVEWm00Wm9NUmRrektRaVVUc25tYWFPN1VNSjFQN28vbmVLRTRoWWlZUWlXaDFXVzdyc2hNNlhGaDE4Z2ZCa1d1QzdRPT0iLCJrIjpbMTg0LDEsMiwzLDAsMTIwLDExNSwxNjMsMTYxLDI4LDE3NiwxNDgsOTksMTY1LDI0NiwyMjcsMjQ0LDIzMyw0NywxNTMsNjMsOTQsMTM5LDEsMjQzLDEwLDMwLDgxLDE0NSw2Myw1OSwxOTMsMzQsMTA5LDE1OCw4LDczLDExNywxLDM0LDEyMSwxNDYsMTE1LDc0LDc4LDE0NywxMzksMTQ0LDE0NywyMjUsMzEsMjA2LDE2MywyMzMsMTk2LDAsMCwwLDEyNiw0OCwxMjQsNiw5LDQyLDEzNCw3MiwxMzQsMjQ3LDEzLDEsNyw2LDE2MCwxMTEsNDgsMTA5LDIsMSwwLDQ4LDEwNCw2LDksNDIsMTM0LDcyLDEzNCwyNDcsMTMsMSw3LDEsNDgsMzAsNiw5LDk2LDEzNCw3MiwxLDEwMSwzLDQsMSw0Niw0OCwxNyw0LDEyLDE4OSwxMDQsMjM2LDEyMiwxNDUsMyw4LDE5MSwzNywyNywyNywyMjQsMiwxLDE2LDEyOCw1OSwyNTEsMjEwLDIyMCw3Niw2NiwxMyw4MywxNTgsMjE1LDE0OSw2OSwxNTcsOTAsMTM5LDExLDQwLDI0NSwxNjMsMTIzLDExNywxMzIsNzIsNTMsNjUsMTA3LDIyLDEyNywxNSwyMTgsMjI4LDk1LDE3MSwxOTYsNzksMjA3LDIxLDExMSwxNzQsMjIxLDE5MiwxMDEsNDAsMjQwLDEzOCwxMzgsMjUsMTczLDE3MSwyMywxOTUsOTIsMTYsMSw2Miw3MCwxNDcsMTgzLDIwNiwxMzddfQ==', 'decrypted': False, 'lastEditedByDisplayName': 'Chiranjeevi Tirunagari'}, {'type': 'encrypted', 'value': '8uTSK+Bz1Y1VbOCgq92DI0kQ92nrR3GClP52bULsgnY=', 'target': ['development', 'preview'], 'configurationId': None, 'comment': '', 'id': 'HCtPog8aPyhaWhSw', 'key': 'TEST3', 'createdAt': 1721114049773, 'updatedAt': 1721114049773, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'vsmValue': 'eyJ2IjoidjIiLCJjIjoiUWZEQjdzQXU3ME9aakV5aW5NWlJCNFdZc3BDSjZ6Q3VlUHUyRXRCTnVKdEJMTTdMcEdaTCtiYWNhUGhzWGNjSEovR1BTRElUSmI0aHlDMXVzNUROcUI2YzZwUCswWGx2T3F2KzJ3PT0iLCJrIjpbMTg0LDEsMiwzLDAsMTIwLDExNSwxNjMsMTYxLDI4LDE3NiwxNDgsOTksMTY1LDI0NiwyMjcsMjQ0LDIzMyw0NywxNTMsNjMsOTQsMTM5LDEsMjQzLDEwLDMwLDgxLDE0NSw2Myw1OSwxOTMsMzQsMTA5LDE1OCw4LDczLDExNywxLDM0LDEyMSwxNDYsMTE1LDc0LDc4LDE0NywxMzksMTQ0LDE0NywyMjUsMzEsMjA2LDE2MywyMzMsMTk2LDAsMCwwLDEyNiw0OCwxMjQsNiw5LDQyLDEzNCw3MiwxMzQsMjQ3LDEzLDEsNyw2LDE2MCwxMTEsNDgsMTA5LDIsMSwwLDQ4LDEwNCw2LDksNDIsMTM0LDcyLDEzNCwyNDcsMTMsMSw3LDEsNDgsMzAsNiw5LDk2LDEzNCw3MiwxLDEwMSwzLDQsMSw0Niw0OCwxNyw0LDEyLDE4OSwxMDQsMjM2LDEyMiwxNDUsMyw4LDE5MSwzNywyNywyNywyMjQsMiwxLDE2LDEyOCw1OSwyNTEsMjEwLDIyMCw3Niw2NiwxMyw4MywxNTgsMjE1LDE0OSw2OSwxNTcsOTAsMTM5LDExLDQwLDI0NSwxNjMsMTIzLDExNywxMzIsNzIsNTMsNjUsMTA3LDIyLDEyNywxNSwyMTgsMjI4LDk1LDE3MSwxOTYsNzksMjA3LDIxLDExMSwxNzQsMjIxLDE5MiwxMDEsNDAsMjQwLDEzOCwxMzgsMjUsMTczLDE3MSwyMywxOTUsOTIsMTYsMSw2Miw3MCwxNDcsMTgzLDIwNiwxMzddfQ==', 'decrypted': False, 'lastEditedByDisplayName': 'Chiranjeevi Tirunagari'}, {'type': 'encrypted', 'value': 'VthAYNl9F6jelOiJ+QpYjZVNn4cT2QjAsr/9jsnUfao=', 'target': ['development', 'preview', 'production'], 'configurationId': None, 'id': '9KaKpHEVEIQxqT5U', 'key': 'TEST2', 'createdAt': 1721114034269, 'updatedAt': 1721114034269, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'vsmValue': 'eyJ2IjoidjIiLCJjIjoibE9tMnZpay9POTAwRXdaK1pYdFlVWUlCeVhnVDBhSlZZZkIySnJyRTNmall1b0JzNVlLTHcxYlJFNTRleHZTcVlDdkVVUkgzQzUxMExCekhaTnBncHFhS1dtdnRnUXJqZ2JXRHpHdDFWaWM9IiwiayI6WzE4NCwxLDIsMywwLDEyMCwxMTUsMTYzLDE2MSwyOCwxNzYsMTQ4LDk5LDE2NSwyNDYsMjI3LDI0NCwyMzMsNDcsMTUzLDYzLDk0LDEzOSwxLDI0MywxMCwzMCw4MSwxNDUsNjMsNTksMTkzLDM0LDEwOSwxNTgsOCw3MywxMTcsMSw3LDU4LDExNiwxMTIsMTA5LDgsMjIsMTYxLDIwNCwyMjksMjAwLDE3MywxNjQsMTUzLDcyLDM0LDAsMCwwLDEyNiw0OCwxMjQsNiw5LDQyLDEzNCw3MiwxMzQsMjQ3LDEzLDEsNyw2LDE2MCwxMTEsNDgsMTA5LDIsMSwwLDQ4LDEwNCw2LDksNDIsMTM0LDcyLDEzNCwyNDcsMTMsMSw3LDEsNDgsMzAsNiw5LDk2LDEzNCw3MiwxLDEwMSwzLDQsMSw0Niw0OCwxNyw0LDEyLDEwMSwyMDYsMTU1LDkxLDg2LDQ0LDQzLDk4LDEwNSwyMTIsMjMzLDI1MCwyLDEsMTYsMTI4LDU5LDEzNiwzMywyMCwxMzEsMTg1LDE1Niw4MSwzMSwxLDI0MSw1MSwxNTIsOTMsMjQsMzUsMCwyMDksMjUzLDYwLDEwNywxMjEsOCwzMCwxNjAsNzIsMTQ5LDIxMSwxOTEsMjI1LDEyNCwxNjIsOCwxOCw0MSwyMzcsODEsODcsNjksMCwxNTksMTUzLDEwLDE3NSwyMjksMjcsMTYzLDIsMTk1LDEwNiw5MiwxNTUsMjA1LDgxLDEzMiwxOTcsMzAsMjMyLDY0LDE0NV19', 'decrypted': False, 'lastEditedByDisplayName': 'Chiranjeevi Tirunagari'}, {'type': 'encrypted', 'value': 'ZmSwfuTbZ4MRBTrCUTuLyDS9SXlSj5qvkCoujMAJyQ4=', 'target': ['development', 'preview', 'production'], 'configurationId': None, 'comment': '', 'id': 'UtjkbLwia47Ac1vr', 'key': 'TEST1', 'createdAt': 1721114034267, 'updatedAt': 1721114034267, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'vsmValue': 'eyJ2IjoidjIiLCJjIjoiUXNBM3FHUkJqS014blRTcEZVdGZwVGdXSU0yZ210SWxnd0d4QmZURzFjZFZvdEREK0Z3anVYc3pwYTBrdEhURUVrN2ZUcVBGb2RrbG1WbWV2bEZpdjJZaUFncHlxQUFZMkVTOUFibW9sMFU9IiwiayI6WzE4NCwxLDIsMywwLDEyMCwxMTUsMTYzLDE2MSwyOCwxNzYsMTQ4LDk5LDE2NSwyNDYsMjI3LDI0NCwyMzMsNDcsMTUzLDYzLDk0LDEzOSwxLDI0MywxMCwzMCw4MSwxNDUsNjMsNTksMTkzLDM0LDEwOSwxNTgsOCw3MywxMTcsMSwyMDMsMTk5LDIwOCwxNzksMTQ4LDE1NiwxNDQsMTUxLDcxLDkxLDEzMCwxNTcsMjYsMTUwLDY3LDE2OSwwLDAsMCwxMjYsNDgsMTI0LDYsOSw0MiwxMzQsNzIsMTM0LDI0NywxMywxLDcsNiwxNjAsMTExLDQ4LDEwOSwyLDEsMCw0OCwxMDQsNiw5LDQyLDEzNCw3MiwxMzQsMjQ3LDEzLDEsNywxLDQ4LDMwLDYsOSw5NiwxMzQsNzIsMSwxMDEsMyw0LDEsNDYsNDgsMTcsNCwxMiwxNywxNTYsMjE3LDIxMyw1Miw0MCw1MSwyMTgsMTQ0LDU0LDQyLDI0NSwyLDEsMTYsMTI4LDU5LDIwNSwxOTUsMTQzLDExOCwyMTksMjAzLDE3NiwxNywxMDIsODIsNjcsMzYsODMsMTk5LDE4MSw3MSwxNzMsNjMsNTksMTI5LDE5MCw3Niw2MywxODMsMTgzLDIwMiwyNywxNDgsNDAsMTk0LDE4OSwyNDEsMTcsNSw1MywyMywxMzMsMTYyLDEyMiw2Myw1MSw1NywyMzYsMTg3LDIwMCw5NiwxOSwyNDksMjI0LDIzMiw5OSwxNzMsMjQ1LDUwLDI1NCwxMSwxNzYsMjA5LDE3MF19', 'decrypted': False, 'lastEditedByDisplayName': 'Chiranjeevi Tirunagari'}]}
{'type': 'encrypted', 'value': 'third', 'target': ['production'], 'configurationId': None, 'comment': '', 'id': 'KJhnBWOrfs34dU2Q', 'key': 'TEST3', 'createdAt': 1721122368822, 'updatedAt': 1721122368822, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'decrypted': True}
{'type': 'encrypted', 'value': 'second', 'target': ['development', 'preview', 'production'], 'configurationId': None, 'id': 'DUF1G3ZywlIC9bXx', 'key': 'TEST2', 'createdAt': 1721122359445, 'updatedAt': 1721122359445, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'decrypted': True}
{'type': 'encrypted', 'value': 'first', 'target': ['development', 'preview', 'production'], 'configurationId': None, 'comment': '', 'id': 'IMm31XhwQfnXFs2o', 'key': 'TEST1', 'createdAt': 1721122359442, 'updatedAt': 1721122359442, 'createdBy': 'XzsetEdmywh8V3I10cECAA7j', 'updatedBy': None, 'decrypted': True}
import os
import requests
import json
from dotenv import load_dotenv

# Load env from .env file.
load_dotenv()

'''
Step 1: Get all env variables.
'''

url_to_get_all_envs = (
    f"https://api.vercel.com/v9/projects/"
    f"{os.getenv('PROJECT_ID')}/env"
)
payload = {
    'decrypt': 'true',
    'slug': os.getenv('SLUG'),
    'source': 'vercel-cli:pull',
    'teamId': os.getenv('TEAM_ID')
}
headers = {
    'Authorization': f"Bearer {os.getenv('VERCEL_TOKEN')}",
    'Content-Type': 'application/json'
}

all_env_vars = requests.get(
    url_to_get_all_envs,
    params=payload,
    headers=headers
)

# Print the response in a safe environment if required.
all_env_vars = all_env_vars.json()['envs']


# Delete items which are not required for update endpoint from payload.
del payload['decrypt']
del payload['source']


for env in all_env_vars:
    # Update only if production is one of the targets of the variable.
    if 'production' in env['target'] and env['type'] != 'sensitive':

        '''
        Check if target array has development in it.
        Because development target cant have sensitive variables.
        '''

        targets = env['target'][:]
        if 'development' in targets:
            targets.remove('development')

        '''
        Step 2: Get decrypted value of each env variable.
        '''

        url_to_get_or_update_env = (
            f"https://api.vercel.com/v9/projects/"
            f"{os.getenv('PROJECT_ID')}/env/{env['id']}"
        )
        decrypted_env_response = requests.get(
            url_to_get_or_update_env,
            params=payload,
            headers=headers
        )
        decrypted_env = decrypted_env_response.json()
        # Print the response in a safe environment if required.

        '''
        Step 3: Update all variables to be sensitive if it has production
        target and also remove development target if exists.
        '''

        data = {
            'key': env['key'],
            'target': targets,
            'type': 'sensitive',
            'value': decrypted_env['value']
        }
        data = json.dumps(data)
        response = requests.patch(
            url_to_get_or_update_env,
            params=payload,
            headers=headers,
            data=data
        )
        # Print the response in a safe environment if required.

        '''
        Step 4: Recreate the variable with development target
        if it existed before updation in previous step.
        '''

        if 'development' in env['target']:
            data = {
                'key': env['key'],
                'target': ['development'],
                'type': 'encrypted',
                'value': decrypted_env['value']
            }

            data = json.dumps(data)
            url_to_create_env = (
                f"https://api.vercel.com/v9/projects/"
                f"{os.getenv('PROJECT_ID')}/env"
            )
            response = requests.post(
                url_to_create_env,
                params=payload,
                headers=headers,
                data=data
            )

            # Print the response in a safe environment if required.
for env in all_env_vars:
    # Update only if production is one of the targets of the variable.
    if 'production' in env['target'] and env['type'] != 'sensitive':

        '''
        Check if target array has development in it.
        Because development target cant have sensitive variables.
        '''

        targets = env['target'][:]
        if 'development' in targets:
            targets.remove('development')

        '''
        Step 2: Get decrypted value of each env variable.
        '''

        url_to_get_or_update_env = f"https://api.vercel.com/v9/projects/{os.getenv('PROJECT_ID')}/env/{env['id']}"
        decrypted_env_response = requests.get(
            url_to_get_or_update_env,
            params=payload,
            headers=headers
        )
        decrypted_env = decrypted_env_response.json()
        # Print the response in a safe environment if required.

        '''
        Step 3: Update all variables to be sensitive if it has production
        target and also remove development target if exists.
        '''

        data = {
            'key': env['key'],
            'target': targets,
            'type': 'sensitive',
            'value': decrypted_env['value']
        }
        data = json.dumps(data)
        response = requests.patch(
            url_to_get_or_update_env,
            params=payload,
            headers=headers,
            data=data
        )
        # Print the response in a safe environment if required.

        '''
        Step 4: Recreate the variable with development target
        if it existed before updation in previous step.
        '''

        if 'development' in env['target']:
            data = {
                'key': env['key'],
                'target': ['development'],
                'type': 'encrypted',
                'value': decrypted_env['value']
            }

            data = json.dumps(data)
            url_to_create_env = f"https://api.vercel.com/v9/projects/{os.getenv('PROJECT_ID')}/env"
            response = requests.post(
                url_to_create_env,
                params=payload,
                headers=headers,
                data=data
            )

            # Print the response in a safe environment if required.
for env in all_env_vars:
    # Update only if production is one of the targets of the variable.
    if 'production' in env['target'] and env['type'] != 'sensitive':

        '''
        Check if target array has development in it.
        Because development target cant have sensitive variables.
        '''

        targets = env['target'][:]
        if 'development' in targets:
            targets.remove('development')

        '''
        Step 2: Get decrypted value of each env variable.
        '''

        url_to_get_or_update_env = f"https://api.vercel.com/v9/projects/{os.getenv('PROJECT_ID')}/env/{env['id']}"
        decrypted_env_response = requests.get(
            url_to_get_or_update_env,
            params=payload,
            headers=headers
        )
        decrypted_env = decrypted_env_response.json()
        # Print the response in a safe environment if required.

        '''
        Step 3: Update all variables to be sensitive if it has production
        target and also remove development target if exists.
        '''

        data = {
            'key': env['key'],
            'target': targets,
            'type': 'sensitive',
            'value': decrypted_env['value']
        }
        data = json.dumps(data)
        response = requests.patch(
            url_to_get_or_update_env,
            params=payload,
            headers=headers,
            data=data
        )
        # Print the response in a safe environment if required.
# Delete items which are not required for update endpoint from payload.
del payload['decrypt']
del payload['source']


for env in all_env_vars:
    # Update only if production is one of the targets of the variable.
    if 'production' in env['target'] and env['type'] != 'sensitive':

        '''
        Check if target array has development in it.
        Because development target cant have sensitive variables.
        '''

        targets = env['target'][:]
        if 'development' in targets:
            targets.remove('development')

        '''
        Step 2: Get decrypted value of each env variable.
        '''

        url_to_get_or_update_env = f"https://api.vercel.com/v9/projects/{os.getenv('PROJECT_ID')}/env/{env['id']}"
        decrypted_env_response = requests.get(
            url_to_get_or_update_env,
            params=payload,
            headers=headers
        )
        decrypted_env = decrypted_env_response.json()
        # Print the response in a safe environment if required.
import os
import requests
import json
from dotenv import load_dotenv

# Load env from .env file.
load_dotenv()

'''
Step 1: Get all env variables.
'''

url_to_get_all_envs = f"https://api.vercel.com/v9/projects/{os.getenv('PROJECT_ID')}/env"
payload = {
    'decrypt': 'true',
    'slug': os.getenv('SLUG'),
    'source': 'vercel-cli:pull',
    'teamId': os.getenv('TEAM_ID')
}
headers = {
    'Authorization': f"Bearer {os.getenv('VERCEL_TOKEN')}",
    'Content-Type': 'application/json'
}

all_env_vars = requests.get(
    url_to_get_all_envs,
    params=payload,
    headers=headers
)

# Print the response in a safe environment if required.
all_env_vars = all_env_vars.json()['envs']
import os
import requests
import json
from dotenv import load_dotenv

# Load env from .env file
load_dotenv()
import os
import requests
import json
from dotenv import load_dotenv
PROJECT_ID=
SLUG=
TEAM_ID=
VERCEL_TOKEN=
%%[set @firstName = AttributeValue("First_Name__c")
set @UNvalue= "?" 
set @firstName = ProperCase(@firstName)
if @firstName == "unknown" OR IndexOf(@firstName,@UNvalue) > 0 then set @FirstName = "" endif
if not Empty(@firstName) then set @greeting = Concat(", ", @firstName)
else
set @greeting = ""
endif ]%%
import { useEffect, useRef, useState } from "react";
import {
  MultiLangListContainer,
  MultiLangListItemContainer,
  MultiLangTextContainer,
} from "../containers/Container";
import {
  MultiLangListContainerStyle,
  MultiLangListTextAnimationStyle,
  MultiLangTextContainerStyle,
} from "../styles/InlineStyles";
import { IMlTextProps, IMultilingualText } from "./MlFreeTextMessage";
import { GenericUtil } from "../../../common/utils/GenericUtil";
import { DDRPlaceholderSelector } from "../../../composition_riv/constants/RIV";

export const MultiLanguageText = ({
  fontSize,
  style,
  color,
  multilanguage,
  multiLineText,
  direction,
}: IMlTextProps) => {
  const [previous, setPrevious] = useState(multilanguage);
  const [previousDirection, setPreviousDirection] = useState(direction);
  const [languages, setLanguages] = useState<IMultilingualText[]>([]);
  const nextTextIndex = useRef(0);
  const arrayOfDivs = useRef<INode[]>([]);
  const uniqueId = useRef(GenericUtil.getInstance().getRandomID());

  interface INode {
    node: HTMLDivElement;
    id: string;
    pNode: Element | null;
  }

  interface IDivData {
    sampleText: string;
    localecode: string;
    duration: string;
  }

  const textInitialPosition: {
    [key: string]: {
      left: string;
      top: string;
    };
  } = {
    up: { left: "0%", top: "100%" },
    down: { left: "0%", top: "-100%" },
    right: { left: "100%", top: "0%" },
    left: { left: "-100%", top: "0%" },
  };
  useEffect(() => {
    if (previous !== multilanguage || direction !== previousDirection) {
      populateLanguageList();
    }
  }, [multilanguage, direction]);

  useEffect(() => {
    if (multilanguage) {
      populateLanguageList();
    }
    return () => {
      arrayOfDivs.current.map((elt) =>
        elt.node.removeEventListener("animationend", callAppendNextDiv)
      );
    };
  }, []);

  useEffect(() => {
    setMultilingualTexts();
  }, [multilanguage, direction]);
  function renderMultilanguageText(): IMultilingualText[] {

    const previousTextInfo = JSON.parse(String(multilanguage));

    return (

      Object.keys(previousTextInfo)

        .filter((lang) => previousTextInfo[lang].checked)

        .map((lang) => ({

          sampleText: previousTextInfo[lang].sampleText,

          localecode: previousTextInfo[lang].id,

        })) || []

    );

  }
  function populateLanguageList() {

    setPrevious(multilanguage);

    const language = renderMultilanguageText() || [];

    setLanguages(language);

  }
  function createDiv(divData: IDivData) {
    const div = document.createElement("div");
    div.classList.add("lang");
    div.id = "mlText" + divData.localecode;
    div.setAttribute("data-duration", divData.duration);
    div.setAttribute("data-direction", direction);
    div.style.position = "absolute";
    div.style.paddingLeft = "1rem";
    div.style.width = "100%";
    div.style.height = "100%";
    div.style.left = textInitialPosition[direction].left;
    div.style.top = textInitialPosition[direction].top;
    div.style.animationName = `multilingual-anim-${direction}`;
    div.style.animationDelay = "0s";
    div.style.animationDuration = divData.duration + "s";
    div.innerText = divData.sampleText;
    return div;
  }

  function appendDiv(divToAppend: INode, index: number) {
    const elt = divToAppend.node;
    nextTextIndex.current = index;
    if (divToAppend.pNode) {
      divToAppend.pNode.appendChild(elt);
    }
  }

  function appendNextDiv(index: number) {
    if (arrayOfDivs.current.length > 0) {
      index = (index + 1) % arrayOfDivs.current.length;
      appendDiv(arrayOfDivs.current[index], index);
    }
  }

  function callAppendNextDiv() {
    if (arrayOfDivs.current.length > 0) {
      appendNextDiv(nextTextIndex.current);
    }
  }

  function setMultilingualTexts() {
    if (!multilanguage) return;
    nextTextIndex.current = 0;
    const parentElement = document.getElementById(uniqueId.current);
    parentElement!.innerHTML = "";
    const previousTextInfo = JSON.parse(String(multilanguage));
    const checkedLanguages = Object.keys(previousTextInfo).filter(
      (lang) => previousTextInfo[lang].checked
    );
    const multilingualText = checkedLanguages.map((lang) => ({
      sampleText: previousTextInfo[lang].sampleText,
      localecode: previousTextInfo[lang].id,
      duration: previousTextInfo[lang].duration,
    }));
    const newArrayOfDivs = multilingualText
      .map((element) => {
        if (element.sampleText !== null && element.sampleText.trim() !== "") {
          const dynamicDiv = createDiv(element);
          dynamicDiv.addEventListener("animationend", callAppendNextDiv);
          return {
            node: dynamicDiv,
            id: dynamicDiv.id,
            pNode: parentElement,
          };
        }
        return null;
      })
      .filter((div): div is { node: HTMLDivElement; id: string; pNode: HTMLElement | null } => div !== null);

    arrayOfDivs.current = newArrayOfDivs;
    if (arrayOfDivs.current.length > 0) {
      appendDiv(arrayOfDivs.current[0], 0);
    }
  }
  const itemCount = languages.length;
  const isSameContent = () => {
    return previous === multilanguage && previousDirection === direction;
  };


  return (
    <MultiLangTextContainer style={MultiLangTextContainerStyle()}>
      <MultiLangListContainer
        id={uniqueId.current}
        className="multiLingual"
        style={MultiLangListContainerStyle(
          fontSize,
          color,
          multiLineText,
          style
        )}
      >
        {isSameContent() &&

          languages.map(
            (item: { sampleText: any; localecode: string }, index: number) => (
              <MultiLangListItemContainer
                className="multiLingual"
                style={MultiLangListTextAnimationStyle(
                  index * 12,
                  itemCount,
                  12,

                  direction

                )}

                key={`mlListItem${item.sampleText}${index}`}

                data-ddrvarid={`${DDRPlaceholderSelector.MultiLangFreeTextMessage}.${item.localecode}`}

              >

                {item.sampleText}

              </MultiLangListItemContainer>

            )

          )}

      </MultiLangListContainer>

    </MultiLangTextContainer>
  );
};
[Authorize(Policy = "Owner")]
[HttpGet]
[Route("SearchUsers")]
public async Task<IActionResult> SearchUsers([FromQuery] string? criteria) 
{
    try
    {
        if (string.IsNullOrEmpty(criteria)) // Check if criteria is null or empty
        {
            // If criteria is not provided, return all users
            var users = await _userManager.Users
                                         .Select(u => new SearchUserViewmodel
                                         {
                                             User_ID = u.User_ID,
                                             Name = u.Name,
                                             Surname = u.Surname
                                         })
                                         .ToListAsync();

            return Ok(users);
        }

        // If criteria is provided, filter users based on the criteria
        var filteredUsers = await _userManager.Users
                                              .Where(u => u.Name.Contains(criteria) || u.Surname.Contains(criteria))
                                              .Select(u => new SearchUserViewmodel
                                              {
                                                  User_ID = u.User_ID,
                                                  Name = u.Name,
                                                  Surname = u.Surname
                                              })
                                              .ToListAsync();

        if (filteredUsers == null || filteredUsers.Count == 0)
        {
            return NotFound("No users found.");
        }

        return Ok(filteredUsers);
    }
    catch (Exception)
    {
        return StatusCode(StatusCodes.Status500InternalServerError, "Internal Server Error. Please contact support.");
    }
}
lib/main.dart
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}
//html
<div class="gym-manager-container">
    <div class="back-button">
      <button class="btn btn-link" (click)="goBack()">
        <i class="bi bi-arrow-left-circle"></i>Back
      </button>
    </div>
    <div class="content">
      <div class="header">
        <h1>Search Users</h1>
      </div>
  
      <input type="text" class="form-control mb-3" placeholder="Search User Types" [(ngModel)]="searchCriteria" (ngModelChange)="filterUsers()">
  
      <div class="table-responsive">
        <table class="table table-hover table-centered">
          <thead class="thead-light">
            <tr>
              <th>User ID</th>
              <th>Name</th>
              <th>Surname</th>
              <th>Actions</th>
            </tr>
          </thead>
          <tbody>
            <tr *ngFor="let user of filteredUsers">
              <td>{{ user.user_ID }}</td>
              <td>{{ user.name }}</td>
              <td>{{ user.surname }}</td>
              <td>
                <button class="btn btn-link" (click)="openModal(user)">
                  <i class="fa fa-eye"></i> View
                </button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  
    <div class="modal fade" id="userModal" tabindex="-1" aria-labelledby="userModalLabel" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content" style="text-align: center;">
          <div class="modal-header">
            <h5 class="modal-title" id="userModalLabel"><strong>User Details</strong></h5>
          </div>
          <div class="modal-body">
            <p><strong>User ID:</strong> {{ selectedUser?.user_ID }}</p>
            <p><strong>Name:</strong> {{ selectedUser?.name }}</p>
            <p><strong>Surname:</strong> {{ selectedUser?.surname }}</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" (click)="closeModal()">Close</button>
          </div>
        </div>
      </div>
    </div>
  </div>
  
//TS
import { CommonModule } from '@angular/common';
import { Observable } from 'rxjs';
import { Component, OnInit } from '@angular/core';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { Router, RouterLink } from '@angular/router';
import { UserService } from '../Services/userprofile.service';
import { UserViewModel } from '../shared/search-user';
import { Location } from '@angular/common';
declare var $: any;

@Component({
  selector: 'app-member-manager',
  standalone: true,
  imports: [CommonModule, ReactiveFormsModule, FormsModule, RouterLink],
  templateUrl: './member-manager.component.html',
  styleUrl: './member-manager.component.css'
})
export class MemberManagerComponent implements OnInit {
  searchCriteria: string = '';
  users: UserViewModel[] = [];
  filteredUsers: UserViewModel[] = [];
  selectedUser: UserViewModel | null = null;

  constructor(private router: Router, private userService: UserService, private location: Location) { }

  ngOnInit(): void {
    this.loadUsers();
  }

  loadUsers(): void {
    this.userService.searchUsers('').subscribe(users => {
      this.users = users;
      this.filteredUsers = users;
    });
  }

  filterUsers(): void {
    const term = this.searchCriteria.toLowerCase();
    if (!term) {
      this.filteredUsers = this.users;
    } else {
      this.filteredUsers = this.users.filter(user =>
        user.user_ID.toString().includes(term) ||
        user.name.toLowerCase().includes(term) ||
        user.surname.toLowerCase().includes(term)
      );
    }
  }

  openModal(user: UserViewModel): void {
    this.selectedUser = user;
    $('#userModal').modal('show');
  }

  closeModal(): void {
    $('#userModal').modal('hide');
  }

  goBack(): void {
    this.location.back();
  }
}

//css
.gym-manager-container {
  padding: 20px;
}

.back-button {
  margin-bottom: 20px;
}

.content {
  background-color: #f8f9fa;
  padding: 20px;
  border-radius: 5px;
}

.header {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
}

.table-centered thead th, 
.table-centered tbody td {
  text-align: center;
}

.table-hover tbody tr:hover {
  background-color: #f1f1f1;
}

.modal-dialog {
  max-width: 400px;
  margin: 1.75rem auto;
}

.modal-content {
  text-align: center;
  padding: 20px;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal-body p {
  margin-bottom: 10px;
}

    @Override
    public List<HumanAgent> findByBotIdAndStatus(String botId, String status) {
        List<HumanAgent> humanAgents = new ArrayList<>();
        try {
            Query query = new Query().addCriteria(Criteria.where("bot_id").is(botId))
                    .addCriteria(Criteria.where("status").is(status));
            humanAgents = mongoTemplate.find(query, HumanAgent.class);
            log.info("find HumanAgent by botId {}, status {},  have size {}",
                    botId, status, humanAgents.size());
        }catch (Exception ex){
            log.error("ERROR {}", ExceptionUtils.getStackTrace(ex));
        }
        return humanAgents;
    }
def factorial(n):
	if n < 1:
    	return 1

	return n*factorial(n-1)

factorial(5)
public class Employee {

    // Instance variables

    private String name;

    private int id;

    private double salary;

    // Constructor to initialize instance variables

    public Employee(String name, int id, double salary) {

        this.name = name;

        this.id = id;

        this.salary = salary;

    }

    // Getter for name

    public String getName() {

        return name;

    }

    // Setter for name

    public void setName(String name) {

        this.name = name;

    }

    // Getter for id

    public int getId() {

        return id;

    }

    // Setter for id

    public void setId(int id) {

        this.id = id;

    }

    // Getter for salary

    public double getSalary() {

        return salary;

    }

    // Setter for salary

    public void setSalary(double salary) {

        this.salary = salary;

    }

    // Method to display employee details

    public void displayDetails() {

        System.out.println("Employee Details:");

        System.out.println("Name: " + name);

        System.out.println("ID: " + id);

        System.out.println("Salary: $" + salary);

    }

}

public class Employee {

    // Instance variables

    private String name;

    private int id;

    private double salary;

    // Constructor to initialize instance variables

    public Employee(String name, int id, double salary) {

        this.name = name;

        this.id = id;

        this.salary = salary;

    }

    // Getter for name

    public String getName() {

        return name;

    }

    // Setter for name

    public void setName(String name) {

        this.name = name;

    }

    // Getter for id

    public int getId() {

        return id;

    }

    // Setter for id

    public void setId(int id) {

        this.id = id;

    }

    // Getter for salary

    public double getSalary() {

        return salary;

    }

    // Setter for salary

    public void setSalary(double salary) {

        this.salary = salary;

    }

    // Method to display employee details

    public void displayDetails() {

        System.out.println("Employee Details:");

        System.out.println("Name: " + name);

        System.out.println("ID: " + id);

        System.out.println("Salary: $" + salary);

    }

}

import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:ghalam_jadoee/component/api_service.dart';
import 'package:ghalam_jadoee/component/body3.dart';
import 'package:ghalam_jadoee/component/user_textfield.dart';
import 'package:ghalam_jadoee/pages/bottomnav.dart';
import 'package:ghalam_jadoee/pages/sign.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(Moarf());
}

String PUser = "";

class Moarf extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Referral Code Page',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: ReferralCodePage(),
    );
  }
}

final TextEditingController _nameController = TextEditingController();

class ReferralCodePage extends StatefulWidget {
  @override
  _ReferralCodePageState createState() => _ReferralCodePageState();
}

class _ReferralCodePageState extends State<ReferralCodePage> {
  final _formKey = GlobalKey<FormState>();
  final TextEditingController _referralCodeController = TextEditingController();
  String _message = '';
  bool _isButtonActive = false;

  @override
  void initState() {
    super.initState();
    _referralCodeController.addListener(_validateCode);
    _nameController.addListener(_validateCode);
  }

  void _validateCode() {
    setState(() {
      final code = _referralCodeController.text;
      final name = _nameController.text;
      _isButtonActive = name.isNotEmpty &&
          (code.isEmpty ||
              (code.length == 6 && RegExp(r'^[a-zA-Z0-9]+$').hasMatch(code)));
    });
  }

  Future<void> saveLogin(String PUser) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString("userkey", PUser);
    await prefs.setBool("loggedIn", true);
  }

  void _submitCode() async {
    if (_formKey.currentState?.validate() ?? false) {
      var name = _nameController.text;
      var referral = _referralCodeController.text;

      print("name");
      print(name);
      print("ph");
      print(SendPhone);
      print("rf");
      print(referral);
      PUser = SendPhone;
      String state = 's3';
      try {
        var jsonResponse =
            await ApiService.confirm(SendPhone, name, referral, state);
        setState(() {
          print(jsonResponse);
          _message = 'کد معرف وارد شده: $referral';
        });

        await saveLogin(PUser);

        Navigator.pushReplacement(
          context,
          MaterialPageRoute(builder: (context) => Bottomnav()),
        );
      } catch (e) {
        setState(() {
          _message = 'خطا در ارسال کد معرف: ${e.toString()}';
        });
      }
    }
  }

  void _clearCode() async {
    _referralCodeController.clear();

    if (_formKey.currentState?.validate() ?? false) {
      var name = _nameController.text;
      var referral = "0";

      print("name");
      print(name);
      print("ph");
      print(SendPhone);
      print("rf");
      print(referral);
      PUser = SendPhone;
      String state = 's3';
      try {
        var jsonResponse =
            await ApiService.confirm(SendPhone, name, referral, state);
        setState(() {
          print('jsonResponse');
          print(jsonResponse);

          _message = 'معرفی ندارم';
        });

        await saveLogin(PUser);

        Navigator.pushReplacement(
          context,
          MaterialPageRoute(builder: (context) => Bottomnav()),
        );
      } catch (e) {
        setState(() {
          _message = 'خطا در ارسال کد معرف: ${e.toString()}';
        });
      }
    }
  }

  @override
  void dispose() {
    _referralCodeController.removeListener(_validateCode);
    _nameController.removeListener(_validateCode);
    _referralCodeController.dispose();
    _nameController.dispose();
    super.dispose();
  }

  @override
  @override
  Widget build(BuildContext context) {
    return WillPopScope(
        onWillPop: () async {
          return false;
        },
        child: Scaffold(
          body: SingleChildScrollView(
              child: Container(
            height: MediaQuery.of(context).size.height,
            child: Stack(
              alignment: Alignment.center,
              children: [
                Body3(),
                Align(
                  alignment: Alignment.topCenter,
                  child: SingleChildScrollView(
                    child: Padding(
                      padding: EdgeInsets.only(
                          top: MediaQuery.of(context).size.height * 0.48),
                      child: Padding(
                        padding: const EdgeInsets.all(24.0),
                        child: Form(
                          key: _formKey,
                          child: Column(
                            mainAxisSize: MainAxisSize.min,
                            children: <Widget>[
                              UserNameTextField(controller: _nameController),
                              SizedBox(height: 30),
                              Align(
                                alignment: Alignment.centerRight,
                                child: const Text(
                                  ': کد معرف ',
                                  textAlign: TextAlign.end,
                                  style: TextStyle(
                                    fontSize: 20,
                                    fontWeight: FontWeight.w300,
                                  ),
                                ),
                              ),
                              SizedBox(height: 10),
                              Container(
                                alignment: Alignment.centerRight,
                                child: TextFormField(
                                  controller: _referralCodeController,
                                  decoration: InputDecoration(
                                    border: OutlineInputBorder(
                                      borderRadius: BorderRadius.circular(12),
                                    ),
                                    contentPadding: const EdgeInsets.symmetric(
                                      vertical: 16.0,
                                      horizontal: 12.0,
                                    ),
                                  ),
                                  maxLength: 6,
                                  validator: (value) {
                                    if (value != null && value.isNotEmpty) {
                                      if (value.length != 6) {
                                        return 'کد معرف باید ۶ کاراکتر باشد';
                                      } else if (!RegExp(r'^[a-zA-Z]+$')
                                          .hasMatch(value)) {
                                        return 'کد معرف باید فقط حاوی حروف انگلیسی باشد';
                                      }
                                    }
                                    return null;
                                  },
                                ),
                              ),
                              SizedBox(height: 20),
                              Row(
                                mainAxisAlignment:
                                    MainAxisAlignment.spaceEvenly,
                                children: [
                                  TextButton(
                                    onPressed:
                                        _isButtonActive ? _submitCode : null,
                                    style: TextButton.styleFrom(
                                      foregroundColor: _isButtonActive
                                          ? Colors.blue
                                          : Colors.grey,
                                      padding: const EdgeInsets.symmetric(
                                        horizontal: 32,
                                        vertical: 12,
                                      ),
                                      textStyle: const TextStyle(
                                        fontSize: 16,
                                        fontWeight: FontWeight.bold,
                                      ),
                                    ),
                                    child: const Text('ارسال'),
                                  ),
                                  TextButton(
                                    onPressed: _clearCode,
                                    style: TextButton.styleFrom(
                                      foregroundColor: Colors.red,
                                      padding: const EdgeInsets.symmetric(
                                        horizontal: 32,
                                        vertical: 12,
                                      ),
                                      textStyle: const TextStyle(
                                        fontSize: 16,
                                        fontWeight: FontWeight.bold,
                                      ),
                                    ),
                                    child: const Text('معرفی ندارم'),
                                  ),
                                ],
                              ),
                              SizedBox(height: 20),
                              Text(
                                _message,
                                style: TextStyle(
                                  fontSize: 16,
                                  color: _message.contains('کد معرف وارد شده')
                                      ? Colors.green
                                      : Colors.red,
                                ),
                                textDirection: TextDirection.rtl,
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          )),
        ));
  }
}
=if(
    aggr({<BestemmingKpl = p({$})>} [Resultaat - Kostenplaats - HuidigMinus1], BestemmingKpl) < 0, 
    dual('Negatief', 2),
    if(
        aggr({<BestemmingKpl = p({$})>} [Resultaat - Kostenplaats - HuidigMinus1], BestemmingKpl) > 0, 
        dual('Postief', 1),
        dual('Breakeven', 3)
    )
)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Advanced Hover Effects</title>
    <style>
        .button {
            position: relative;
            display: inline-block;
            padding: 10px 20px;
            color: #fff;
            background-color: #007BFF;
            border: none;
            border-radius: 5px;
            text-decoration: none;
            overflow: hidden;
            transition: background-color 0.3s;
        }

        .button::before, .button::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(255, 255, 255, 0.2);
            transition: transform 0.3s;
        }

        .button::before {
            transform: translateX(-100%);
        }

        .button::after {
            transform: translateX(100%);
        }

        .button:hover::before {
            transform: translateX(0);
        }

        .button:hover::after {
            transform: translateX(0);
        }
    </style>
</head>
<body>
    <a href="#" class="button">Hover Me</a>
</body>
</html>
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:ghalam_jadoee/component/api_service.dart';
import 'package:ghalam_jadoee/component/body2.dart';
import 'package:ghalam_jadoee/pages/bottomnav.dart';
import 'package:ghalam_jadoee/pages/sign.dart';
import 'package:ghalam_jadoee/pages/moarf.dart';
import 'package:shared_preferences/shared_preferences.dart';

String SendPhone2 = "";
String OTP2 = "";
String userStatus = "";
bool BtnEnable = true;

void main() {
  runApp(Login2());
}

class Login2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: ' ',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: OtpRequestScreen(
        name: '',
        phone: '',
      ),
    );
  }
}

class OtpRequestScreen extends StatefulWidget {
  final String name;
  final String phone;

  OtpRequestScreen({required this.name, required this.phone});

  @override
  _OtpRequestScreenState createState() => _OtpRequestScreenState();
}

class _OtpRequestScreenState extends State<OtpRequestScreen> {
  final List<FocusNode> _focusNodes = List.generate(4, (_) => FocusNode());
  final List<TextEditingController> _controllers =
      List.generate(4, (_) => TextEditingController());

  Timer? _timer;
  int _start = 300;
  bool _isResendDisabled = true;

  @override
  void initState() {
    super.initState();
    _startTimer();
    setState(() {
      SendPhone2 = SendPhone;
      OTP2 = OTP1;
      userStatus = userStatus2;
    });
  }

  @override
  void dispose() {
    _timer?.cancel();
    super.dispose();
  }

  Future<void> saveLogin(String nameUser) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString("userkey", nameUser);
    await prefs.setBool("loggedIn", true);
  }

  void _startTimer() {
    const oneSec = Duration(seconds: 1);
    _timer?.cancel();
    _timer = Timer.periodic(oneSec, (Timer timer) {
      if (_start == 0) {
        setState(() {
          timer.cancel();
          BtnEnable = false;
          _isResendDisabled = false;
        });
      } else {
        setState(() {
          _start--;
        });
      }
    });
  }

  Future<void> _resetTimer() async {
    String state = 's2';
    var jsonResponse = await ApiService.login(SendPhone2, state);

    if (jsonResponse != null) {
      var userStatus = jsonResponse['USER STATUS'];
      var otp = jsonResponse['otp'];
      var rs = jsonResponse['rs'];

      OTP2 = otp;

      print("otp");
      print(otp);
    }

    setState(() {
      _start = 300;
      BtnEnable = false;
      _isResendDisabled = true;
      _startTimer();
    });
  }

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      child: Scaffold(
        body: Stack(
          alignment: Alignment.center,
          children: [
            const Body2(),
            Center(
              child: Padding(
                padding: EdgeInsets.only(
                    top: MediaQuery.of(context).size.height * 0.2),
                child: Column(
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    const Text(
                      'پیامک تایید شماره تلفن',
                      style: TextStyle(
                        fontSize: 25,
                      ),
                    ),
                    SizedBox(height: 20),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.end,
                      children: [
                        Text(
                          SendPhone2,
                          style: const TextStyle(
                            fontWeight: FontWeight.bold,
                          ),
                        ),
                        const Text(
                          '  :کد ارسال شده به ',
                          style: TextStyle(
                            fontWeight: FontWeight.bold,
                          ),
                        ),
                      ],
                    ),
                    const SizedBox(height: 20),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                      children: List.generate(4, (index) {
                        return OtpInput(
                          focusNode: _focusNodes[index],
                          nextFocusNode:
                              index < 3 ? _focusNodes[index + 1] : null,
                          previousFocusNode:
                              index > 0 ? _focusNodes[index - 1] : null,
                          controller: _controllers[index],
                        );
                      }),
                    ),
                    SizedBox(height: 20),
                    Align(
                      alignment: Alignment.centerRight,
                      child: TextButton(
                        onPressed: _isResendDisabled ? null : _resetTimer,
                        child: Text(
                          _isResendDisabled
                              ? 'ارسال مجدد کد در $_start ثانیه'
                              : 'ارسال مجدد کد',
                          style: TextStyle(
                            color: _isResendDisabled
                                ? const Color.fromRGBO(158, 158, 158, 1)
                                : Colors.black,
                          ),
                        ),
                      ),
                    ),
                    SizedBox(height: 20),
                    ElevatedButton(
                      onPressed: BtnEnable
                          ? () async {
                              String enteredOtp = _controllers
                                  .map((controller) => controller.text)
                                  .join('');
                              print(OTP2);

                              print(enteredOtp);
                              print("SOTP");
                              //print(Sotp);
                              if (enteredOtp == OTP2) {
                                if (userStatus == '0') {
                                  Navigator.pushReplacement(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) => Moarf()),
                                  );
                                } else if (userStatus == '1') {
                                  await saveLogin(SendPhone2);
                                  Navigator.pushReplacement(
                                    context,
                                    MaterialPageRoute(
                                        builder: (context) => Bottomnav()),
                                  );
                                }
                              } else {
                                ScaffoldMessenger.of(context).showSnackBar(
                                  SnackBar(
                                    content: Directionality(
                                      textDirection: TextDirection.rtl,
                                      child: Text('کد وارد شده صحیح نیست'),
                                    ),
                                  ),
                                );
                              }
                            }
                          : null,
                      style: ElevatedButton.styleFrom(
                        backgroundColor: Color.fromRGBO(112, 27, 248, 100),
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(100),
                        ),
                        padding:
                            EdgeInsets.symmetric(horizontal: 30, vertical: 12),
                      ),
                      child: const Text(
                        'تایید',
                        style: TextStyle(
                          color: Colors.black,
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
      onWillPop: () async {
        return false;
      },
    );
  }
}

class OtpInput extends StatelessWidget {
  final FocusNode focusNode;
  final FocusNode? nextFocusNode;
  final FocusNode? previousFocusNode;
  final TextEditingController controller;

  const OtpInput({
    required this.focusNode,
    this.nextFocusNode,
    this.previousFocusNode,
    required this.controller,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 50,
      height: 50,
      decoration: BoxDecoration(
        color: Color.fromARGB(159, 226, 221, 221),
        borderRadius: BorderRadius.circular(10),
      ),
      child: TextField(
        focusNode: focusNode,
        controller: controller,
        textAlign: TextAlign.center,
        style: const TextStyle(
          fontSize: 24,
        ),
        keyboardType: TextInputType.number,
        maxLength: 1,
        decoration: const InputDecoration(
          counterText: '',
          border: InputBorder.none,
        ),
        onChanged: (value) {
          if (value.isNotEmpty && nextFocusNode != null) {
            FocusScope.of(context).requestFocus(nextFocusNode);
          } else if (value.isEmpty && previousFocusNode != null) {
            FocusScope.of(context).requestFocus(previousFocusNode);
          } else {
            focusNode.unfocus();
          }
        },
      ),
    );
  }
}
.elementor-widget-text-editor p:last-child{ margin-bottom:0px;}
Using mklink (Symbolic Link):

mklink /J "C:\Users\****\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cache" "D:\EdgeCache"

OR

Modify Edge Properties (for specific Edge versions):

- Right-click on the Edge shortcut and choose “Properties.”
- In the “Target” field, modify it to include the cache location:

"C:\Program Files (x86)\MicrosoftEdge\Application\msedge.exe" --profile-directory=Default --disk-cache-dir=z:\MicrosoftEdge\Cache
Replace 
z:\MicrosoftEdge\Cache
 with your desired cache location.
construccion 

en el formulario:

<?= $form->field($model, 'id_sector')->dropDownList(ArrayHelper::map(Sectores::find()->orderBy('nombre_sector')->all(), 'id_sector', 'nombre_sector'), ['prompt' => 'Seleccione ', 'id' => 'id-sector','onchange' => 'actualizarEntes(value)']); ?>

    </div>

     <div class="col-xs-3">
                <?php /*$form->field($model, 'id_ente')->widget(Select2::classname(), [
                    'model' => $model,
                    'attribute' => 'id_ente',
                    'data' => ArrayHelper::map(Entes::find()->orderBy('nombre_ente')->asArray()->all(), 'id_ente', 'nombre_ente'),
                    'language' => 'es',
                    'maintainOrder' => true,
                    'showToggleAll'=> false,
                    'readonly'=>true,
                    'options' => ['placeholder' => 'Seleccione...', 'multiple' => true,],
                    'pluginOptions' => [
                    'maximumSelectionLength'=>35,
                    'minimumInputLength'=>0,
                    ],
                    ]);*/ ?>

        <?= $form->field($model, 'id_ente')->widget(DepDrop::classname(), [
        'type' => DepDrop::TYPE_SELECT2,
        'data' => [], // Inicialmente vacío
        'options' => ['placeholder' => 'Seleccione...', 'multiple' => true],
        'pluginOptions' => [
            'depends' => ['id-sector'], // ID del campo del que depende
            'url' => Url::to(['/entes/listar']), // URL para obtener los datos dependientes
            'loadingText' => 'Cargando entes...',
        ],
    ]); ?>
        </div> 
    </div>

en el modelo de la tabla que voy a mostrar en el DepDrop:

public static function Lista(){
    $s = \yii\helpers\ArrayHelper::map(Entes::find()->orderBy('id_ente')->all(),'id_ente','nombre_ente');
    return ($s) ? $s : [];
    }

en la action update del controlador:
   public function actionUpdate($id)
{
    $model = $this->findModel($id);

    // Carga los datos de 'indicadores_entes' en el modelo
    $model->id_ente = ArrayHelper::map($model->entes, 'id_ente', 'nombre_ente');

    if ($model->load(Yii::$app->request->post())) {
        // Desvincula todos los 'entes' existentes para evitar duplicados
        $model->unlinkAll('entes', true);

        // Guarda los nuevos valores seleccionados en la tabla de relación
        foreach ($model->id_ente as $enteId) {
            $ente = Entes::findOne($enteId);
            $model->link('entes', $ente);
        }

        if ($model->save()) {
            return $this->redirect(['view', 'id' => $model->id_indicador]);
        }
    }
    return $this->render('update', [
        'model' => $model,
    ]);
}
 en la action create :
                         
public function actionCreate()
        {
            $model = new Indicadores();

            if ($model->load(Yii::$app->request->post())) {
                if ($model->save()) {
                    // Obtén los valores seleccionados del campo 'id_ente'
                    $entesSeleccionados = Yii::$app->request->post('Indicadores')['id_ente'];

                    // Guarda los valores seleccionados en la tabla de relación
                    foreach ($entesSeleccionados as $enteId) {
                        $ente = Entes::findOne($enteId);
                        $model->link('entes', $ente);
                    }

                    return $this->redirect(['view', 'id' => $model->id_indicador]);
                }
            }

            return $this->render('create', [
                'model' => $model,
            ]);
        }                         
    
<?php

/**
 * Checkout billing information form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/checkout/form-billing.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://woocommerce.com/document/template-structure/
 * @package WooCommerce\Templates
 * @version 3.6.0
 * @global WC_Checkout $checkout
 */

defined('ABSPATH') || exit;
$fields = $checkout->get_checkout_fields('billing');
?>
<?php if (!is_user_logged_in() && $checkout->is_registration_enabled()) : ?>
  <div class="woocommerce-billing-fields woocommerce-billing-fields-top">
    <h3><?php esc_html_e('Login', 'woocommerce'); ?></h3>
    <p>Log in to place your order</p>
    <div class="woocommerce-billing-fields__field-wrapper">
      <?php
      foreach ($fields as $key => $field) {
        if ($key === 'billing_email') {
          woocommerce_form_field($key, $field, $checkout->get_value($key));
        }
      }
      ?>
      <p class="form-row form-row-wide" id="billing_password_field" data-priority="110">
        <span class="woocommerce-input-wrapper">
          <input type="password" class="input-text" name="billing_password" id="billing_password" placeholder="Password">
        </span>
      </p>
      <div class="flogin-btn">
        <button type="button"><?php _e('Login and place order', 'wp'); ?></button>
      </div>
      <div class="flogin-footer">
        <div>Not yet a member?</div>
        <div>create an account</div>
        <div>Create an account and place your order</div>
      </div>
    </div>
  </div>
<?php else : ?>
  <div class="woocommerce-billing-fields">
    <h3><?php esc_html_e('Account', 'woocommerce'); ?></h3>
    <div class="woocommerce-billing-fields__field-wrapper">
      <?php
      foreach ($fields as $key => $field) {
        if ($key === 'billing_email') {
          woocommerce_form_field($key, $field, $checkout->get_value($key));
        }
      }
      ?>
    </div>
  </div>
<?php endif; ?>
<div class="woocommerce-billing-fields">
  <?php if (wc_ship_to_billing_address_only() && WC()->cart->needs_shipping()) : ?>

    <h3><?php esc_html_e('Billing &amp; Shipping', 'woocommerce'); ?></h3>

  <?php else : ?>

    <h3><?php esc_html_e('Billing Info', 'woocommerce'); ?></h3>

  <?php endif; ?>

  <?php do_action('woocommerce_before_checkout_billing_form', $checkout); ?>

  <div class="woocommerce-billing-fields__field-wrapper">
    <?php
    foreach ($fields as $key => $field) {
      if ($key !== 'billing_email') {
        woocommerce_form_field($key, $field, $checkout->get_value($key));
      }
    }
    ?>
	 
      <?php woocommerce_form_field('billing_notes', array(
            'type' => 'textarea',
            'class' => array('form-row-wide'),
            'label' => false,
            'placeholder' => __('Order notes(optional)', 'woocommerce'),
            'required' => false,
        ), $checkout->get_value('billing_notes')); ?>
    
    <div class="form-row shipping-address-method-field">
      <input type="radio" name="shipping-address-method[]" value="billing_address" id="method-billing_address" checked>
      <label for="method-billing_address">Ship to this address</label>
    </div>
  </div>

  <?php do_action('woocommerce_after_checkout_billing_form', $checkout); ?>
</div>

<?php if (!is_user_logged_in() && $checkout->is_registration_enabled()) : ?>
  <div class="woocommerce-account-fields">
    <?php if (!$checkout->is_registration_required()) : ?>

      <p class="form-row form-row-wide create-account">
        <label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
          <input class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" id="createaccount" <?php checked((true === $checkout->get_value('createaccount') || (true === apply_filters('woocommerce_create_account_default_checked', false))), true); ?> type="checkbox" name="createaccount" value="1" /> <span><?php esc_html_e('Create an account?', 'woocommerce'); ?></span>
        </label>
      </p>

    <?php endif; ?>

    <?php do_action('woocommerce_before_checkout_registration_form', $checkout); ?>

    <?php if ($checkout->get_checkout_fields('account')) : ?>

      <div class="create-account">
        <?php foreach ($checkout->get_checkout_fields('account') as $key => $field) : ?>
          <?php woocommerce_form_field($key, $field, $checkout->get_value($key)); ?>
        <?php endforeach; ?>
        <div class="clear"></div>
      </div>

    <?php endif; ?>

    <?php do_action('woocommerce_after_checkout_registration_form', $checkout); ?>
  </div>
<?php endif; ?>
git add FILENAME

git commit -m FILENAME

git push
//To specify a custom ID in the i18n attribute or $localize tagged message string, use the @@ prefix. The following example defines the introductionHeader custom ID in a heading element.
<h1 i18n="@@introductionHeader">Hello i18n!</h1>

variableText1 = $localize `:@@introductionHeader:Hello i18n!`;

//The following example includes a description, followed by the custom ID.
<h1 i18n="An introduction header for this sample@@introductionHeader">Hello i18n!</h1>

variableText2 = $localize `:An introduction header for this sample@@introductionHeader:Hello i18n!`;
res = thisapp.Residents.Fetchallresbyemail(input.Email);
for each  item in res
{
	counterr = 0;
	resprop = Residents[ID == item && Developments == 39703000013659197].Property_address;
	ipdcheck = pod_planner.Properties.IPDprivate(resprop);
	if(ipdcheck == "True")
	{
		counterr = counterr + 1;
	}
}
$ git commit -m "Make everything work.
dquote>
dquote> Add magic code that fixes everything"
<?php
// Define the start year and get the current year
$start_year = 2020; // Replace with your start year
$current_year = date('Y');
?>
<p>&copy; <?php echo $start_year; ?><?php if ($start_year != $current_year) echo '-' . $current_year; ?> <?php bloginfo('name'); ?>. Minden jog fenntartva.</p>
fun main() {
         var a:Int=76
         println("Value of a :${a}")
         
         var b:Char='A'
         println("value of b :${b}")
         
         var c:String="Welcome to my world"
         println("Value of String :${c}")
         
         var d:String="""
                 Welcome
                 To
                 My
                 World
                 """
          println("Value Of String :${d}")
          
          val numbers:IntArray= intArrayOf(1,2,3,4,5)
          val chars=charArrayOf('A','B','C')
          val games: Array<String> =arrayOf("Cricket","Kabaddi")
          
          println("Integers Array:${numbers.contentToString()}")
           println("Characters Array:${chars.contentToString()}")
            println("String Array:${games.contentToString()}")
         
 println("Mutable List Example :")
         
         var e = mutableListOf("C","C++","Java")
          println("List:${e}")
           e.add("Python")
           println("Updated List :${e}")
         
 println("Immutable List Example :")
         
         var k = listOf("C","C++","Java")
          println("List:${k}")
          
 println("Mutable Set Ex:")
          
          var g =mutableSetOf(1,2,3,4,5)
             println("SET :${g}")
             
             g.add(6)
             println("Updated Set:${g}")
             
 println("Immutable Set Ex:")
          
          var h =setOf(5,6,7,8,9)
             println("SET :${h}")
         
 println("Immutable Map Ex:")      
         
           var details = mapOf("Sno" to 101,"Sname" to "Hari")
           println("Map :${details}")         
          
 println("Mutable Map Ex:")  
 
          var courses = mutableMapOf("Sno" to 102,"Sname" to "Pari")
          println("Map :${courses}")
          
         courses["marks"]=100
          println("Updated Map :${courses}")
          
 println("Range Ex:")
      
          var r = 1..10
          for(e in r){
          println(e)
          }
          println("Enter value of m:")
          var m =readln()
          println(m)
                   
         }
import React, { useState } from 'react';

function Example() {
  const [user, setUser] = useState({
    name: 'John Doe',
    age: 30
  });

  return (
    <div>
      <p>Name: {user.name}</p>
      <p>Age: {user.age}</p>
      <p>Email: {user.email}</p>
      <button onClick={() => setUser({ ...user, name: 'Jane Doe' })}>Change Name</button>
      <button onClick={() => setUser({ ...user, email: 'jane.doe@example.com' })}>Add Email</button>
      <button onClick={() => {
        const { age, ...rest } = user;
        setUser(rest);
      }}>Delete Age</button>
    </div>
  );
}

export default Example;
import React, { useState } from 'react';

function Example() {
  const [users, setUsers] = useState([
    { id: 1, name: 'John Doe', age: 30 },
    { id: 2, name: 'Jane Smith', age: 25 }
  ]);

  return (
    <div>
      {users.map(user => (
        <div key={user.id}>
          <p>Name: {user.name}</p>
          <p>Age: {user.age}</p>
        </div>
      ))}
      <button onClick={() => setUsers(users.map(user => 
        user.id === 1 ? { ...user, name: 'Jane Doe' } : user
      ))}>Change Name of User 1</button>
      <button onClick={() => setUsers([...users, { id: 3, name: 'Sam Green', age: 28 }])}>Add User</button>
      <button onClick={() => setUsers(users.filter(user => user.id !== 2))}>Delete User 2</button>
    </div>
  );
}

export default Example;
Request
  URI: /cashcards/{id}
  HTTP Verb: GET
  Body: None

Response:
  HTTP Status:
    200 OK if the user is authorized and the Cash Card was successfully retrieved
    401 UNAUTHORIZED if the user is unauthenticated or unauthorized
    404 NOT FOUND if the user is authenticated and authorized but the Cash Card cannot be found
  Response Body Type: JSON
  Example Response Body:
    {
      "id": 99,
      "amount": 123.45
    }
You can use the async keyword to create an asynchronous function, which returns a promise.

Example Code
const example = async () => {
  console.log("this is an example");
};

The try block is designed to handle potential errors, and the code inside the catch block will be executed in case an error occurs.

Example Code
try {
  const name = "freeCodeCamp";
  name = "fCC";
} catch (err) {
  console.log(err); // TypeError: Assignment to constant variable.
}

The await keyword waits for a promise to resolve and returns the result.

Example Code
const example = async () => {
  const data = await fetch("https://example.com/api");
  console.log(data);
}
The Fetch API is a built-in JavaScript interface to make network requests to a server. It has a fetch() method you can use to make GET, POST, PUT, or PATCH requests. In this project, you'll make a GET request to a URL for a JSON file with information about authors on freeCodeCamp News.

Here is how you can make a GET request with the fetch() method:

Example Code
fetch("url-goes-here")

The fetch() method returns a Promise, which is a placeholder object that will either be fulfilled if your request is successful, or rejected if your request is unsuccessful.

If the Promise is fulfilled, it resolves to a Response object, and you can use the .then() method to access the Response.

Here's how you can chain .then() to the fetch() method:

Example Code
fetch("sample-url-goes-here")
  .then((res) => res)

The data you get from a GET request is not usable at first. To make the data usable, you can use the .json() method on the Response object to parse it into JSON. If you expand the Prototype of the Response object in the console, you will see the .json() method there.

In order to start working with the data, you will need to use another .then() method.

Chain another .then() to the existing .then() method. This time, pass in data as the parameter for the callback function. For the callback, use a curly brace because you will have more than one expression.

The .catch() method is another asynchronous JavaScript method you can use to handle errors. This is useful in case the Promise gets rejected.
<ul>
    {{#each customDataModel.links}}
        <li><a href="{{this.link}}" title="{{this.title}}">{{this.title}}</a></li>
    {{/each}}
</ul>
   
// CustomDataModel
{
    "links": [
        { "title": "New Models", "link": "/new-models" },
        { "title": "Inventory", "link": "/search/inventory" },
        { "title": "New Inventory", "link": "/search/inventory/usage/New" },
        { "title": "Used Inventory", "link": "/search/inventory/usage/Used" },
        { "title": "Services", "link": "/services" },
        { "title": "Finacing", "link": "/financing" },
        { "title": "Comapany Info", "link": "/aboutus" },
        { "title": "Contact Us", "link": "/contactus" }
    ]  
}
RK3229

Typical application areas

Key Features

Quad-core Cortex-A7 up to 1.5GHz
Mali-400MP2 GPU
DDR3/DDR3L/LPDDR2/LPDDR3
4K UHD H265/H264/VP9
BT.2020/BT.709
H264 encoder
TS in/CSA 2.0
USB 2.0
HDMI 2.0 with HDCP 2.2
FE PHY/Audio DAC/CVBS/RGMII
TrustZone/TEE/DRM
SPECIFICATION
Technology	• 28nm
CPU	• Quad-core Cortex-A7, up to 1.5GHz
GPU	• Mali400MP, supports OpenGL ES1.1/2.0
multimedia	• Support 4K VP9 and 4K 10bits H265/H264 video decoding, up to 60fps
• 1080P multi-format video decoding (WMV, MPEG-1/2/4, VP8)
• 1080P video encoding, support H.264, VP8 format
show	• HDMI 2.0 supports 4K 60Hz display and HDCP 1.4/2.2
• CVBS output
Safety	• ARM TrustZone (TEE), Secure Video Path, Cipher Engine, Secure boot
Memory	• 32bit DDR3-1600/DDR3L-1600/LPDDR3-1333/LPDDR2-1066
• Support MLC NAND Flash, eMMC 4.51, SPI NAND Flash
interface	• Dual SDIO 3.0 interface
• 8-channel I2S interface, supporting 8-way digital microphone input and output
• Integrated CVBS, HDMI TX, Ethernet MAC and PHY, S/PDIF, Audio Codec, USB, I2C/UART/SPI
Encapsulation	• BGA316 14X14, 0.65mm pitch
state	• MP Now
PX5

Typical application areas

Key Features

Octa-core Cortex-A53 up to 1.5GHz
PowerVR G6110 GPU
DDR3/DDR3L/LPDDR2/LPDDR3
4K UHD H265/H264 decoder
FHD panel display
ADAS Algorithm support
SmartPhone connection support
Fast Reverse view
SPECIFICATION
Technology	• 28nm
CPU	• Octa-core 64-bit Cortex-A53, up to 1.5GHz
GPU	• PowerVR G6110 GPU
• Support OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3
• Built-in high-performance 2D acceleration hardware
multimedia	• Support 4K H265 60fps/H264 25fps video decoding
• 1080P multi-format video decoding (VC-1, MPEG-1/2/4, VP8)
• 1080P video encoding, support H.264, VP8 format
show	• Support RGB, LVDS, MIPI-DSI, eDP display interface, with the highest resolution of 2048*1536
• HDMI 2.0 supports 4K 60Hz display and HDCP 1.4/2.2
Safety	• ARM TrustZone (TEE), Secure Video Path, Cipher Engine, Secure boot
Memory	• 32bit DDR3-1600/DDR3L-1600/LPDDR3-1333
• Support MLC NAND Flash, eMMC 4.51, SPI SPI Flash booting
interface	• Built-in 8M ISP, supports MIPI CSI-2 and DVP interface
• Dual SDIO 3.0 interface
• TS in/CSA2.0
• Integrated HDMI, Ethernet MAC, S/PDIF, USB, I2C, I2S, UART, SPI
Encapsulation	• BGA453 19X19, 0.8mm pitch
state	• MP Now
 
/*Replace the class .mesh-test with your own as well as the four lines of code 
following right underneath (with the code from Mesher)*/

.mesh-test{
    background-color:hsla(95,0%,0%,1);
    background-image:
    radial-gradient(at 88% 79%, hsla(227,93%,77%,1) 0px, transparent 50%),
    radial-gradient(at 13% 9%, hsla(80,95%,71%,1) 0px, transparent 50%);

animation: gradient 13s ease infinite;
    background-size: 200% 200%;
}

@keyframes gradient {
	0% {
		background-position: 0% 20%;
	}
	25% {
		background-position: 100% 50%;
	}
	50% {
		background-position: 50% 70%;
	}
	100% {
		background-position: 0% 20%;
	}
}
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        red: 'hsl(14, 86%, 42%)',
        green: 'hsl(159, 69%, 38%)',
        rose: {
          50: 'hsl(20, 50%, 98%)',
          100: 'hsl(13, 31%, 94%)',
          300: 'hsl(14, 25%, 72%)',
          400: 'hsl(7, 20%, 60%)',
          500: 'hsl(12, 20%, 44%)',
          900: 'hsl(14, 65%, 9%)',
        },
      },
    },
  },
};
/* ./src/fonts.css */
@font-face {
  font-family: 'Karla';
  src: url('../assets/fonts/Karla-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'Karla';
  src: url('../assets/fonts/Karla-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
}

@font-face {
  font-family: 'Karla';
  src: url('../assets/fonts/Karla-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
}


/* ./src/index.css */
@import './fonts.css';

@tailwind base;
@tailwind components;
@tailwind utilities;


// tailwind.config.js
module.exports = {
  content: ['./src/**/*.{html,js,jsx,ts,tsx}', './dist/index.html'],
  theme: {
    extend: {
      fontFamily: {
        karla: ['Karla', 'sans-serif'],
      },
    },
  },
  plugins: [],
};
<?php
/**
 * Review order table
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/checkout/review-order.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see https://woocommerce.com/document/template-structure/
 * @package WooCommerce\Templates
 * @version 5.2.0
 */

defined( 'ABSPATH' ) || exit;
$total_order = WC()->cart->total;
$total_sale = 0;

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $product = $cart_item['data'];
    if ( $product->is_on_sale() ) {
        $total_sale += ( $product->get_regular_price() - $product->get_sale_price() ) * $cart_item['quantity'];
    }
}
?>
<div class="woocommerce-checkout-review-order-table">
	<?php do_action('custom-freeshiping-bar');?>
    <div id="total-header">
    <button type="button" id="toggle-cart-items" class="button-toggle-cart">
        Order Summary
		<i class="fa-solid fa-chevron-down"></i>
    </button>
	<div class="total-money">
       <span class="total-sale">$<?php echo number_format($total_sale, 2); ?></span>
       <span class="total-order">$<?php echo number_format($total_order, 2); ?></span>
    </div>
</div>
    <div id="cart-details">
		<div class="title-in-review">
				<h3 class="co-h3">PURCHARE SUMMARY</h3>
				<?php do_action('custom-freeshiping-bar');?>
			</div>
        <ul id="cart-items-list" class="woocommerce-mini-cart cart_list product_list_widget">
            <?php if ( ! WC()->cart->is_empty() ) : ?>
                <?php
                    do_action( 'woocommerce_review_order_before_cart_contents' );

                    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                        $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
                        $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

                        if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
                            $product_name      = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
                            $thumbnail         = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
                            $product_price     = apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key );
                            $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );

                            if ( empty( $product_permalink ) ) {
                                $product_name = '<span class="nm-cart-panel-product-title">' . wp_kses_post( $product_name ) . '</span>';
                            } else {
                                $product_permalink = esc_url( $product_permalink );
                                $thumbnail = '<a href="' . $product_permalink . '">' . $thumbnail . '</a>';
                                $product_name = '<a href="' . $product_permalink . '" class="nm-cart-panel-product-title">' . wp_kses_post( $product_name ) . '</a>';
                            }

                            $product = wc_get_product($product_id);

                            ?>
                            <li id="nm-cart-panel-item-<?php echo esc_attr( $cart_item_key ); ?>" class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
                                <div class="nm-cart-panel-item-thumbnail">
                                    <div class="nm-cart-item-loader nm-loader"></div>
                                    <div class="nm-cart-panel-thumbnail-wrap">
                                        <?php echo $thumbnail; ?>
                                        <div class="nm-cart-panel-thumbnail-loader nm-loader"></div>
                                    </div>
                                </div>
                                <div class="nm-cart-panel-item-details">
                                    <?php echo apply_filters( 'woocommerce_cart_item_remove_link',
                                        sprintf(
                                            '<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s"><i class="nm-font nm-font-close2"></i></a>',
                                            esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
                                            esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
                                            esc_attr( $product_id ),
                                            esc_attr( $cart_item_key ),
                                            esc_attr( $_product->get_sku() )
                                        ), $cart_item_key );
                                    ?>
                                    <?php echo $product_name; ?>
                                    <?php echo wc_get_formatted_cart_item_data( $cart_item ); ?>
                                    <div class="nm-cart-panel-quantity-pricing">
                                        <?php if ( $_product->is_sold_individually() ) : ?>
                                            <?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . esc_html__( 'Qty', 'woocommerce' ) . ': ' . $cart_item['quantity'] . '</span>', $cart_item, $cart_item_key ); ?>
                                        <?php else: ?>
                                            <div class="product-quantity" data-title="<?php esc_html_e( 'Quantity', 'woocommerce' ); ?>">
                                                <?php
                                                    $product_quantity = woocommerce_quantity_input( array(
                                                        'input_name'  => "cart[{$cart_item_key}][qty]",
                                                        'input_value' => $cart_item['quantity'],
                                                        'max_value'   => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(),
                                                        'min_value'   => '1',
                                                        'nm_mini_cart_quantity' => true 
                                                    ), $_product, false );

                                                    echo apply_filters( 'woocommerce_widget_cart_item_quantity', $product_quantity, $cart_item, $cart_item_key );
                                                ?>
                                            </div>
                                        <?php endif; ?>

                                        <div class="nm-cart-panel-item-price">
                                            <?php if ( $price_html = $product->get_price_html() ) : ?>
                                                <span class="price"><?php echo $price_html; ?></span>
                                            <?php endif; ?>
                                        </div>
                                    </div>
                                </div>
                            </li>
                            <?php
                        }
                    }

                    do_action( 'woocommerce_review_order_after_cart_contents' );
                ?>
            <?php else: ?>
                <li class="empty">
                    <i class="nm-font nm-font-close2"></i>
                    <span><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></span>
                </li>
            <?php endif; ?>
        </ul>

        <?php do_action( 'woocommerce_custom_checkout_counpon' ); ?>
        <table class="shop_table">
            <tfoot>
                <tr class="cart-subtotal">
                    <th><?php esc_html_e( 'Subtotal', 'woocommerce' ); ?></th>
                    <td><?php wc_cart_totals_subtotal_html(); ?></td>
                </tr>

                <?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>
                    <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
                        <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
                        <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
                    </tr>
                <?php endforeach; ?>

                <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
				<?php
				// Get available shipping methods
				$available_methods = WC()->shipping->get_packages()[0]['rates'];
				$chosen_methods = WC()->session->get('chosen_shipping_methods');
				$chosen_method = !empty($chosen_methods[0]) ? $chosen_methods[0] : '';

				// Only display the chosen method
				if (!empty($available_methods[$chosen_method])) {
					echo '<tr class="shipping">';
					echo '<th>' . esc_html__('Shipping', 'woocommerce') . '</th>';
					echo '<td data-title="Shipping">' . wp_kses_post($available_methods[$chosen_method]->label . ': ' . wc_price($available_methods[$chosen_method]->cost)) . '</td>';
					echo '</tr>';
				}
				?>
			<?php endif; ?>


                <?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
                    <tr class="fee">
                        <th><?php echo esc_html( $fee->name ); ?></th>
                        <td><?php wc_cart_totals_fee_html( $fee ); ?></td>
                    </tr>
                <?php endforeach; ?>

                <?php if ( wc_tax_enabled() && ! WC()->cart->display_prices_including_tax() ) : ?>
                    <?php if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?>
                        <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>
                            <tr class="tax-rate tax-rate-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
                                <th><?php echo esc_html( $tax->label ); ?></th>
                                <td><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else : ?>
                        <tr class="tax-total">
                            <th><?php echo esc_html( WC()->countries->tax_or_vat() ); ?></th>
                            <td><?php wc_cart_totals_taxes_total_html(); ?></td>
                        </tr>
                    <?php endif; ?>
                <?php endif; ?>

                <?php do_action( 'woocommerce_review_order_before_order_total' ); ?>

                <tr class="order-total">
                    <th><?php esc_html_e( 'Total', 'woocommerce' ); ?></th>
                    <td><?php wc_cart_totals_order_total_html(); ?></td>
                </tr>

                <?php do_action( 'woocommerce_review_order_after_order_total' ); ?>
            </tfoot>
        </table>
    </div>
</div>


WITH RECURSIVE date_range AS (
    SELECT date'2019-01-03' dateval, 0 mes  /*start date, use cast(? as date) if you need a parameter */
    FROM rdb$database
    UNION ALL 
    SELECT DATEADD(MONTH,1,dateval), mes + 1
    FROM date_range
    WHERE mes < 12 /* end date */
)
SELECT *
FROM date_range;
void merge(int *arr, int s, int e) {
  int mid = s + (e - s) / 2;
  int len1 = mid - s + 1;
  int len2 = e - mid;
  int *first = new int[len1];
  int *second = new int[len2];

  // copy vales
  int mainArrayIndex = s;
  for (int i = 0; i < len1; i++) {
    first[i] = arr[mainArrayIndex++];
  }
  mainArrayIndex = mid + 1;
  for (int i = 0; i < len2; i++) {
    second[i] = arr[mainArrayIndex++];
  }

  // merge 2 sorted arrays
  int index1 = 0;
  int index2 = 0;
  mainArrayIndex = s;
  while (index1 < len1 && index2 < len2) {
    if (first[index1] < second[index2]) {
      arr[mainArrayIndex++] = first[index1++];
    } else {
      arr[mainArrayIndex++] = second[index2++];
    }
  }
  while (index1 < len1) {
    arr[mainArrayIndex++] = first[index1++];
  }
  while (index2 < len2) {
    arr[mainArrayIndex++] = second[index2++];
  }
}

void mergeSort(int *arr, int s, int e) {
  if (s >= e) {
    return;
  }
  int mid = s + (e - s) / 2;
  // left  part
  mergeSort(arr, s, mid);
  // right part
  mergeSort(arr, mid + 1, e);
  // merge
  merge(arr, s, e);
}
Product	Year	Version	Product Keys
Visual Studio 2022	2022	17.x	Professional:
 	 	 	TD244-P4NB7-YQ6XK-Y8MMM-YWV2J
 	 	 	Enterprise:
 	 	 	VHF9H-NXBBB-638P6-6JHCY-88JWH
Visual Studio 2020	2020	 	HG8FD-DR6F8-T7G9Y-H80UI-9NUB8
 	 	 	YV7T8-R6C8R-C6VT9-7GBHY-80NUJ
 	 	 	T6RX5-EZXCR-6VT7B-Y80NU-HBGVF
 	 	 	CDX5X-7E5CR-86VT7-9BY9V-7TC8R
Visual Studio 2019	2019	16.x	Professional:
 	 	 	NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y
 	 	 	Enterprise:
 	 	 	BF8Y8-GN2QH-T84XB-QVY3B-RC4DF
Visual Studio 2017	2017	15.x	Test Professional:
 	 	 	VG622-NKFP4-GTWPH-XB2JJ-JFHVF
 	 	 	Professional:
 	 	 	KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
 	 	 	4F3PR-NFKDB-8HFP7-9WXGY-K77T7
 	 	 	Enterprise:
 	 	 	NJVYC-BMHX2-G77MM-4XJMR-6Q8QF
 	 	 	N2VYX-9VR2K-T733M-MWD9X-KQCDF
Visual Studio 2015	2015	14.x	Professional:
 	 	 	HMGNV-WCYXV-X7G9W-YCX63-B98R2
 	 	 	Enterprise:
 	 	 	HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
 	 	 	2XNFG-KFHR8-QV3CP-3W6HT-683CH
 	 	 	Team Foundation Server:
 	 	 	PTBNK-HVGCM-HB2GW-MXWMH-T3BJQ
Visual Studio 2013	2013	12.x	Professional:
 	 	 	XDM3T-W3T3V-MGJWK-8BFVD-GVPKY
 	 	 	Premium:
 	 	 	FBJVC-3CMTX-D8DVP-RTQCT-92494
 	 	 	Ultimate:
 	 	 	BWG7X-J98B3-W34RT-33B3R-JVYW9
 	 	 	Team Foundation Server:
 	 	 	MHG9J-HHHX9-WWPQP-D8T7H-7KCQG
Visual Studio 2012	2012	11.x	Professional:
 	 	 	4D974-9QX42-9Y43G-YJ7JG-JDYBP
 	 	 	Premium:
 	 	 	MH2FR-BC9R2-84433-47M63-KQVWC
 	 	 	Ultimate:
 	 	 	YKCW6-BPFPF-BT8C9-7DCTH-QXGWC
 	 	 	RBCXF-CVBGR-382MK-DFHJ4-C69G8
 	 	 	YQ7PR-QTHDM-HCBCV-9GKGG-TB2TM
 	 	 	MMVJ9-FKY74-W449Y-RB79G-8GJGJ
 	 	 	YCFHQ-9DWCY-DKV88-T2TMH-G7BHP
 	 	 	Team Foundation Server:
 	 	 	BVGTF-T7MVR-TP46H-9Q97G-XBXRB
Visual Studio 2010	2010	10.x	Professional/Ultimate (built-in or below):
 	 	 	YCFHQ-9DWCY-DKV88-T2TMH-G7BHP
Visual Studio 2008	2007	9.x	Express: Not required
 	 	 	Professional:
 	 	 	XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT
 	 	 	WPX3J-BXC3W-BPYWP-PJ8CM-F7M8T
 	 	 	PYHYP-WXB3B-B2CCM-V9DX9-VDY8T
 	 	 	WPDW8-M962C-VJX9M-HQB4Q-JVTDM
Visual Studio 2005	2005	8.x	Express: Not required
 	 	 	Standard: Not required
 	 	 	Professional:
 	 	 	KGR3T-F2C26-RRTGT-D6DQT-QBBB3
Visual Studio 6.0	1998	6.x	111-1111111
 	 	 	123456789
 	 	 	1234567890
 
has context menu
star

Tue Jul 16 2024 16:14:18 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #json

star

Tue Jul 16 2024 16:13:47 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #json

star

Tue Jul 16 2024 16:12:45 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:11:36 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:05:41 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:03:39 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:03:09 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:02:33 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:02:14 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 16:01:40 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak

star

Tue Jul 16 2024 16:01:14 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak

star

Tue Jul 16 2024 15:06:44 GMT+0000 (Coordinated Universal Time)

@shirnunn

star

Tue Jul 16 2024 12:39:58 GMT+0000 (Coordinated Universal Time)

@faizan

star

Tue Jul 16 2024 12:29:50 GMT+0000 (Coordinated Universal Time)

@iamkatmakhafola

star

Tue Jul 16 2024 10:54:42 GMT+0000 (Coordinated Universal Time) https://firebase.flutter.dev/

@zemax_c4 ##flutter

star

Tue Jul 16 2024 10:38:09 GMT+0000 (Coordinated Universal Time)

@iamkatmakhafola

star

Tue Jul 16 2024 09:37:45 GMT+0000 (Coordinated Universal Time)

@manhmd #java

star

Tue Jul 16 2024 07:29:05 GMT+0000 (Coordinated Universal Time)

@vchiranjeeviak #python

star

Tue Jul 16 2024 05:32:50 GMT+0000 (Coordinated Universal Time)

@projectrock

star

Tue Jul 16 2024 05:20:18 GMT+0000 (Coordinated Universal Time)

@mehran

star

Tue Jul 16 2024 04:57:54 GMT+0000 (Coordinated Universal Time) https://htm-rapportage.eu.qlikcloud.com/sense/app/94a43354-5dc8-4f20-9b21-4f048ab5ab0f/sheet/294e3589-bf5b-4ac7-bc23-f4e9c827fd6e/state/edit

@bogeyboogaard

star

Mon Jul 15 2024 20:13:09 GMT+0000 (Coordinated Universal Time)

@zaki

star

Mon Jul 15 2024 18:31:53 GMT+0000 (Coordinated Universal Time)

@mehran

star

Mon Jul 15 2024 17:15:20 GMT+0000 (Coordinated Universal Time) https://klitmo.com/elementor/elementor-remove-the-bottom-space-from-the-text-editor-and-paragraph/

@webisko #css

star

Mon Jul 15 2024 17:05:09 GMT+0000 (Coordinated Universal Time)

@Curable1600 #windows #browsers #youtube

star

Mon Jul 15 2024 16:33:08 GMT+0000 (Coordinated Universal Time) https://open.uom.lk/lms/mod/quiz/attempt.php?attempt

@Menuka

star

Mon Jul 15 2024 15:33:24 GMT+0000 (Coordinated Universal Time)

@jrg_300i #undefined

star

Mon Jul 15 2024 15:27:35 GMT+0000 (Coordinated Universal Time)

@quanganh141220 #php #single #product

star

Mon Jul 15 2024 15:10:56 GMT+0000 (Coordinated Universal Time)

@lettuceranger #github #vs-code #commandline

star

Mon Jul 15 2024 15:04:06 GMT+0000 (Coordinated Universal Time) https://v17.angular.io/guide/i18n-optional-manage-marked-text

@lettuceranger #angular #lokalise #key-names

star

Mon Jul 15 2024 14:59:49 GMT+0000 (Coordinated Universal Time)

@nishpod

star

Mon Jul 15 2024 14:59:39 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/9562304/git-github-commit-with-extended-message-description?newreg

@lettuceranger #commandline #github

star

Mon Jul 15 2024 10:24:13 GMT+0000 (Coordinated Universal Time)

@peterteszary #php

star

Mon Jul 15 2024 09:45:46 GMT+0000 (Coordinated Universal Time)

@signup

star

Mon Jul 15 2024 09:35:23 GMT+0000 (Coordinated Universal Time)

@Zohaib77 #react.js

star

Mon Jul 15 2024 09:33:40 GMT+0000 (Coordinated Universal Time)

@Zohaib77 #react.js

star

Mon Jul 15 2024 08:55:48 GMT+0000 (Coordinated Universal Time) https://spring.academy/courses/building-a-rest-api-with-spring-boot/lessons/data-contracts

@Mannan2105

star

Mon Jul 15 2024 03:51:54 GMT+0000 (Coordinated Universal Time)

@NoFox420 #javascript

star

Mon Jul 15 2024 02:24:11 GMT+0000 (Coordinated Universal Time)

@NoFox420 #javascript

star

Mon Jul 15 2024 01:05:52 GMT+0000 (Coordinated Universal Time)

@vishalsingh21

star

Sun Jul 14 2024 23:28:21 GMT+0000 (Coordinated Universal Time) https://gunsbuyerusa.com/product-category/ak47-ak74-rifles-and-pistols-for-sale/

@ak74uforsale

star

Sun Jul 14 2024 22:49:59 GMT+0000 (Coordinated Universal Time) https://www.rock-chips.com/a/cn/product/RK32xilie/2016/1109/798.html

@Dewaldt

star

Sun Jul 14 2024 22:44:01 GMT+0000 (Coordinated Universal Time) https://www.rock-chips.com/a/cn/product/rkpower/2017/0308/834.html

@Dewaldt

star

Sun Jul 14 2024 19:34:39 GMT+0000 (Coordinated Universal Time) https://csshero.org/mesher/

@webisko #css

star

Sun Jul 14 2024 15:32:24 GMT+0000 (Coordinated Universal Time)

@ishwarpatel100 #tailwind

star

Sun Jul 14 2024 15:14:49 GMT+0000 (Coordinated Universal Time) https://chatgpt.com/c/66391479-3f97-4db8-a2fe-2b8817ba3dcc

@ishwarpatel100

star

Sun Jul 14 2024 15:13:57 GMT+0000 (Coordinated Universal Time)

@quanganh141220 #php #single #product

star

Sun Jul 14 2024 14:05:37 GMT+0000 (Coordinated Universal Time) https://youtu.be/cdHEpbBVjRM?list=PLDzeHZWIZsTryvtXdMr6rPh4IDexB5NIA

@vishnu_jha #c++ #dsa #recursion #string #mergesort

star

Sun Jul 14 2024 13:03:21 GMT+0000 (Coordinated Universal Time)

@MinaTimo

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension