@nebula.js/sn-action-button 1.12.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sn-action-button.js","sources":["../src/object-properties.js","../src/data.js","../src/utils/actions.js","../src/utils/util.js","../src/utils/navigation-actions.js","../src/utils/property-resolver.js","../src/utils/conversion.js","../src/utils/lui-icons.js","../src/ext.js","../src/utils/css-colors.js","../src/utils/color-utils.js","../src/utils/url-utils.js","../src/utils/style-formatter.js","../src/components/action-button.js","../src/index.js"],"sourcesContent":["const properties = {\n /**\n * @type {boolean}\n */\n showTitles: false,\n /**\n * @type {string}\n */\n title: '',\n /**\n * @type {string}\n */\n subtitle: '',\n /**\n * @type {string}\n */\n footnote: '',\n /**\n * @type {boolean}\n */\n useEnabledCondition: false,\n /**\n * @type {number}\n */\n enabledCondition: 1,\n /**\n * @type {object}\n */\n navigation: {\n action: 'none',\n },\n /**\n * @type {object}\n */\n style: {\n /**\n * @type {string}\n */\n label: 'Button',\n /**\n * @type {object}\n */\n font: {\n /**\n * @type {number}\n */\n size: 0.5,\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n /**\n * @type {object}\n */\n style: {\n bold: true,\n italic: false,\n underline: false,\n },\n /**\n * @type {string}\n */\n align: 'center',\n },\n /**\n * @type {object}\n */\n background: {\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n /**\n * @type {boolean}\n */\n useImage: false,\n /**\n * @type {object}\n */\n url: {\n /**\n * @type {object}\n */\n qStaticContentUrlDef: {\n /**\n * @type {string}\n */\n qUrl: '',\n },\n },\n /**\n * @type {string}\n */\n size: 'auto',\n /**\n * @type {string}\n */\n position: 'centerCenter',\n },\n /**\n * @type {object}\n */\n border: {\n /**\n * @type {boolean}\n */\n useBorder: false,\n /**\n * @type {number}\n */\n radius: 0,\n /**\n * @type {number}\n */\n width: 0,\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n },\n /**\n * @type {object}\n */\n icon: {\n /**\n * @type {boolean}\n */\n useIcon: false,\n /**\n * @type {string}\n */\n iconType: '',\n /**\n * @type {string}\n */\n position: 'left',\n },\n },\n /**\n * @type {array}\n */\n actions: [],\n};\n\nexport default properties;\n","export default {\n targets: [],\n};\n","export const getValueList = async (app, values, isDate) => {\n let valuesArray = values.split(';');\n if (isDate) {\n let dateExpression = '';\n valuesArray.forEach((date) => {\n dateExpression += `Num('${date}')&';'&`;\n });\n const convertedDates = await app.evaluate(dateExpression.slice(0, -5));\n valuesArray = convertedDates.split(';');\n }\n return valuesArray.map((value) => (Number.isNaN(+value) ? { qText: value } : { qIsNumeric: true, qNumber: Number(value) }));\n};\n\nconst actions = [\n {\n value: 'applyBookmark',\n translation: 'Object.ActionButton.ApplyBookmark',\n group: 'bookmark',\n getActionCall: ({ app, bookmark }) => async () => {\n const bookMarks = await app.getBookmarkList();\n const findBm = bookMarks.find((bm) => bm.qData.title === bookmark);\n bookmark && (await app.applyBookmark((findBm && findBm.qInfo && findBm.qInfo.qId) || bookmark));\n },\n requiredInput: ['bookmark'],\n },\n {\n value: 'back',\n translation: 'Object.ActionButton.MoveBackward',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.back();\n },\n requiredInput: [],\n },\n {\n value: 'forward',\n translation: 'Object.ActionButton.MoveForward',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.forward();\n },\n requiredInput: [],\n },\n {\n value: 'clearAll',\n translation: 'Object.ActionButton.ClearAll',\n group: 'selection',\n getActionCall: ({ app, softLock }) => async () => {\n await app.clearAll(softLock);\n },\n requiredInput: ['softLock'],\n },\n {\n value: 'clearAllButThis',\n translation: 'Object.ActionButton.ClearAllButThis',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.clearAllButThis(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'clearField',\n translation: 'Object.ActionButton.ClearSelectionInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.clear();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'selectAll',\n translation: 'Object.ActionButton.SelectAllInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectAll(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectValues',\n translation: 'Object.ActionButton.SelectValuesInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n const fieldInfo = await app.getFieldDescription(field);\n const valueList = await getValueList(app, value, fieldInfo.qTags.includes('$date'));\n await fieldObj.selectValues(valueList, false, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'selectMatchingValues',\n translation: 'Object.ActionButton.SelectMatchingValues',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.select(value, false, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'selectAlternative',\n translation: 'Object.ActionButton.SelectAlternatives',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectAlternative(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectExcluded',\n translation: 'Object.ActionButton.SelectExcluded',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectExcluded(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectPossible',\n translation: 'Object.ActionButton.SelectPossibleValues',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectPossible(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'toggleSelect',\n translation: 'Object.ActionButton.ToggleFieldSelection',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.toggleSelect(value, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'lockAll',\n translation: 'Object.ActionButton.LockAllSelections',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.lockAll();\n },\n requiredInput: [],\n },\n {\n value: 'lockField',\n translation: 'Object.ActionButton.LockField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.lock();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'unlockAll',\n translation: 'Object.ActionButton.UnlockAllSelections',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.unlockAll();\n },\n requiredInput: [],\n },\n {\n value: 'unlockField',\n translation: 'Object.ActionButton.UnlockAField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.unlock();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'setVariable',\n translation: 'Object.ActionButton.SetVariable',\n group: 'variables',\n getActionCall: ({ app, variable, value }) => async () => {\n if (variable && value) {\n try {\n const variableObj = await app.getVariableByName(variable);\n await variableObj.setStringValue(value);\n } catch (e) {\n // no-op\n }\n }\n },\n requiredInput: ['variable', 'value'],\n },\n {\n value: 'doReload',\n translation: 'Object.ActionButton.DoReload',\n group: 'reload',\n getActionCall: ({ app, partial }) => async () => {\n const e = await app.doReload(0, !!partial, false);\n if (e) {\n await app.doSave();\n }\n },\n requiredInput: ['partial'],\n },\n];\n\nexport function checkShowAction(data, field) {\n const act = actions.find((action) => data.actionType === action.value);\n return act && act.requiredInput && act.requiredInput.indexOf(field) !== -1;\n}\n\nexport default actions;\n","function evaluateCondition(condition) {\n // case condition is commented\n if (condition && condition.length >= 2 && condition[0] === '/' && condition[1] === '/') {\n return true;\n }\n // convert to numeric with -1 (true) as the default\n const condVal = condition ? +condition : -1;\n // handle the string 'true' as true and all other strings as false\n if (Number.isNaN(+condVal)) {\n return condition.toLowerCase() === 'true';\n }\n return condVal !== 0;\n}\n\nexport default { evaluateCondition };\n","import Util from './util';\n\nconst inIframe = () => {\n try {\n return window.self !== window.top;\n } catch (error) {\n return true;\n }\n};\n\nexport const getOrderedSheets = async (app) => {\n const sheets = await app.getSheetList();\n return sheets.sort((current, next) => current.qData.rank - next.qData.rank);\n};\n\nexport const getOrderedVisibleSheet = async (app) => {\n const sheets = await app.getSheetList();\n const visibleSheets = sheets.filter((sheet) => Util.evaluateCondition(sheet.qData.showCondition));\n return visibleSheets.sort((current, next) => current.qData.rank - next.qData.rank);\n};\n\nconst navigationActions = [\n {\n translation: 'Object.ActionButton.NoNavigation',\n value: 'none',\n },\n {\n translation: 'Object.ActionButton.GoToNextSheet',\n value: 'nextSheet',\n navigationCall: async ({ senseNavigation }) => {\n await senseNavigation.nextSheet();\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToPreviousSheet',\n value: 'prevSheet',\n navigationCall: async ({ senseNavigation }) => {\n await senseNavigation.prevSheet();\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToLastSheet',\n value: 'lastSheet',\n navigationCall: async ({ app, senseNavigation }) => {\n const sheets = await getOrderedVisibleSheet(app);\n await senseNavigation.goToSheet(sheets[sheets.length - 1].qInfo.qId);\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToFirstSheet',\n value: 'firstSheet',\n navigationCall: async ({ app, senseNavigation }) => {\n const sheets = await getOrderedVisibleSheet(app);\n await senseNavigation.goToSheet(sheets[0].qInfo.qId);\n },\n requiredInput: [],\n },\n\n {\n translation: 'Object.ActionButton.GoToASheet',\n value: 'goToSheet',\n navigationCall: async ({ senseNavigation, sheet }) => {\n sheet && (await senseNavigation.goToSheet(sheet));\n },\n // TODO replace by searchable dropdown\n requiredInput: ['sheet'],\n },\n {\n translation: 'Object.ActionButton.GoToSheetById',\n value: 'goToSheetById',\n navigationCall: async ({ senseNavigation, sheet }) => {\n sheet && (await senseNavigation.goToSheet(sheet));\n },\n // TODO replace by searchable dropdown\n requiredInput: ['sheetId'],\n },\n {\n translation: 'Object.ActionButton.GoToStory',\n value: 'goToStory',\n navigationCall: async ({ senseNavigation, story }) => {\n story && (await senseNavigation.goToStory(story));\n },\n requiredInput: ['story'],\n },\n {\n translation: 'Object.ActionButton.OpenWebsiteEmail',\n value: 'openWebsite',\n navigationCall: async ({ websiteUrl, sameWindow }) => {\n try {\n if (websiteUrl) {\n const url = websiteUrl.match(/^(https?:\\/\\/|mailto:)/) ? websiteUrl : `http://${websiteUrl}`;\n let target = '';\n if (sameWindow) {\n target = inIframe() ? '_parent' : '_self';\n }\n window.open(url, target);\n }\n } catch (error) {\n // no-op\n }\n },\n requiredInput: ['websiteUrl'],\n },\n];\n\nexport const checkShowNavigation = (data, field) => {\n const nav = navigationActions.find((navigation) => data.navigation.action === navigation.value);\n return nav && nav.requiredInput && nav.requiredInput.indexOf(field) !== -1;\n};\n\nexport default navigationActions;\n","function getValue(dataContainer, reference, defaultValue) {\n const steps = reference.split('.');\n let i;\n if (dataContainer === undefined) {\n return defaultValue;\n }\n for (i = 0; i < steps.length; ++i) {\n if (typeof dataContainer[steps[i]] === 'undefined') {\n return defaultValue;\n }\n dataContainer = dataContainer[steps[i]];\n }\n\n return dataContainer;\n}\n\nexport default {\n getValue,\n};\n","export function convertAction(action, newProperties) {\n const newAction = {\n actionType: action.actionType,\n bookmark: action.selectedBookmark,\n // Will need to convert field selected by expression\n field: action.selectedField,\n // Need to convert expression for variable\n variable: action.variable,\n value: action.value,\n softLock: action.softLock,\n cId: action.cId,\n };\n switch (action.actionType) {\n case 'clearOther':\n newAction.actionType = 'clearAllButThis';\n break;\n case 'unlockAllAndClearAll':\n newAction.actionType = 'clearAll';\n newAction.softLock = true;\n break;\n case 'selectField':\n newAction.actionType = 'selectMatchingValues';\n break;\n case 'selectAndLockField':\n newProperties.actions.push({ ...newAction, cId: null, actionType: 'selectMatchingValues' });\n newAction.actionType = 'lockField';\n break;\n default:\n break;\n }\n return newProperties.actions.push(newAction);\n}\n\nexport function convertNavigation(oldType) {\n switch (oldType) {\n case 'gotoSheet':\n return 'goToSheet';\n case 'gotoSheetById':\n return 'goToSheetById';\n case 'gotoStory':\n return 'goToStory';\n case 'switchToEdit':\n return 'none';\n default:\n return oldType;\n }\n}\n\nconst importProperties = (exportedFmt, initialProperties) => {\n const newPropertyTree = { qChildren: [] };\n const newProperties = {\n actions: [],\n // Adding props to avoid errors from old navigation button. Converting to any other chart will still give these errors\n props: { useEnabledCondition: null, fullWidth: 'auto' },\n qLayoutExclude: { disabled: {} },\n ...initialProperties,\n };\n\n if (exportedFmt && exportedFmt.properties.visualization === 'qlik-button-for-navigation') {\n Object.keys(exportedFmt.properties).forEach(key => {\n let props;\n switch (key) {\n case 'props':\n props = exportedFmt.properties[key];\n newProperties.style.label = props.buttonLabel;\n newProperties.style.icon.useIcon = props.buttonShowIcon;\n newProperties.style.icon.iconType = props.buttonIconLui;\n newProperties.style.font.align = props.buttonTextAlign;\n newProperties.useEnabledCondition = props.useEnabledCondition;\n newProperties.enabledCondition = props.enabledCondition;\n props.actionItems &&\n props.actionItems.forEach(actionItem => {\n convertAction(actionItem, newProperties);\n });\n newProperties.navigation = {\n action: convertNavigation(props.navigationAction),\n // Need to convert sheet from expression\n sheet: props.navigationAction === 'gotoSheetById' ? props.sheetId : props.selectedSheet,\n story: props.selectedStory,\n websiteUrl: props.websiteUrl,\n sameWindow: props.sameWindow,\n };\n break;\n case 'qStateName':\n case 'showTitles':\n case 'title':\n case 'subtitle':\n case 'footnote':\n newProperties[key] = exportedFmt.properties[key];\n break;\n default:\n break;\n }\n });\n }\n newPropertyTree.qProperty = newProperties;\n return newPropertyTree;\n};\n\nexport default importProperties;\n","export default [\n {\n value: 'image',\n icon: 'image',\n label: 'Image',\n },\n {\n value: 'back',\n icon: 'back',\n label: 'Back',\n },\n {\n value: 'forward',\n icon: 'forward',\n label: 'Forward',\n },\n {\n value: 'history',\n icon: 'history',\n label: 'History',\n },\n {\n value: 'help',\n icon: 'help',\n label: 'Help',\n },\n {\n value: 'info',\n icon: 'info',\n label: 'Info',\n },\n {\n value: 'text',\n icon: 'text',\n label: 'Text',\n },\n {\n value: 'group',\n icon: 'group',\n label: 'Group',\n },\n {\n value: 'search',\n icon: 'search',\n label: 'Search',\n },\n {\n value: 'zoom-in',\n icon: 'zoom-in',\n label: 'Zoom in',\n },\n {\n value: 'zoom-out',\n icon: 'zoom-out',\n label: 'Zoom out',\n },\n {\n value: 'export',\n icon: 'export',\n label: 'Export',\n },\n {\n value: 'import',\n icon: 'import',\n label: 'Import',\n },\n {\n value: 'field',\n icon: 'field',\n label: 'Field',\n },\n {\n value: 'lock',\n icon: 'lock',\n label: 'Lock',\n },\n {\n value: 'unlock',\n icon: 'unlock',\n label: 'Unlock',\n },\n {\n value: 'database',\n icon: 'database',\n label: 'Database',\n },\n {\n value: 'calendar',\n icon: 'calendar',\n label: 'Calendar',\n },\n {\n value: 'bookmark',\n icon: 'bookmark',\n label: 'Bookmark',\n },\n {\n value: 'library',\n icon: 'library',\n label: 'Library',\n },\n {\n value: 'star',\n icon: 'star',\n label: 'Star',\n },\n {\n value: 'print',\n icon: 'print',\n label: 'Print',\n },\n {\n value: 'remove',\n icon: 'remove',\n label: 'Remove',\n },\n {\n value: 'handle',\n icon: 'handle',\n label: 'Handle',\n },\n {\n value: 'handle-horizontal',\n icon: 'handle-horizontal',\n label: 'Handle horizontal',\n },\n {\n value: 'menu',\n icon: 'menu',\n label: 'Menu',\n },\n {\n value: 'list',\n icon: 'list',\n label: 'List',\n },\n {\n value: 'unordered-list',\n icon: 'unordered-list',\n label: 'Unordered list',\n },\n {\n value: 'clock',\n icon: 'clock',\n label: 'Clock',\n },\n {\n value: 'puzzle',\n icon: 'puzzle',\n label: 'Puzzle',\n },\n {\n value: 'filterpane',\n icon: 'filterpane',\n label: 'Filterpane',\n },\n {\n value: 'plus',\n icon: 'plus',\n label: 'Plus',\n },\n {\n value: 'minus',\n icon: 'minus',\n label: 'Minus',\n },\n {\n value: 'triangle-top',\n icon: 'triangle-top',\n label: 'Triangle top',\n },\n {\n value: 'triangle-bottom',\n icon: 'triangle-bottom',\n label: 'Triangle bottom',\n },\n {\n value: 'triangle-left',\n icon: 'triangle-left',\n label: 'Triangle left',\n },\n {\n value: 'triangle-right',\n icon: 'triangle-right',\n label: 'Triangle right',\n },\n {\n value: 'tick',\n icon: 'tick',\n label: 'Tick',\n },\n {\n value: 'cogwheel',\n icon: 'cogwheel',\n label: 'Cogwheel',\n },\n {\n value: 'settings',\n icon: 'settings',\n label: 'Settings',\n },\n {\n value: 'cut',\n icon: 'cut',\n label: 'Cut',\n },\n {\n value: 'copy',\n icon: 'copy',\n label: 'Copy',\n },\n {\n value: 'paste',\n icon: 'paste',\n label: 'Paste',\n },\n {\n value: 'camera',\n icon: 'camera',\n label: 'Camera',\n },\n {\n value: 'slide-show',\n icon: 'slide-show',\n label: 'Slide show',\n },\n {\n value: 'palette',\n icon: 'palette',\n label: 'Palette',\n },\n {\n value: 'shapes',\n icon: 'shapes',\n label: 'Shapes',\n },\n {\n value: 'effects',\n icon: 'effects',\n label: 'Effects',\n },\n {\n value: 'file',\n icon: 'file',\n label: 'File',\n },\n {\n value: 'expand',\n icon: 'expand',\n label: 'Expand',\n },\n {\n value: 'collapse',\n icon: 'collapse',\n label: 'Collapse',\n },\n {\n value: 'bin',\n icon: 'bin',\n label: 'Bin',\n },\n {\n value: 'link',\n icon: 'link',\n label: 'Link',\n },\n {\n value: 'pivot',\n icon: 'pivot',\n label: 'Pivot',\n },\n {\n value: 'reload',\n icon: 'reload',\n label: 'Reload',\n },\n {\n value: 'add',\n icon: 'add',\n label: 'Add',\n },\n {\n value: 'edit',\n icon: 'edit',\n label: 'Edit',\n },\n {\n value: 'key',\n icon: 'key',\n label: 'Key',\n },\n {\n value: 'box',\n icon: 'box',\n label: 'Box',\n },\n {\n value: 'home',\n icon: 'home',\n label: 'Home',\n },\n {\n value: 'person',\n icon: 'person',\n label: 'Person',\n },\n {\n value: 'grid',\n icon: 'grid',\n label: 'Grid',\n },\n {\n value: 'cloud',\n icon: 'cloud',\n label: 'Cloud',\n },\n {\n value: 'more',\n icon: 'more',\n label: 'More',\n },\n {\n value: 'folder',\n icon: 'folder',\n label: 'Folder',\n },\n {\n value: 'drop',\n icon: 'drop',\n label: 'Drop',\n },\n {\n value: 'play',\n icon: 'play',\n label: 'Play',\n },\n {\n value: 'tag',\n icon: 'tag',\n label: 'Tag',\n },\n {\n value: 'close',\n icon: 'close',\n label: 'Close',\n },\n {\n value: 'warning',\n icon: 'warning',\n label: 'Warning',\n },\n {\n value: 'warning-triangle',\n icon: 'warning-triangle',\n label: 'Warning triangle',\n },\n {\n value: 'share',\n icon: 'share',\n label: 'Share',\n },\n {\n value: 'top',\n icon: 'top',\n label: 'Top',\n },\n {\n value: 'low-resolution',\n icon: 'low-resolution',\n label: 'Low resolution',\n },\n {\n value: 'high-resolution',\n icon: 'high-resolution',\n label: 'High resolution',\n },\n {\n value: 'view',\n icon: 'view',\n label: 'View',\n },\n {\n value: 'control',\n icon: 'control',\n label: 'Control',\n },\n {\n value: 'code',\n icon: 'code',\n label: 'Code',\n },\n {\n value: 'upload',\n icon: 'upload',\n label: 'Upload',\n },\n {\n value: 'repair',\n icon: 'repair',\n label: 'Repair',\n },\n {\n value: 'split',\n icon: 'split',\n label: 'Split',\n },\n {\n value: 'up-down',\n icon: 'up-down',\n label: 'Up down',\n },\n {\n value: 'disconnect',\n icon: 'disconnect',\n label: 'Disconnect',\n },\n {\n value: 'photo-library',\n icon: 'photo-library',\n label: 'Photo library',\n },\n {\n value: 'application',\n icon: 'application',\n label: 'Application',\n },\n {\n value: 'new-tab',\n icon: 'new-tab',\n label: 'New tab',\n },\n {\n value: 'ascending',\n icon: 'ascending',\n label: 'Ascending',\n },\n {\n value: 'descending',\n icon: 'descending',\n label: 'Descending',\n },\n {\n value: 'arrow-up',\n icon: 'arrow-up',\n label: 'Arrow up',\n },\n {\n value: 'arrow-down',\n icon: 'arrow-down',\n label: 'Arrow down',\n },\n {\n value: 'arrow-right',\n icon: 'arrow-right',\n label: 'Arrow right',\n },\n {\n value: 'arrow-left',\n icon: 'arrow-left',\n label: 'Arrow left',\n },\n {\n value: 'sync',\n icon: 'sync',\n label: 'Sync',\n },\n {\n value: 'draggable',\n icon: 'draggable',\n label: 'Draggable',\n },\n {\n value: 'book',\n icon: 'book',\n label: 'Book',\n },\n {\n value: 'measure',\n icon: 'measure',\n label: 'Measure',\n },\n {\n value: 'download',\n icon: 'download',\n label: 'Download',\n },\n {\n value: 'more-rounded',\n icon: 'more-rounded',\n label: 'More rounded',\n },\n {\n value: 'align-object-left',\n icon: 'align-object-left',\n label: 'Align object-left',\n },\n {\n value: 'align-object-center',\n icon: 'align-object-center',\n label: 'Align object-center',\n },\n {\n value: 'align-object-right',\n icon: 'align-object-right',\n label: 'Align object-right',\n },\n {\n value: 'submit',\n icon: 'submit',\n label: 'Submit',\n },\n {\n value: 'operators',\n icon: 'operators',\n label: 'Operators',\n },\n {\n value: 'general-data-class',\n icon: 'general-data-class',\n label: 'General data-class',\n },\n {\n value: 'building',\n icon: 'building',\n label: 'Building',\n },\n {\n value: 'bell',\n icon: 'bell',\n label: 'Bell',\n },\n {\n value: 'unlink',\n icon: 'unlink',\n label: 'Unlink',\n },\n {\n value: 'lightbulb',\n icon: 'lightbulb',\n label: 'Lightbulb',\n },\n {\n value: 'log-in',\n icon: 'log-in',\n label: 'Log in',\n },\n {\n value: 'log-out',\n icon: 'log-out',\n label: 'Log out',\n },\n {\n value: 'previous',\n icon: 'previous',\n label: 'Previous',\n },\n {\n value: 'goto',\n icon: 'goto',\n label: 'Goto',\n },\n {\n value: 'save',\n icon: 'save',\n label: 'Save',\n },\n {\n value: 'pause',\n icon: 'pause',\n label: 'Pause',\n },\n {\n value: 'stop',\n icon: 'stop',\n label: 'Stop',\n },\n {\n value: 'step-in',\n icon: 'step-in',\n label: 'Step in',\n },\n {\n value: 'comment',\n icon: 'comment',\n label: 'Comment',\n },\n {\n value: 'indent',\n icon: 'indent',\n label: 'Indent',\n },\n {\n value: 'undent',\n icon: 'undent',\n label: 'Undent',\n },\n {\n value: 'filter',\n icon: 'filter',\n label: 'Filter',\n },\n {\n value: 'clear-filter',\n icon: 'clear-filter',\n label: 'Clear filter',\n },\n {\n value: 'insert',\n icon: 'insert',\n label: 'Insert',\n },\n {\n value: 'direction-left',\n icon: 'direction-left',\n label: 'Direction left',\n },\n {\n value: 'swap',\n icon: 'swap',\n label: 'Swap',\n },\n {\n value: 'bubbles',\n icon: 'bubbles',\n label: 'Bubbles',\n },\n {\n value: 'sheet',\n icon: 'sheet',\n label: 'Sheet',\n },\n {\n value: 'object',\n icon: 'object',\n label: 'Object',\n },\n {\n value: 'clear-selections',\n icon: 'clear-selections',\n label: 'Clear selections',\n },\n {\n value: 'selections-tool',\n icon: 'selections-tool',\n label: 'Selections tool',\n },\n {\n value: 'selections-reload',\n icon: 'selections-reload',\n label: 'Selections reload',\n },\n {\n value: 'selections-back',\n icon: 'selections-back',\n label: 'Selections back',\n },\n {\n value: 'selections-forward',\n icon: 'selections-forward',\n label: 'Selections forward',\n },\n {\n value: 'expression',\n icon: 'expression',\n label: 'Expression',\n },\n {\n value: 'select-alternative',\n icon: 'select-alternative',\n label: 'Select alternative',\n },\n {\n value: 'select-possible',\n icon: 'select-possible',\n label: 'Select possible',\n },\n {\n value: 'select-excluded',\n icon: 'select-excluded',\n label: 'Select excluded',\n },\n {\n value: 'select-all',\n icon: 'select-all',\n label: 'Select all',\n },\n {\n value: 'bar-chart',\n icon: 'bar-chart',\n label: 'Bar chart',\n },\n {\n value: 'bar-chart-horizontal',\n icon: 'bar-chart-horizontal',\n label: 'Bar chart-horizontal',\n },\n {\n value: 'line-chart',\n icon: 'line-chart',\n label: 'Line chart',\n },\n {\n value: 'pie-chart',\n icon: 'pie-chart',\n label: 'Pie chart',\n },\n {\n value: 'gauge-chart',\n icon: 'gauge-chart',\n label: 'Gauge chart',\n },\n {\n value: 'kpi',\n icon: 'kpi',\n label: 'Kpi',\n },\n {\n value: 'scatter-chart',\n icon: 'scatter-chart',\n label: 'Scatter chart',\n },\n {\n value: 'map',\n icon: 'map',\n label: 'Map',\n },\n {\n value: 'table',\n icon: 'table',\n label: 'Table',\n },\n {\n value: 'pivot-table',\n icon: 'pivot-table',\n label: 'Pivot table',\n },\n {\n value: 'treemap',\n icon: 'treemap',\n label: 'Treemap',\n },\n {\n value: 'combo-chart',\n icon: 'combo-chart',\n label: 'Combo chart',\n },\n {\n value: 'boxplot',\n icon: 'boxplot',\n label: 'Boxplot',\n },\n {\n value: 'distributionplot',\n icon: 'distributionplot',\n label: 'Distributionplot',\n },\n {\n value: 'histogram',\n icon: 'histogram',\n label: 'Histogram',\n },\n {\n value: 'direct-discovery',\n icon: 'direct-discovery',\n label: 'Direct discovery',\n },\n {\n value: 'data-model',\n icon: 'data-model',\n label: 'Data model',\n },\n {\n value: 'script',\n icon: 'script',\n label: 'Script',\n },\n {\n value: 'script-ok',\n icon: 'script-ok',\n label: 'Script ok',\n },\n {\n value: 'debug',\n icon: 'debug',\n label: 'Debug',\n },\n {\n value: 'auto-layout',\n icon: 'auto-layout',\n label: 'Auto layout',\n },\n];\n","import actions, { checkShowAction } from './utils/actions';\nimport navigationActions, { checkShowNavigation } from './utils/navigation-actions';\nimport propertyResolver from './utils/property-resolver';\nimport importProperties from './utils/conversion';\nimport luiIcons from './utils/lui-icons';\n\nconst colorOptions = [\n {\n value: false,\n translation: 'properties.colorMode.primary',\n },\n {\n value: true,\n translation: 'properties.colorMode.byExpression',\n },\n];\n\nconst toggleOptions = [\n {\n value: true,\n translation: 'properties.on',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n];\n\nexport default function ext({ translator }) {\n return {\n definition: {\n type: 'items',\n component: 'accordion',\n items: {\n actions: {\n type: 'items',\n translation: 'Object.ActionButton.ActionsAndNavigation',\n grouped: true,\n items: {\n actions: {\n type: 'array',\n translation: 'Object.ActionButton.Actions',\n ref: 'actions',\n itemTitleRef: (data) => {\n if (data.actionLabel) {\n return data.actionLabel;\n }\n // If actionType exists but it's not found in the actions list,\n // the action is invalid for the current version of the button\n const fallbackTitle = data.actionType\n ? 'Object.ActionButton.InvalidAction'\n : 'Object.ActionButton.NewAction';\n const action = actions.find((act) => data.actionType === act.value);\n return translator.get((action && action.translation) || fallbackTitle);\n },\n allowAdd: true,\n allowRemove: true,\n allowMove: true,\n addTranslation: 'Object.ActionButton.AddAction',\n items: {\n label: {\n component: 'string',\n ref: 'actionLabel',\n translation: 'Common.Label',\n expression: 'optional',\n defaultValue: '',\n },\n actionType: {\n type: 'string',\n ref: 'actionType',\n component: 'expression-with-dropdown',\n translation: 'Object.ActionButton.Action',\n defaultValue: '',\n options: actions,\n dropdownOnly: true,\n },\n bookmark: {\n type: 'string',\n ref: 'bookmark',\n component: 'expression-with-dropdown',\n translation: 'ExpressionEditor.SetExpresions.Bookmark',\n defaultValue: '',\n dropdownOnly: true,\n options: async (action, hyperCubeHandler) => {\n const bms = await hyperCubeHandler.app.getBookmarkList();\n return bms.map((bookmark) => ({\n label: bookmark.qData.title,\n value: bookmark.qInfo.qId,\n }));\n },\n show: (data) => checkShowAction(data, 'bookmark'),\n },\n field: {\n type: 'string',\n ref: 'field',\n component: 'expression-with-dropdown',\n translation: 'Common.Field',\n defaultValue: '',\n dropdownOnly: true,\n options: async (action, hyperCubeHandler) => {\n const fields = await hyperCubeHandler.app.getFieldList();\n return fields.map((field) => ({\n label: field.qName,\n value: field.qName,\n }));\n },\n show: (data) => checkShowAction(data, 'field'),\n },\n variable: {\n type: 'string',\n ref: 'variable',\n component: 'expression-with-dropdown',\n translation: 'Common.Variable',\n defaultValue: '',\n expressionType: 'StringExpression',\n options: async (action, hyperCubeHandler) => {\n const variables = await hyperCubeHandler.app.getVariableList();\n return variables\n .filter((v) => !v.qIsReserved || (v.qIsReserved && action.showSystemVariables))\n .map((v) => ({\n label: v.qName,\n value: v.qName,\n }));\n },\n show: (data) => checkShowAction(data, 'variable'),\n },\n showSystemVariables: {\n type: 'boolean',\n ref: 'showSystemVariables',\n translation: 'ExpressionEditor.SystemVariables',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'variable'),\n },\n softLock: {\n type: 'boolean',\n ref: 'softLock',\n translation: 'Object.ActionButton.Softlock',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'softLock'),\n },\n value: {\n type: 'string',\n ref: 'value',\n component: 'string',\n translation: 'properties.value',\n expression: 'optional',\n show: (data) => checkShowAction(data, 'value'),\n },\n partial: {\n type: 'boolean',\n ref: 'partial',\n translation: 'Object.ActionButton.Partial',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'partial'),\n },\n },\n },\n navigation: {\n translation: 'Object.ActionButton.Navigation',\n type: 'items',\n items: {\n action: {\n ref: 'navigation.action',\n translation: 'Object.ActionButton.Navigation',\n component: 'expression-with-dropdown',\n defaultValue: null,\n options: navigationActions,\n dropdownOnly: true,\n },\n sheetId: {\n type: 'string',\n ref: 'navigation.sheet',\n translation: 'properties.sheet',\n expression: 'optional',\n show: (data) => checkShowNavigation(data, 'sheetId'),\n },\n sheet: {\n type: 'string',\n ref: 'navigation.sheet',\n translation: 'properties.sheet',\n component: 'expression-with-dropdown',\n expressionType: 'StringExpression',\n show: (data) => checkShowNavigation(data, 'sheet'),\n options: async (action, hyperCubeHandler) => {\n const sheets = await hyperCubeHandler.app.getSheetList();\n return sheets.map((sheet) => ({\n value: sheet.qInfo.qId,\n label: sheet.qMeta.title,\n showCondition: sheet.qData.showCondition,\n }));\n },\n },\n story: {\n type: 'string',\n ref: 'navigation.story',\n translation: 'properties.story',\n component: 'expression-with-dropdown',\n expressionType: 'StringExpression',\n show: (data) => checkShowNavigation(data, 'story'),\n options: async (action, hyperCubeHandler) => {\n const stories = await hyperCubeHandler.app.getStoryList();\n return stories.map((story) => ({\n value: story.qInfo.qId,\n label: story.qMeta.title,\n }));\n },\n },\n websiteUrl: {\n type: 'string',\n expression: 'optional',\n ref: 'navigation.websiteUrl',\n translation: 'properties.website',\n show: (data) => checkShowNavigation(data, 'websiteUrl'),\n },\n sameWindow: {\n type: 'boolean',\n ref: 'navigation.sameWindow',\n translation: 'properties.sameWindow',\n show: (data) => checkShowNavigation(data, 'websiteUrl'),\n defaultValue: false,\n },\n },\n },\n },\n },\n enableCondition: {\n type: 'items',\n translation: 'properties.enableConditionSection',\n items: {\n useCondition: {\n type: 'boolean',\n component: 'switch',\n translation: 'properties.enableToggle',\n ref: 'useEnabledCondition',\n options: [\n {\n value: true,\n translation: 'properties.on',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n },\n condition: {\n ref: 'enabledCondition',\n translation: 'properties.enableCondition',\n type: 'integer',\n expression: 'optional',\n show: (data) => data.useEnabledCondition,\n },\n },\n },\n settings: {\n component: 'expandable-items',\n translation: 'Common.Appearance',\n uses: 'settings',\n items: {\n general: {\n type: 'items',\n translation: 'properties.general',\n items: {\n showTitles: {},\n details: {\n show: false,\n },\n label: {\n component: 'string',\n ref: 'style.label',\n translation: 'Common.Label',\n expression: 'optional',\n },\n },\n },\n font: {\n grouped: true,\n type: 'items',\n translation: 'properties.font',\n items: {\n sizeAndColor: {\n type: 'items',\n items: {\n fontSize: {\n component: 'slider',\n type: 'number',\n ref: 'style.font.size',\n translation: 'properties.fontSize',\n min: 0.2,\n max: 1,\n step: 0.01,\n },\n useFontColorExpression: {\n ref: 'style.font.useColorExpression',\n type: 'boolean',\n translation: 'properties.fontColor',\n component: 'dropdown',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.font.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) => !propertyResolver.getValue(data, 'style.font.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.font.colorExpression',\n translation: 'Common.Expression',\n expression: 'optional',\n show: (data) => propertyResolver.getValue(data, 'style.font.useColorExpression'),\n },\n },\n },\n stylingAndAlign: {\n type: 'items',\n items: {\n fontStyling: {\n component: 'item-selection-list',\n type: 'string',\n ref: 'style.font.style',\n translation: 'properties.textStyle',\n horizontal: true,\n multipleSelect: true,\n items: [\n {\n component: 'icon-item',\n icon: 'bold',\n value: 'bold',\n translation: 'Common.bold',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'italic',\n value: 'italic',\n translation: 'Common.italic',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'underline',\n value: 'underline',\n translation: 'Common.underline',\n labelPlacement: 'bottom',\n },\n ],\n },\n textAlign: {\n component: 'item-selection-list',\n type: 'string',\n ref: 'style.font.align',\n translation: 'properties.Alignment',\n horizontal: true,\n items: [\n {\n component: 'icon-item',\n icon: 'align_left',\n value: 'left',\n translation: 'properties.dock.left',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'align_center',\n value: 'center',\n translation: 'Common.Center',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'align_right',\n value: 'right',\n translation: 'properties.dock.right',\n labelPlacement: 'bottom',\n },\n ],\n },\n },\n },\n },\n },\n background: {\n grouped: true,\n type: 'items',\n translation: 'properties.background',\n items: {\n backgroundColor: {\n type: 'items',\n items: {\n useColorExpression: {\n ref: 'style.background.useColorExpression',\n type: 'boolean',\n translation: 'AppDetails.SheetBackgroundColor',\n component: 'dropdown',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.background.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) => !propertyResolver.getValue(data, 'style.background.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.background.colorExpression',\n translation: 'Common.Expression',\n expression: 'optional',\n show: (data) => propertyResolver.getValue(data, 'style.background.useColorExpression'),\n },\n },\n },\n backgroundImage: {\n type: 'items',\n items: {\n useBackgroundImage: {\n ref: 'style.background.useImage',\n type: 'boolean',\n translation: 'properties.backgroundImage.use',\n component: 'switch',\n options: toggleOptions,\n },\n backgroundUrl: {\n ref: 'style.background.url.qStaticContentUrlDef.qUrl',\n layoutRef: 'style.background.url.qStaticContentUrl.qUrl',\n schemaIgnore: true,\n translation: 'Common.Image',\n tooltip: { select: 'properties.media.select', remove: 'properties.media.removeBackground' },\n type: 'string',\n component: 'media',\n show(data) {\n return propertyResolver.getValue(data, 'style.background.useImage');\n },\n },\n backgroundSize: {\n ref: 'style.background.size',\n translation: 'properties.backgroundImage.size',\n type: 'string',\n component: 'dropdown',\n options: [\n {\n value: 'auto',\n translation: 'properties.backgroundImage.originalSize',\n },\n {\n value: 'alwaysFit',\n translation: 'properties.backgroundImage.sizeAlwaysFit',\n },\n {\n value: 'fitWidth',\n translation: 'properties.backgroundImage.sizeFitWidth',\n },\n {\n value: 'fitHeight',\n translation: 'properties.backgroundImage.sizeFitHeight',\n },\n {\n value: 'fill',\n translation: 'properties.backgroundImage.sizeStretch',\n },\n {\n value: 'alwaysFill',\n translation: 'properties.backgroundImage.sizeAlwaysFill',\n },\n ],\n show(data) {\n return (\n propertyResolver.getValue(data, 'style.background.useImage') &&\n !!propertyResolver.getValue(data, 'style.background.url.qStaticContentUrlDef.qUrl')\n );\n },\n },\n backgroundPosition: {\n ref: 'style.background.position',\n translation: 'Common.Position',\n type: 'string',\n component: 'align-matrix',\n show(data) {\n return (\n propertyResolver.getValue(data, 'style.background.useImage') &&\n propertyResolver.getValue(data, 'style.background.url.qStaticContentUrlDef.qUrl') &&\n propertyResolver.getValue(data, 'style.background.size') !== 'fill'\n );\n },\n currentSize(data) {\n return propertyResolver.getValue(data, 'style.background.size');\n },\n },\n },\n },\n },\n },\n border: {\n type: 'items',\n grouped: true,\n translation: 'properties.border',\n items: {\n borderSettings: {\n type: 'items',\n items: {\n useBorder: {\n ref: 'style.border.useBorder',\n type: 'boolean',\n translation: 'properties.border.use',\n component: 'switch',\n options: toggleOptions,\n },\n borderRadius: {\n component: 'slider',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n translation: 'properties.border.radius',\n type: 'number',\n ref: 'style.border.radius',\n min: 0,\n max: 1,\n step: 0.01,\n },\n borderWidth: {\n component: 'slider',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n type: 'number',\n ref: 'style.border.width',\n translation: 'properties.border.width',\n min: 0,\n max: 0.5,\n step: 0.005,\n },\n colorDropdown: {\n type: 'string',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n component: 'dropdown',\n translation: 'properties.border.color',\n ref: 'style.border.useColorExpression',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.border.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) =>\n propertyResolver.getValue(data, 'style.border.useBorder') &&\n !propertyResolver.getValue(data, 'style.border.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.border.colorExpression',\n translation: 'Common.Expression',\n show: (data) =>\n propertyResolver.getValue(data, 'style.border.useBorder') &&\n propertyResolver.getValue(data, 'style.border.useColorExpression'),\n expression: 'optional',\n },\n },\n },\n },\n },\n icon: {\n type: 'items',\n grouped: true,\n translation: 'properties.icon',\n items: {\n iconSettings: {\n type: 'items',\n items: {\n useIcon: {\n ref: 'style.icon.useIcon',\n type: 'boolean',\n translation: 'properties.icon.use',\n component: 'switch',\n options: toggleOptions,\n },\n iconType: {\n ref: 'style.icon.iconType',\n component: 'expression-with-dropdown',\n translation: 'properties.icon',\n defaultValue: '',\n options: luiIcons,\n expressionType: 'StringExpression',\n show: (data) => propertyResolver.getValue(data, 'style.icon.useIcon'),\n },\n iconPosition: {\n ref: 'style.icon.position',\n component: 'dropdown',\n translation: 'Common.Position',\n options: [\n {\n translation: 'properties.dock.left',\n value: 'left',\n },\n {\n translation: 'properties.dock.right',\n value: 'right',\n },\n ],\n show: (data) => propertyResolver.getValue(data, 'style.icon.useIcon'),\n },\n },\n },\n },\n },\n },\n },\n },\n },\n importProperties,\n exportProperties: null,\n support: {\n export: !1,\n exportData: !1,\n snapshot: !1,\n viewData: !1,\n quickMobile: !0,\n },\n };\n}\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n rebeccapurple: { r: 102, g: 51, b: 153 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: { r: 255, g: 255, b: 255, a: 0 },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable no-cond-assign */\nimport CSSColors from './css-colors';\n\nconst colorUtils = {\n resolveExpression: input => {\n // rgb\n let matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(input);\n if (matches) {\n return `rgb(${matches[1]},${matches[2]},${matches[3]})`;\n }\n // argb\n matches = /^argb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(input);\n if (matches) {\n const a = Math.round((matches[1] / 255) * 100) / 100;\n return `rgba(${matches[2]},${matches[3]},${matches[4]},${a})`;\n }\n // hex\n matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(input);\n if (matches) {\n return input;\n }\n // css color\n const color = input && CSSColors[input.toLowerCase()];\n if (color) {\n const a = color.a !== undefined ? color.a : 1;\n return `rgba(${color.r},${color.g},${color.b},${a})`;\n }\n // invalid\n return 'none';\n },\n getFadedColor(color) {\n const percent = 0.15;\n let f; let R; let B; let G;\n if (color.length > 7) {\n f = color.split(',');\n const rgba = f[0].indexOf('a') !== -1;\n R = rgba ? parseInt(f[0].slice(5), 10) : parseInt(f[0].slice(4), 10);\n G = parseInt(f[1], 10);\n B = parseInt(f[2], 10);\n return `${(rgba ? 'rgba(' : 'rgb(') + (Math.round((0 - R) * percent) + R)},${Math.round((0 - G) * percent) + G},${Math.round((0 - B) * percent) + B}${rgba ? `,${f[3]}` : ')'}`;\n }\n f = parseInt(color.slice(1), 16);\n R = f >> 16;\n G = (f >> 8) & 0x00FF;\n B = f & 0x0000FF;\n return `#${(0x1000000 + (Math.round((0 - R) * percent) + R) * 0x10000 + (Math.round((0 - G) * percent) + G) * 0x100 + (Math.round((0 - B) * percent) + B)).toString(16).slice(1)}`;\n }\n};\n\nexport default colorUtils;\n","const getImageUrl = (imgUrl) => {\n imgUrl.replace(/^\\.\\.\\//i, '/');\n imgUrl = imgUrl.replace(/\"/g, '\\\\\"');\n imgUrl = imgUrl.replace(/'/g, \"\\\\'\");\n const a = document.createElement('a');\n a.href = '../';\n const rootPath = a.href;\n imgUrl = rootPath + (imgUrl[0] === '/' ? imgUrl.substr(1) : imgUrl);\n return imgUrl;\n};\n\nexport default {\n getImageUrl,\n};\n","import colorUtils from './color-utils';\nimport luiIcons from './lui-icons';\nimport urlUtils from './url-utils';\n\nconst backgroundSize = {\n auto: 'auto auto',\n alwaysFit: 'contain',\n fitWidth: '100% auto',\n fitHeight: 'auto 100%',\n fill: '100% 100%',\n alwaysFill: 'cover',\n};\n\nconst backgroundPosition = {\n topLeft: '0% 0%', // top left\n centerLeft: '50% 0%', // center left\n bottomLeft: '100% 0%', // bottom left\n topCenter: '0% 50%', // top center\n centerCenter: '50% 50%', // center center\n bottomCenter: '100% 50%', // bottom center\n topRight: '0% 100%', // top right\n centerRight: '50% 100%', // center right\n bottomRight: '100% 100%', // bottom right\n};\n\nconst formatProperty = (path, setting) => `${path}: ${setting};`;\n\nconst getColor = ({ useColorExpression, colorExpression, color }, defaultColor, theme) => {\n let resolvedColor;\n if (useColorExpression) {\n resolvedColor = colorUtils.resolveExpression(colorExpression);\n } else if (typeof color === 'string') {\n resolvedColor = color;\n } else if (color) {\n resolvedColor = theme.getColorPickerColor(color);\n }\n return !resolvedColor || resolvedColor === 'none' ? defaultColor : resolvedColor;\n};\n\nexport default {\n getStyles({ style, disabled, theme, element }) {\n let styles = 'width: 100%;height: 100%;transition: transform .1s ease-in-out;position: absolute;';\n const { font, background, border } = style;\n const primaryColor = theme.getDataColorSpecials().primary;\n // enable\n styles += disabled ? formatProperty('opacity', 0.4) : formatProperty('cursor', 'pointer');\n // font\n styles += formatProperty('color', getColor(font, '#ffffff', theme));\n font.style.bold && (styles += formatProperty('font-weight', 'bold'));\n font.style.italic && (styles += formatProperty('font-style', 'italic'));\n // background\n const backgroundColor = getColor(background, primaryColor, theme);\n styles += formatProperty('background-color', backgroundColor);\n if (background.useImage && background.url.qStaticContentUrl) {\n let bgUrl = background.url.qStaticContentUrl.qUrl;\n if (bgUrl) {\n bgUrl = urlUtils.getImageUrl(bgUrl);\n styles += formatProperty('background-image', `url('${bgUrl}')`);\n styles += formatProperty('background-size', backgroundSize[background.size]);\n styles += formatProperty('background-position', backgroundPosition[background.position]);\n styles += formatProperty('background-repeat', 'no-repeat');\n }\n }\n // border\n if (border.useBorder) {\n const lengthShortSide = Math.min(element.offsetWidth, element.offsetHeight);\n const borderColor = getColor(border, colorUtils.getFadedColor(backgroundColor), theme);\n const borderSize = (border.width * lengthShortSide) / 2;\n styles += formatProperty('border', `${borderSize}px solid ${borderColor}`);\n styles += formatProperty('border-radius', `${(border.radius * lengthShortSide) / 2}px`);\n } else {\n styles += 'border: none;';\n }\n\n return styles;\n },\n createLabelAndIcon({ button, theme, style, isSense }) {\n const { icon, font, label } = style;\n // text element wrapping label and icon\n const text = document.createElement('text');\n text.style.whiteSpace = 'nowrap';\n text.style.fontFamily = theme.getStyle('', '', 'fontFamily');\n // label\n const textSpan = document.createElement('span');\n textSpan.textContent = label;\n textSpan.style.whiteSpace = 'nowrap';\n textSpan.style.textOverflow = 'ellipsis';\n textSpan.style.overflow = 'visible';\n font.style.underline && (textSpan.style.textDecoration = 'underline');\n text.appendChild(textSpan);\n // icon\n const hasIcon = isSense && icon.useIcon && icon.iconType !== '';\n if (hasIcon) {\n const iconSpan = document.createElement('span');\n const iconType = luiIcons.find((iconObj) => iconObj.label === icon.iconType || iconObj.value === icon.iconType);\n iconSpan.style.textDecoration = 'none';\n iconSpan.style.fontSize = 'inherit';\n iconSpan.setAttribute('class', `lui-icon lui-icon--${iconType ? iconType.value : ''}`);\n icon.position === 'left' ? text.insertBefore(iconSpan, textSpan) : text.appendChild(iconSpan);\n }\n button.innerHTML = '';\n button.appendChild(text);\n\n // Calculations on font size.\n // 1. Setting font size to height of button container\n text.style.fontSize = `${button.clientHeight}px`;\n // 2. Adjust the font size to the height ratio between button container and text box\n let newFontsize = (button.clientHeight / text.offsetHeight) * button.clientHeight;\n text.style.fontSize = `${newFontsize}px`;\n // 3. Adjust the font size to the width ratio between button container and text box\n if (text.offsetWidth > button.clientWidth) {\n newFontsize *= button.clientWidth / text.offsetWidth;\n }\n // 4. Setting final font size by scaling with the font size from the layout + other font styling\n if (font.style.italic) {\n if (hasIcon) {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.84, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.04}px`;\n text.children[1].style.marginRight = `${text.offsetWidth * 0.04}px`;\n } else {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.9, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.02}px`;\n }\n } else if (hasIcon) {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.88, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.04}px`;\n } else {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.92, 8)}px`;\n }\n // hide overflow when there can be overflow\n if (text.style.fontSize === '8px') {\n text.children.forEach((child) => {\n child.style.overflow = 'hidden';\n });\n }\n text.style.margin = '0 3%';\n text.style.display = 'flex';\n text.style.alignItems = 'center';\n text.style.justifyContent = font.align === 'left' ? 'flex-start' : font.align === 'right' ? 'flex-end' : 'center';\n },\n};\n","import allActions from '../utils/actions';\nimport navigationActions from '../utils/navigation-actions';\nimport styleFormatter from '../utils/style-formatter';\n\nexport const runActions = async (actionList) => {\n for (let i = 0; i < actionList.length; i++) {\n // eslint-disable-next-line no-await-in-loop\n await actionList[i]();\n }\n};\n\nexport default function renderButton({ layout, theme, app, constraints, senseNavigation, element }) {\n const isSense = !!senseNavigation;\n const button = element.firstElementChild;\n const { style, qStateName } = layout;\n const disabled = layout.useEnabledCondition && layout.enabledCondition === 0;\n const isClickable = !disabled && !constraints.active;\n const formattedStyles = styleFormatter.getStyles({ style, disabled, theme, element });\n button.setAttribute('style', formattedStyles);\n styleFormatter.createLabelAndIcon({ button, theme, style, isSense });\n\n button.onclick = async () => {\n if (isClickable) {\n const actionCallList = [];\n const { actions } = layout;\n actions.forEach((action) => {\n const actionObj = allActions.find((act) => act.value === action.actionType);\n actionObj && actionCallList.push(actionObj.getActionCall({ app, qStateName, ...action }));\n });\n button.setAttribute('disabled', true);\n await runActions(actionCallList);\n if (senseNavigation && !senseNavigation.getCurrentStoryId()) {\n const { navigation } = layout;\n const navigationObject = navigation && navigationActions.find((nav) => nav.value === navigation.action);\n if (senseNavigation && navigationObject && typeof navigationObject.navigationCall === 'function') {\n await navigationObject.navigationCall({ app, senseNavigation, ...navigation });\n }\n }\n button.removeAttribute('disabled');\n }\n };\n\n const scale = () => {\n if (isClickable) {\n const { offsetWidth, offsetHeight } = button;\n button.style.transform =\n offsetHeight > offsetWidth\n ? `scale(${0.98}, ${1 - (offsetWidth / offsetHeight) * 0.02})`\n : `scale(${1 - (offsetHeight / offsetWidth) * 0.02}, ${0.98})`;\n }\n };\n\n const resetScale = () => {\n const { transform } = button.style;\n if (isClickable && transform !== '' && transform !== 'scale(1)') {\n button.style.transform = 'scale(1)';\n }\n };\n\n button.onmousedown = (event) => {\n if (event.button === 0) {\n scale();\n }\n };\n button.onmouseup = resetScale;\n button.onmouseleave = resetScale;\n button.ontouchstart = scale;\n button.ontouchend = resetScale;\n button.ontouchcancel = resetScale;\n\n return () => {\n button.onclick = undefined;\n button.onmousedown = undefined;\n button.onmouseup = undefined;\n button.onmouseleave = undefined;\n button.ontouchstart = undefined;\n button.ontouchend = undefined;\n button.ontouchcancel = undefined;\n };\n}\n","import { useElement, useStaleLayout, useEffect, useMemo, useApp, useConstraints, useTheme } from '@nebula.js/stardust';\n\nimport properties from './object-properties';\nimport data from './data';\nimport ext from './ext';\n\nimport renderButton from './components/action-button';\n\nexport default function supernova(env) {\n const { sense, translator } = env;\n const senseNavigation = sense && sense.navigation;\n properties.style.label = sense ? translator.get('Object.ActionButton') : 'Button';\n return {\n qae: {\n properties,\n data,\n },\n component() {\n const element = useElement();\n const theme = useTheme();\n\n useMemo(() => {\n const button = document.createElement('button');\n button.appendChild(document.createElement('text'));\n element.appendChild(button);\n }, []);\n\n const layout = useStaleLayout();\n const app = useApp();\n const constraints = useConstraints();\n\n const cleanup = renderButton({ element, layout, constraints, theme, app, senseNavigation });\n\n useEffect(\n () => () => {\n cleanup();\n },\n [element]\n );\n },\n ext: ext({ translator }),\n };\n}\n"],"names":["properties","showTitles","title","subtitle","footnote","useEnabledCondition","enabledCondition","navigation","action","style","label","font","size","useColorExpression","color","index","colorExpression","bold","italic","underline","align","background","useImage","url","qStaticContentUrlDef","qUrl","position","border","useBorder","radius","width","icon","useIcon","iconType","actions","targets","getValueList","app","values","isDate","valuesArray","split","dateExpression","forEach","date","evaluate","slice","convertedDates","map","value","Number","isNaN","qText","qIsNumeric","qNumber","translation","group","getActionCall","bookmark","getBookmarkList","bookMarks","findBm","find","bm","qData","applyBookmark","qInfo","qId","requiredInput","back","forward","softLock","clearAll","qStateName","field","getField","fieldObj","clearAllButThis","clear","selectAll","getFieldDescription","fieldInfo","qTags","includes","valueList","selectValues","select","selectAlternative","selectExcluded","selectPossible","toggleSelect","lockAll","lock","unlockAll","unlock","variable","getVariableByName","variableObj","setStringValue","partial","doReload","doSave","checkShowAction","data","act","actionType","indexOf","evaluateCondition","condition","length","condVal","toLowerCase","inIframe","window","self","top","error","getOrderedVisibleSheet","getSheetList","sheets","visibleSheets","filter","sheet","Util","showCondition","sort","current","next","rank","navigationActions","navigationCall","senseNavigation","nextSheet","prevSheet","goToSheet","story","goToStory","websiteUrl","sameWindow","match","target","open","checkShowNavigation","nav","getValue","dataContainer","reference","defaultValue","i","steps","undefined","convertNavigation","oldType","importProperties","exportedFmt","initialProperties","newPropertyTree","qChildren","newProperties","props","fullWidth","qLayoutExclude","disabled","visualization","Object","keys","key","buttonLabel","buttonShowIcon","buttonIconLui","buttonTextAlign","actionItems","actionItem","newAction","selectedBookmark","selectedField","cId","push","convertAction","navigationAction","sheetId","selectedSheet","selectedStory","qProperty","colorOptions","toggleOptions","ext","translator","definition","type","component","items","grouped","ref","itemTitleRef","actionLabel","fallbackTitle","get","allowAdd","allowRemove","allowMove","addTranslation","expression","options","dropdownOnly","hyperCubeHandler","bms","show","getFieldList","fields","qName","expressionType","getVariableList","variables","v","qIsReserved","showSystemVariables","qMeta","getStoryList","stories","enableCondition","useCondition","settings","uses","general","details","sizeAndColor","fontSize","min","max","step","useFontColorExpression","colorPicker","dualOutput","propertyResolver","stylingAndAlign","fontStyling","horizontal","multipleSelect","labelPlacement","textAlign","backgroundColor","backgroundImage","useBackgroundImage","backgroundUrl","layoutRef","schemaIgnore","tooltip","remove","backgroundSize","backgroundPosition","currentSize","borderSettings","borderRadius","borderWidth","colorDropdown","iconSettings","luiIcons","iconPosition","exportProperties","support","export","exportData","snapshot","viewData","quickMobile","colorStruct","aliceblue","r","g","b","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","transparent","a","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorUtils","input","matches","exec","Math","round","CSSColors","f","R","B","G","percent","rgba","parseInt","toString","imgUrl","replace","document","createElement","href","substr","auto","alwaysFit","fitWidth","fitHeight","fill","alwaysFill","topLeft","centerLeft","bottomLeft","topCenter","centerCenter","bottomCenter","topRight","centerRight","bottomRight","formatProperty","path","setting","getColor","defaultColor","theme","resolvedColor","getColorPickerColor","element","styles","primaryColor","getDataColorSpecials","primary","qStaticContentUrl","bgUrl","urlUtils","lengthShortSide","offsetWidth","offsetHeight","borderColor","borderSize","button","isSense","text","whiteSpace","fontFamily","getStyle","textSpan","textContent","textOverflow","overflow","textDecoration","appendChild","hasIcon","iconSpan","iconObj","setAttribute","insertBefore","innerHTML","clientHeight","newFontsize","clientWidth","children","marginRight","child","margin","display","alignItems","justifyContent","runActions","actionList","env","sense","qae","useElement","useTheme","useMemo","layout","useStaleLayout","useApp","constraints","useConstraints","cleanup","firstElementChild","isClickable","active","formattedStyles","styleFormatter","onclick","actionCallList","actionObj","allActions","getCurrentStoryId","navigationObject","removeAttribute","scale","transform","resetScale","onmousedown","event","onmouseup","onmouseleave","ontouchstart","ontouchend","ontouchcancel","renderButton","useEffect"],"mappings":"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AAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,sBACPlB,KAAM,sBACNrB,MAAO,uBAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,uBACPlB,KAAM,uBACNrB,MAAO,wBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,gBC/wBL8K,EAAe,CACnB,CACEvI,OAAO,EACPM,YAAa,gCAEf,CACEN,OAAO,EACPM,YAAa,sCAIXkI,EAAgB,CACpB,CACExI,OAAO,EACPM,YAAa,iBAEf,CACEN,OAAO,EACPM,YAAa,mBAIF,SAASmI,mBAAMC,IAAAA,iBACrB,CACLC,WAAY,CACVC,KAAM,QACNC,UAAW,YACXC,MAAO,CACL7J,QAAS,CACP2J,KAAM,QACNtI,YAAa,2CACbyI,SAAS,EACTD,MAAO,CACL7J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"}
1
+ {"version":3,"file":"sn-action-button.js","sources":["../src/object-properties.js","../src/data.js","../src/utils/actions.js","../src/utils/util.js","../src/utils/navigation-actions.js","../src/utils/property-resolver.js","../src/utils/conversion.js","../src/utils/lui-icons.js","../src/ext.js","../src/utils/css-colors.js","../src/utils/color-utils.js","../src/utils/url-utils.js","../src/utils/style-formatter.js","../src/components/action-button.js","../src/index.js"],"sourcesContent":["const properties = {\n /**\n * @type {boolean}\n */\n showTitles: false,\n /**\n * @type {string}\n */\n title: '',\n /**\n * @type {string}\n */\n subtitle: '',\n /**\n * @type {string}\n */\n footnote: '',\n /**\n * @type {boolean}\n */\n useEnabledCondition: false,\n /**\n * @type {number}\n */\n enabledCondition: 1,\n /**\n * @type {object}\n */\n navigation: {\n action: 'none',\n },\n /**\n * @type {object}\n */\n style: {\n /**\n * @type {string}\n */\n label: 'Button',\n /**\n * @type {object}\n */\n font: {\n /**\n * @type {number}\n */\n size: 0.5,\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n /**\n * @type {object}\n */\n style: {\n bold: true,\n italic: false,\n underline: false,\n },\n /**\n * @type {string}\n */\n align: 'center',\n },\n /**\n * @type {object}\n */\n background: {\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n /**\n * @type {boolean}\n */\n useImage: false,\n /**\n * @type {object}\n */\n url: {\n /**\n * @type {object}\n */\n qStaticContentUrlDef: {\n /**\n * @type {string}\n */\n qUrl: '',\n },\n },\n /**\n * @type {string}\n */\n size: 'auto',\n /**\n * @type {string}\n */\n position: 'centerCenter',\n },\n /**\n * @type {object}\n */\n border: {\n /**\n * @type {boolean}\n */\n useBorder: false,\n /**\n * @type {number}\n */\n radius: 0,\n /**\n * @type {number}\n */\n width: 0,\n /**\n * @type {boolean}\n */\n useColorExpression: false,\n /**\n * @type {object}\n */\n color: {\n index: -1,\n color: null,\n },\n /**\n * @type {string}\n */\n colorExpression: '',\n },\n /**\n * @type {object}\n */\n icon: {\n /**\n * @type {boolean}\n */\n useIcon: false,\n /**\n * @type {string}\n */\n iconType: '',\n /**\n * @type {string}\n */\n position: 'left',\n },\n },\n /**\n * @type {array}\n */\n actions: [],\n};\n\nexport default properties;\n","export default {\n targets: [],\n};\n","export const getValueList = async (app, values, isDate) => {\n let valuesArray = values.split(';');\n if (isDate) {\n let dateExpression = '';\n valuesArray.forEach((date) => {\n dateExpression += `Num('${date}')&';'&`;\n });\n const convertedDates = await app.evaluate(dateExpression.slice(0, -5));\n valuesArray = convertedDates.split(';');\n }\n return valuesArray.map((value) => (Number.isNaN(+value) ? { qText: value } : { qIsNumeric: true, qNumber: Number(value) }));\n};\n\nconst actions = [\n {\n value: 'applyBookmark',\n translation: 'Object.ActionButton.ApplyBookmark',\n group: 'bookmark',\n getActionCall: ({ app, bookmark }) => async () => {\n const bookMarks = await app.getBookmarkList();\n const findBm = bookMarks.find((bm) => bm.qData.title === bookmark);\n bookmark && (await app.applyBookmark((findBm && findBm.qInfo && findBm.qInfo.qId) || bookmark));\n },\n requiredInput: ['bookmark'],\n },\n {\n value: 'back',\n translation: 'Object.ActionButton.MoveBackward',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.back();\n },\n requiredInput: [],\n },\n {\n value: 'forward',\n translation: 'Object.ActionButton.MoveForward',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.forward();\n },\n requiredInput: [],\n },\n {\n value: 'clearAll',\n translation: 'Object.ActionButton.ClearAll',\n group: 'selection',\n getActionCall: ({ app, softLock }) => async () => {\n await app.clearAll(softLock);\n },\n requiredInput: ['softLock'],\n },\n {\n value: 'clearAllButThis',\n translation: 'Object.ActionButton.ClearAllButThis',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.clearAllButThis(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'clearField',\n translation: 'Object.ActionButton.ClearSelectionInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.clear();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'selectAll',\n translation: 'Object.ActionButton.SelectAllInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectAll(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectValues',\n translation: 'Object.ActionButton.SelectValuesInField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n const fieldInfo = await app.getFieldDescription(field);\n const valueList = await getValueList(app, value, fieldInfo.qTags.includes('$date'));\n await fieldObj.selectValues(valueList, false, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'selectMatchingValues',\n translation: 'Object.ActionButton.SelectMatchingValues',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.select(value, false, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'selectAlternative',\n translation: 'Object.ActionButton.SelectAlternatives',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectAlternative(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectExcluded',\n translation: 'Object.ActionButton.SelectExcluded',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectExcluded(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'selectPossible',\n translation: 'Object.ActionButton.SelectPossibleValues',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, softLock }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.selectPossible(softLock);\n }\n },\n requiredInput: ['field', 'softLock'],\n },\n {\n value: 'toggleSelect',\n translation: 'Object.ActionButton.ToggleFieldSelection',\n group: 'selection',\n getActionCall: ({ app, qStateName, field, value, softLock }) => async () => {\n if (field && value) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.toggleSelect(value, softLock);\n }\n },\n requiredInput: ['field', 'value', 'softLock'],\n },\n {\n value: 'lockAll',\n translation: 'Object.ActionButton.LockAllSelections',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.lockAll();\n },\n requiredInput: [],\n },\n {\n value: 'lockField',\n translation: 'Object.ActionButton.LockField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.lock();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'unlockAll',\n translation: 'Object.ActionButton.UnlockAllSelections',\n group: 'selection',\n getActionCall: ({ app }) => async () => {\n await app.unlockAll();\n },\n requiredInput: [],\n },\n {\n value: 'unlockField',\n translation: 'Object.ActionButton.UnlockAField',\n group: 'selection',\n getActionCall: ({ app, qStateName, field }) => async () => {\n if (field) {\n const fieldObj = await app.getField(field, qStateName);\n await fieldObj.unlock();\n }\n },\n requiredInput: ['field'],\n },\n {\n value: 'setVariable',\n translation: 'Object.ActionButton.SetVariable',\n group: 'variables',\n getActionCall: ({ app, variable, value }) => async () => {\n if (variable && value) {\n try {\n const variableObj = await app.getVariableByName(variable);\n await variableObj.setStringValue(value);\n } catch (e) {\n // no-op\n }\n }\n },\n requiredInput: ['variable', 'value'],\n },\n {\n value: 'doReload',\n translation: 'Object.ActionButton.DoReload',\n group: 'reload',\n getActionCall: ({ app, partial }) => async () => {\n const e = await app.doReload(0, !!partial, false);\n if (e) {\n await app.doSave();\n }\n },\n requiredInput: ['partial'],\n },\n];\n\nexport function checkShowAction(data, field) {\n const act = actions.find((action) => data.actionType === action.value);\n return act && act.requiredInput && act.requiredInput.indexOf(field) !== -1;\n}\n\nexport default actions;\n","function evaluateCondition(condition) {\n // case condition is commented\n if (condition && condition.length >= 2 && condition[0] === '/' && condition[1] === '/') {\n return true;\n }\n // convert to numeric with -1 (true) as the default\n const condVal = condition ? +condition : -1;\n // handle the string 'true' as true and all other strings as false\n if (Number.isNaN(+condVal)) {\n return condition.toLowerCase() === 'true';\n }\n return condVal !== 0;\n}\n\nexport default { evaluateCondition };\n","import Util from './util';\n\nconst inIframe = () => {\n try {\n return window.self !== window.top;\n } catch (error) {\n return true;\n }\n};\n\nexport const getOrderedSheets = async (app) => {\n const sheets = await app.getSheetList();\n return sheets.sort((current, next) => current.qData.rank - next.qData.rank);\n};\n\nexport const getOrderedVisibleSheet = async (app) => {\n const sheets = await app.getSheetList();\n const visibleSheets = sheets.filter((sheet) => Util.evaluateCondition(sheet.qData.showCondition));\n return visibleSheets.sort((current, next) => current.qData.rank - next.qData.rank);\n};\n\nconst navigationActions = [\n {\n translation: 'Object.ActionButton.NoNavigation',\n value: 'none',\n },\n {\n translation: 'Object.ActionButton.GoToNextSheet',\n value: 'nextSheet',\n navigationCall: async ({ senseNavigation }) => {\n await senseNavigation.nextSheet();\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToPreviousSheet',\n value: 'prevSheet',\n navigationCall: async ({ senseNavigation }) => {\n await senseNavigation.prevSheet();\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToLastSheet',\n value: 'lastSheet',\n navigationCall: async ({ app, senseNavigation }) => {\n const sheets = await getOrderedVisibleSheet(app);\n await senseNavigation.goToSheet(sheets[sheets.length - 1].qInfo.qId);\n },\n requiredInput: [],\n },\n {\n translation: 'Object.ActionButton.GoToFirstSheet',\n value: 'firstSheet',\n navigationCall: async ({ app, senseNavigation }) => {\n const sheets = await getOrderedVisibleSheet(app);\n await senseNavigation.goToSheet(sheets[0].qInfo.qId);\n },\n requiredInput: [],\n },\n\n {\n translation: 'Object.ActionButton.GoToASheet',\n value: 'goToSheet',\n navigationCall: async ({ senseNavigation, sheet }) => {\n sheet && (await senseNavigation.goToSheet(sheet));\n },\n // TODO replace by searchable dropdown\n requiredInput: ['sheet'],\n },\n {\n translation: 'Object.ActionButton.GoToSheetById',\n value: 'goToSheetById',\n navigationCall: async ({ senseNavigation, sheet }) => {\n sheet && (await senseNavigation.goToSheet(sheet));\n },\n // TODO replace by searchable dropdown\n requiredInput: ['sheetId'],\n },\n {\n translation: 'Object.ActionButton.GoToStory',\n value: 'goToStory',\n navigationCall: async ({ senseNavigation, story }) => {\n story && (await senseNavigation.goToStory(story));\n },\n requiredInput: ['story'],\n },\n {\n translation: 'Object.ActionButton.OpenWebsiteEmail',\n value: 'openWebsite',\n navigationCall: async ({ websiteUrl, sameWindow }) => {\n try {\n if (websiteUrl) {\n const url = websiteUrl.match(/^(https?:\\/\\/|mailto:)/) ? websiteUrl : `http://${websiteUrl}`;\n let target = '';\n if (sameWindow) {\n target = inIframe() ? '_parent' : '_self';\n }\n window.open(url, target);\n }\n } catch (error) {\n // no-op\n }\n },\n requiredInput: ['websiteUrl'],\n },\n];\n\nexport const checkShowNavigation = (data, field) => {\n const nav = navigationActions.find((navigation) => data.navigation.action === navigation.value);\n return nav && nav.requiredInput && nav.requiredInput.indexOf(field) !== -1;\n};\n\nexport default navigationActions;\n","function getValue(dataContainer, reference, defaultValue) {\n const steps = reference.split('.');\n let i;\n if (dataContainer === undefined) {\n return defaultValue;\n }\n for (i = 0; i < steps.length; ++i) {\n if (typeof dataContainer[steps[i]] === 'undefined') {\n return defaultValue;\n }\n dataContainer = dataContainer[steps[i]];\n }\n\n return dataContainer;\n}\n\nexport default {\n getValue,\n};\n","export function convertAction(action, newProperties) {\n const newAction = {\n actionType: action.actionType,\n bookmark: action.selectedBookmark,\n // Will need to convert field selected by expression\n field: action.selectedField,\n // Need to convert expression for variable\n variable: action.variable,\n value: action.value,\n softLock: action.softLock,\n cId: action.cId,\n };\n switch (action.actionType) {\n case 'clearOther':\n newAction.actionType = 'clearAllButThis';\n break;\n case 'unlockAllAndClearAll':\n newAction.actionType = 'clearAll';\n newAction.softLock = true;\n break;\n case 'selectField':\n newAction.actionType = 'selectMatchingValues';\n break;\n case 'selectAndLockField':\n newProperties.actions.push({ ...newAction, cId: null, actionType: 'selectMatchingValues' });\n newAction.actionType = 'lockField';\n break;\n default:\n break;\n }\n return newProperties.actions.push(newAction);\n}\n\nexport function convertNavigation(oldType) {\n switch (oldType) {\n case 'gotoSheet':\n return 'goToSheet';\n case 'gotoSheetById':\n return 'goToSheetById';\n case 'gotoStory':\n return 'goToStory';\n case 'switchToEdit':\n return 'none';\n default:\n return oldType;\n }\n}\n\nconst importProperties = (exportedFmt, initialProperties) => {\n const newPropertyTree = { qChildren: [] };\n const newProperties = {\n actions: [],\n // Adding props to avoid errors from old navigation button. Converting to any other chart will still give these errors\n props: { useEnabledCondition: null, fullWidth: 'auto' },\n qLayoutExclude: { disabled: {} },\n ...initialProperties,\n };\n\n if (exportedFmt && exportedFmt.properties.visualization === 'qlik-button-for-navigation') {\n Object.keys(exportedFmt.properties).forEach(key => {\n let props;\n switch (key) {\n case 'props':\n props = exportedFmt.properties[key];\n newProperties.style.label = props.buttonLabel;\n newProperties.style.icon.useIcon = props.buttonShowIcon;\n newProperties.style.icon.iconType = props.buttonIconLui;\n newProperties.style.font.align = props.buttonTextAlign;\n newProperties.useEnabledCondition = props.useEnabledCondition;\n newProperties.enabledCondition = props.enabledCondition;\n props.actionItems &&\n props.actionItems.forEach(actionItem => {\n convertAction(actionItem, newProperties);\n });\n newProperties.navigation = {\n action: convertNavigation(props.navigationAction),\n // Need to convert sheet from expression\n sheet: props.navigationAction === 'gotoSheetById' ? props.sheetId : props.selectedSheet,\n story: props.selectedStory,\n websiteUrl: props.websiteUrl,\n sameWindow: props.sameWindow,\n };\n break;\n case 'qStateName':\n case 'showTitles':\n case 'title':\n case 'subtitle':\n case 'footnote':\n newProperties[key] = exportedFmt.properties[key];\n break;\n default:\n break;\n }\n });\n }\n newPropertyTree.qProperty = newProperties;\n return newPropertyTree;\n};\n\nexport default importProperties;\n","export default [\n {\n value: 'image',\n icon: 'image',\n label: 'Image',\n },\n {\n value: 'back',\n icon: 'back',\n label: 'Back',\n },\n {\n value: 'forward',\n icon: 'forward',\n label: 'Forward',\n },\n {\n value: 'history',\n icon: 'history',\n label: 'History',\n },\n {\n value: 'help',\n icon: 'help',\n label: 'Help',\n },\n {\n value: 'info',\n icon: 'info',\n label: 'Info',\n },\n {\n value: 'text',\n icon: 'text',\n label: 'Text',\n },\n {\n value: 'group',\n icon: 'group',\n label: 'Group',\n },\n {\n value: 'search',\n icon: 'search',\n label: 'Search',\n },\n {\n value: 'zoom-in',\n icon: 'zoom-in',\n label: 'Zoom in',\n },\n {\n value: 'zoom-out',\n icon: 'zoom-out',\n label: 'Zoom out',\n },\n {\n value: 'export',\n icon: 'export',\n label: 'Export',\n },\n {\n value: 'import',\n icon: 'import',\n label: 'Import',\n },\n {\n value: 'field',\n icon: 'field',\n label: 'Field',\n },\n {\n value: 'lock',\n icon: 'lock',\n label: 'Lock',\n },\n {\n value: 'unlock',\n icon: 'unlock',\n label: 'Unlock',\n },\n {\n value: 'database',\n icon: 'database',\n label: 'Database',\n },\n {\n value: 'calendar',\n icon: 'calendar',\n label: 'Calendar',\n },\n {\n value: 'bookmark',\n icon: 'bookmark',\n label: 'Bookmark',\n },\n {\n value: 'library',\n icon: 'library',\n label: 'Library',\n },\n {\n value: 'star',\n icon: 'star',\n label: 'Star',\n },\n {\n value: 'print',\n icon: 'print',\n label: 'Print',\n },\n {\n value: 'remove',\n icon: 'remove',\n label: 'Remove',\n },\n {\n value: 'handle',\n icon: 'handle',\n label: 'Handle',\n },\n {\n value: 'handle-horizontal',\n icon: 'handle-horizontal',\n label: 'Handle horizontal',\n },\n {\n value: 'menu',\n icon: 'menu',\n label: 'Menu',\n },\n {\n value: 'list',\n icon: 'list',\n label: 'List',\n },\n {\n value: 'unordered-list',\n icon: 'unordered-list',\n label: 'Unordered list',\n },\n {\n value: 'clock',\n icon: 'clock',\n label: 'Clock',\n },\n {\n value: 'puzzle',\n icon: 'puzzle',\n label: 'Puzzle',\n },\n {\n value: 'filterpane',\n icon: 'filterpane',\n label: 'Filterpane',\n },\n {\n value: 'plus',\n icon: 'plus',\n label: 'Plus',\n },\n {\n value: 'minus',\n icon: 'minus',\n label: 'Minus',\n },\n {\n value: 'triangle-top',\n icon: 'triangle-top',\n label: 'Triangle top',\n },\n {\n value: 'triangle-bottom',\n icon: 'triangle-bottom',\n label: 'Triangle bottom',\n },\n {\n value: 'triangle-left',\n icon: 'triangle-left',\n label: 'Triangle left',\n },\n {\n value: 'triangle-right',\n icon: 'triangle-right',\n label: 'Triangle right',\n },\n {\n value: 'tick',\n icon: 'tick',\n label: 'Tick',\n },\n {\n value: 'cogwheel',\n icon: 'cogwheel',\n label: 'Cogwheel',\n },\n {\n value: 'settings',\n icon: 'settings',\n label: 'Settings',\n },\n {\n value: 'cut',\n icon: 'cut',\n label: 'Cut',\n },\n {\n value: 'copy',\n icon: 'copy',\n label: 'Copy',\n },\n {\n value: 'paste',\n icon: 'paste',\n label: 'Paste',\n },\n {\n value: 'camera',\n icon: 'camera',\n label: 'Camera',\n },\n {\n value: 'slide-show',\n icon: 'slide-show',\n label: 'Slide show',\n },\n {\n value: 'palette',\n icon: 'palette',\n label: 'Palette',\n },\n {\n value: 'shapes',\n icon: 'shapes',\n label: 'Shapes',\n },\n {\n value: 'effects',\n icon: 'effects',\n label: 'Effects',\n },\n {\n value: 'file',\n icon: 'file',\n label: 'File',\n },\n {\n value: 'expand',\n icon: 'expand',\n label: 'Expand',\n },\n {\n value: 'collapse',\n icon: 'collapse',\n label: 'Collapse',\n },\n {\n value: 'bin',\n icon: 'bin',\n label: 'Bin',\n },\n {\n value: 'link',\n icon: 'link',\n label: 'Link',\n },\n {\n value: 'pivot',\n icon: 'pivot',\n label: 'Pivot',\n },\n {\n value: 'reload',\n icon: 'reload',\n label: 'Reload',\n },\n {\n value: 'add',\n icon: 'add',\n label: 'Add',\n },\n {\n value: 'edit',\n icon: 'edit',\n label: 'Edit',\n },\n {\n value: 'key',\n icon: 'key',\n label: 'Key',\n },\n {\n value: 'box',\n icon: 'box',\n label: 'Box',\n },\n {\n value: 'home',\n icon: 'home',\n label: 'Home',\n },\n {\n value: 'person',\n icon: 'person',\n label: 'Person',\n },\n {\n value: 'grid',\n icon: 'grid',\n label: 'Grid',\n },\n {\n value: 'cloud',\n icon: 'cloud',\n label: 'Cloud',\n },\n {\n value: 'more',\n icon: 'more',\n label: 'More',\n },\n {\n value: 'folder',\n icon: 'folder',\n label: 'Folder',\n },\n {\n value: 'drop',\n icon: 'drop',\n label: 'Drop',\n },\n {\n value: 'play',\n icon: 'play',\n label: 'Play',\n },\n {\n value: 'tag',\n icon: 'tag',\n label: 'Tag',\n },\n {\n value: 'close',\n icon: 'close',\n label: 'Close',\n },\n {\n value: 'warning',\n icon: 'warning',\n label: 'Warning',\n },\n {\n value: 'warning-triangle',\n icon: 'warning-triangle',\n label: 'Warning triangle',\n },\n {\n value: 'share',\n icon: 'share',\n label: 'Share',\n },\n {\n value: 'top',\n icon: 'top',\n label: 'Top',\n },\n {\n value: 'low-resolution',\n icon: 'low-resolution',\n label: 'Low resolution',\n },\n {\n value: 'high-resolution',\n icon: 'high-resolution',\n label: 'High resolution',\n },\n {\n value: 'view',\n icon: 'view',\n label: 'View',\n },\n {\n value: 'control',\n icon: 'control',\n label: 'Control',\n },\n {\n value: 'code',\n icon: 'code',\n label: 'Code',\n },\n {\n value: 'upload',\n icon: 'upload',\n label: 'Upload',\n },\n {\n value: 'repair',\n icon: 'repair',\n label: 'Repair',\n },\n {\n value: 'split',\n icon: 'split',\n label: 'Split',\n },\n {\n value: 'up-down',\n icon: 'up-down',\n label: 'Up down',\n },\n {\n value: 'disconnect',\n icon: 'disconnect',\n label: 'Disconnect',\n },\n {\n value: 'photo-library',\n icon: 'photo-library',\n label: 'Photo library',\n },\n {\n value: 'application',\n icon: 'application',\n label: 'Application',\n },\n {\n value: 'new-tab',\n icon: 'new-tab',\n label: 'New tab',\n },\n {\n value: 'ascending',\n icon: 'ascending',\n label: 'Ascending',\n },\n {\n value: 'descending',\n icon: 'descending',\n label: 'Descending',\n },\n {\n value: 'arrow-up',\n icon: 'arrow-up',\n label: 'Arrow up',\n },\n {\n value: 'arrow-down',\n icon: 'arrow-down',\n label: 'Arrow down',\n },\n {\n value: 'arrow-right',\n icon: 'arrow-right',\n label: 'Arrow right',\n },\n {\n value: 'arrow-left',\n icon: 'arrow-left',\n label: 'Arrow left',\n },\n {\n value: 'sync',\n icon: 'sync',\n label: 'Sync',\n },\n {\n value: 'draggable',\n icon: 'draggable',\n label: 'Draggable',\n },\n {\n value: 'book',\n icon: 'book',\n label: 'Book',\n },\n {\n value: 'measure',\n icon: 'measure',\n label: 'Measure',\n },\n {\n value: 'download',\n icon: 'download',\n label: 'Download',\n },\n {\n value: 'more-rounded',\n icon: 'more-rounded',\n label: 'More rounded',\n },\n {\n value: 'align-object-left',\n icon: 'align-object-left',\n label: 'Align object-left',\n },\n {\n value: 'align-object-center',\n icon: 'align-object-center',\n label: 'Align object-center',\n },\n {\n value: 'align-object-right',\n icon: 'align-object-right',\n label: 'Align object-right',\n },\n {\n value: 'submit',\n icon: 'submit',\n label: 'Submit',\n },\n {\n value: 'operators',\n icon: 'operators',\n label: 'Operators',\n },\n {\n value: 'general-data-class',\n icon: 'general-data-class',\n label: 'General data-class',\n },\n {\n value: 'building',\n icon: 'building',\n label: 'Building',\n },\n {\n value: 'bell',\n icon: 'bell',\n label: 'Bell',\n },\n {\n value: 'unlink',\n icon: 'unlink',\n label: 'Unlink',\n },\n {\n value: 'lightbulb',\n icon: 'lightbulb',\n label: 'Lightbulb',\n },\n {\n value: 'log-in',\n icon: 'log-in',\n label: 'Log in',\n },\n {\n value: 'log-out',\n icon: 'log-out',\n label: 'Log out',\n },\n {\n value: 'previous',\n icon: 'previous',\n label: 'Previous',\n },\n {\n value: 'goto',\n icon: 'goto',\n label: 'Goto',\n },\n {\n value: 'save',\n icon: 'save',\n label: 'Save',\n },\n {\n value: 'pause',\n icon: 'pause',\n label: 'Pause',\n },\n {\n value: 'stop',\n icon: 'stop',\n label: 'Stop',\n },\n {\n value: 'step-in',\n icon: 'step-in',\n label: 'Step in',\n },\n {\n value: 'comment',\n icon: 'comment',\n label: 'Comment',\n },\n {\n value: 'indent',\n icon: 'indent',\n label: 'Indent',\n },\n {\n value: 'undent',\n icon: 'undent',\n label: 'Undent',\n },\n {\n value: 'filter',\n icon: 'filter',\n label: 'Filter',\n },\n {\n value: 'clear-filter',\n icon: 'clear-filter',\n label: 'Clear filter',\n },\n {\n value: 'insert',\n icon: 'insert',\n label: 'Insert',\n },\n {\n value: 'direction-left',\n icon: 'direction-left',\n label: 'Direction left',\n },\n {\n value: 'swap',\n icon: 'swap',\n label: 'Swap',\n },\n {\n value: 'bubbles',\n icon: 'bubbles',\n label: 'Bubbles',\n },\n {\n value: 'sheet',\n icon: 'sheet',\n label: 'Sheet',\n },\n {\n value: 'object',\n icon: 'object',\n label: 'Object',\n },\n {\n value: 'clear-selections',\n icon: 'clear-selections',\n label: 'Clear selections',\n },\n {\n value: 'selections-tool',\n icon: 'selections-tool',\n label: 'Selections tool',\n },\n {\n value: 'selections-reload',\n icon: 'selections-reload',\n label: 'Selections reload',\n },\n {\n value: 'selections-back',\n icon: 'selections-back',\n label: 'Selections back',\n },\n {\n value: 'selections-forward',\n icon: 'selections-forward',\n label: 'Selections forward',\n },\n {\n value: 'expression',\n icon: 'expression',\n label: 'Expression',\n },\n {\n value: 'select-alternative',\n icon: 'select-alternative',\n label: 'Select alternative',\n },\n {\n value: 'select-possible',\n icon: 'select-possible',\n label: 'Select possible',\n },\n {\n value: 'select-excluded',\n icon: 'select-excluded',\n label: 'Select excluded',\n },\n {\n value: 'select-all',\n icon: 'select-all',\n label: 'Select all',\n },\n {\n value: 'bar-chart',\n icon: 'bar-chart',\n label: 'Bar chart',\n },\n {\n value: 'bar-chart-horizontal',\n icon: 'bar-chart-horizontal',\n label: 'Bar chart-horizontal',\n },\n {\n value: 'line-chart',\n icon: 'line-chart',\n label: 'Line chart',\n },\n {\n value: 'pie-chart',\n icon: 'pie-chart',\n label: 'Pie chart',\n },\n {\n value: 'gauge-chart',\n icon: 'gauge-chart',\n label: 'Gauge chart',\n },\n {\n value: 'kpi',\n icon: 'kpi',\n label: 'Kpi',\n },\n {\n value: 'scatter-chart',\n icon: 'scatter-chart',\n label: 'Scatter chart',\n },\n {\n value: 'map',\n icon: 'map',\n label: 'Map',\n },\n {\n value: 'table',\n icon: 'table',\n label: 'Table',\n },\n {\n value: 'pivot-table',\n icon: 'pivot-table',\n label: 'Pivot table',\n },\n {\n value: 'treemap',\n icon: 'treemap',\n label: 'Treemap',\n },\n {\n value: 'combo-chart',\n icon: 'combo-chart',\n label: 'Combo chart',\n },\n {\n value: 'boxplot',\n icon: 'boxplot',\n label: 'Boxplot',\n },\n {\n value: 'distributionplot',\n icon: 'distributionplot',\n label: 'Distributionplot',\n },\n {\n value: 'histogram',\n icon: 'histogram',\n label: 'Histogram',\n },\n {\n value: 'direct-discovery',\n icon: 'direct-discovery',\n label: 'Direct discovery',\n },\n {\n value: 'data-model',\n icon: 'data-model',\n label: 'Data model',\n },\n {\n value: 'script',\n icon: 'script',\n label: 'Script',\n },\n {\n value: 'script-ok',\n icon: 'script-ok',\n label: 'Script ok',\n },\n {\n value: 'debug',\n icon: 'debug',\n label: 'Debug',\n },\n {\n value: 'auto-layout',\n icon: 'auto-layout',\n label: 'Auto layout',\n },\n];\n","import actions, { checkShowAction } from './utils/actions';\nimport navigationActions, { checkShowNavigation } from './utils/navigation-actions';\nimport propertyResolver from './utils/property-resolver';\nimport importProperties from './utils/conversion';\nimport luiIcons from './utils/lui-icons';\n\nconst colorOptions = [\n {\n value: false,\n translation: 'properties.colorMode.primary',\n },\n {\n value: true,\n translation: 'properties.colorMode.byExpression',\n },\n];\n\nconst toggleOptions = [\n {\n value: true,\n translation: 'properties.on',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n];\n\nexport default function ext({ translator }) {\n return {\n definition: {\n type: 'items',\n component: 'accordion',\n items: {\n actions: {\n type: 'items',\n translation: 'Object.ActionButton.ActionsAndNavigation',\n grouped: true,\n items: {\n actions: {\n type: 'array',\n translation: 'Object.ActionButton.Actions',\n ref: 'actions',\n itemTitleRef: (data) => {\n if (data.actionLabel) {\n return data.actionLabel;\n }\n // If actionType exists but it's not found in the actions list,\n // the action is invalid for the current version of the button\n const fallbackTitle = data.actionType\n ? 'Object.ActionButton.InvalidAction'\n : 'Object.ActionButton.NewAction';\n const action = actions.find((act) => data.actionType === act.value);\n return translator.get((action && action.translation) || fallbackTitle);\n },\n allowAdd: true,\n allowRemove: true,\n allowMove: true,\n addTranslation: 'Object.ActionButton.AddAction',\n items: {\n label: {\n component: 'string',\n ref: 'actionLabel',\n translation: 'Common.Label',\n expression: 'optional',\n defaultValue: '',\n },\n actionType: {\n type: 'string',\n ref: 'actionType',\n component: 'expression-with-dropdown',\n translation: 'Object.ActionButton.Action',\n defaultValue: '',\n options: actions,\n dropdownOnly: true,\n },\n bookmark: {\n type: 'string',\n ref: 'bookmark',\n component: 'expression-with-dropdown',\n translation: 'ExpressionEditor.SetExpresions.Bookmark',\n defaultValue: '',\n dropdownOnly: true,\n options: async (action, hyperCubeHandler) => {\n const bms = await hyperCubeHandler.app.getBookmarkList();\n return bms.map((bookmark) => ({\n label: bookmark.qData.title,\n value: bookmark.qInfo.qId,\n }));\n },\n show: (data) => checkShowAction(data, 'bookmark'),\n },\n field: {\n type: 'string',\n ref: 'field',\n component: 'expression-with-dropdown',\n translation: 'Common.Field',\n defaultValue: '',\n dropdownOnly: true,\n options: async (action, hyperCubeHandler) => {\n const fields = await hyperCubeHandler.app.getFieldList();\n return fields.map((field) => ({\n label: field.qName,\n value: field.qName,\n }));\n },\n show: (data) => checkShowAction(data, 'field'),\n },\n variable: {\n type: 'string',\n ref: 'variable',\n component: 'expression-with-dropdown',\n translation: 'Common.Variable',\n defaultValue: '',\n expressionType: 'StringExpression',\n options: async (action, hyperCubeHandler) => {\n const variables = await hyperCubeHandler.app.getVariableList();\n return variables\n .filter((v) => !v.qIsReserved || (v.qIsReserved && action.showSystemVariables))\n .map((v) => ({\n label: v.qName,\n value: v.qName,\n }));\n },\n show: (data) => checkShowAction(data, 'variable'),\n },\n showSystemVariables: {\n type: 'boolean',\n ref: 'showSystemVariables',\n translation: 'ExpressionEditor.SystemVariables',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'variable'),\n },\n softLock: {\n type: 'boolean',\n ref: 'softLock',\n translation: 'Object.ActionButton.Softlock',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'softLock'),\n },\n value: {\n type: 'string',\n ref: 'value',\n component: 'string',\n translation: 'properties.value',\n expression: 'optional',\n show: (data) => checkShowAction(data, 'value'),\n },\n partial: {\n type: 'boolean',\n ref: 'partial',\n translation: 'Object.ActionButton.Partial',\n defaultValue: false,\n show: (data) => checkShowAction(data, 'partial'),\n },\n },\n },\n navigation: {\n translation: 'Object.ActionButton.Navigation',\n type: 'items',\n items: {\n action: {\n ref: 'navigation.action',\n translation: 'Object.ActionButton.Navigation',\n component: 'expression-with-dropdown',\n defaultValue: null,\n options: navigationActions,\n dropdownOnly: true,\n },\n sheetId: {\n type: 'string',\n ref: 'navigation.sheet',\n translation: 'properties.sheet',\n expression: 'optional',\n show: (data) => checkShowNavigation(data, 'sheetId'),\n },\n sheet: {\n type: 'string',\n ref: 'navigation.sheet',\n translation: 'properties.sheet',\n component: 'expression-with-dropdown',\n expressionType: 'StringExpression',\n show: (data) => checkShowNavigation(data, 'sheet'),\n options: async (action, hyperCubeHandler) => {\n const sheets = await hyperCubeHandler.app.getSheetList();\n return sheets.map((sheet) => ({\n value: sheet.qInfo.qId,\n label: sheet.qMeta.title,\n showCondition: sheet.qData.showCondition,\n }));\n },\n },\n story: {\n type: 'string',\n ref: 'navigation.story',\n translation: 'properties.story',\n component: 'expression-with-dropdown',\n expressionType: 'StringExpression',\n show: (data) => checkShowNavigation(data, 'story'),\n options: async (action, hyperCubeHandler) => {\n const stories = await hyperCubeHandler.app.getStoryList();\n return stories.map((story) => ({\n value: story.qInfo.qId,\n label: story.qMeta.title,\n }));\n },\n },\n websiteUrl: {\n type: 'string',\n expression: 'optional',\n ref: 'navigation.websiteUrl',\n translation: 'properties.website',\n show: (data) => checkShowNavigation(data, 'websiteUrl'),\n },\n sameWindow: {\n type: 'boolean',\n ref: 'navigation.sameWindow',\n translation: 'properties.sameWindow',\n show: (data) => checkShowNavigation(data, 'websiteUrl'),\n defaultValue: false,\n },\n },\n },\n },\n },\n enableCondition: {\n type: 'items',\n translation: 'properties.enableConditionSection',\n items: {\n useCondition: {\n type: 'boolean',\n component: 'switch',\n translation: 'properties.enableToggle',\n ref: 'useEnabledCondition',\n options: [\n {\n value: true,\n translation: 'properties.on',\n },\n {\n value: false,\n translation: 'properties.off',\n },\n ],\n },\n condition: {\n ref: 'enabledCondition',\n translation: 'properties.enableCondition',\n type: 'integer',\n expression: 'optional',\n show: (data) => data.useEnabledCondition,\n },\n },\n },\n settings: {\n component: 'expandable-items',\n translation: 'Common.Appearance',\n uses: 'settings',\n items: {\n general: {\n type: 'items',\n translation: 'properties.general',\n items: {\n showTitles: {},\n details: {\n show: false,\n },\n label: {\n component: 'string',\n ref: 'style.label',\n translation: 'Common.Label',\n expression: 'optional',\n },\n },\n },\n font: {\n grouped: true,\n type: 'items',\n translation: 'properties.font',\n items: {\n sizeAndColor: {\n type: 'items',\n items: {\n fontSize: {\n component: 'slider',\n type: 'number',\n ref: 'style.font.size',\n translation: 'properties.fontSize',\n min: 0.2,\n max: 1,\n step: 0.01,\n },\n useFontColorExpression: {\n ref: 'style.font.useColorExpression',\n type: 'boolean',\n translation: 'properties.fontColor',\n component: 'dropdown',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.font.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) => !propertyResolver.getValue(data, 'style.font.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.font.colorExpression',\n translation: 'Common.Expression',\n expression: 'optional',\n show: (data) => propertyResolver.getValue(data, 'style.font.useColorExpression'),\n },\n },\n },\n stylingAndAlign: {\n type: 'items',\n items: {\n fontStyling: {\n component: 'item-selection-list',\n type: 'string',\n ref: 'style.font.style',\n translation: 'properties.textStyle',\n horizontal: true,\n multipleSelect: true,\n items: [\n {\n component: 'icon-item',\n icon: 'bold',\n value: 'bold',\n translation: 'Common.bold',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'italic',\n value: 'italic',\n translation: 'Common.italic',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'underline',\n value: 'underline',\n translation: 'Common.underline',\n labelPlacement: 'bottom',\n },\n ],\n },\n textAlign: {\n component: 'item-selection-list',\n type: 'string',\n ref: 'style.font.align',\n translation: 'properties.Alignment',\n horizontal: true,\n items: [\n {\n component: 'icon-item',\n icon: 'align_left',\n value: 'left',\n translation: 'properties.dock.left',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'align_center',\n value: 'center',\n translation: 'Common.Center',\n labelPlacement: 'bottom',\n },\n {\n component: 'icon-item',\n icon: 'align_right',\n value: 'right',\n translation: 'properties.dock.right',\n labelPlacement: 'bottom',\n },\n ],\n },\n },\n },\n },\n },\n background: {\n grouped: true,\n type: 'items',\n translation: 'properties.background',\n items: {\n backgroundColor: {\n type: 'items',\n items: {\n useColorExpression: {\n ref: 'style.background.useColorExpression',\n type: 'boolean',\n translation: 'AppDetails.SheetBackgroundColor',\n component: 'dropdown',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.background.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) => !propertyResolver.getValue(data, 'style.background.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.background.colorExpression',\n translation: 'Common.Expression',\n expression: 'optional',\n show: (data) => propertyResolver.getValue(data, 'style.background.useColorExpression'),\n },\n },\n },\n backgroundImage: {\n type: 'items',\n items: {\n useBackgroundImage: {\n ref: 'style.background.useImage',\n type: 'boolean',\n translation: 'properties.backgroundImage.use',\n component: 'switch',\n options: toggleOptions,\n },\n backgroundUrl: {\n ref: 'style.background.url.qStaticContentUrlDef.qUrl',\n layoutRef: 'style.background.url.qStaticContentUrl.qUrl',\n schemaIgnore: true,\n translation: 'Common.Image',\n tooltip: { select: 'properties.media.select', remove: 'properties.media.removeBackground' },\n type: 'string',\n component: 'media',\n show(data) {\n return propertyResolver.getValue(data, 'style.background.useImage');\n },\n },\n backgroundSize: {\n ref: 'style.background.size',\n translation: 'properties.backgroundImage.size',\n type: 'string',\n component: 'dropdown',\n options: [\n {\n value: 'auto',\n translation: 'properties.backgroundImage.originalSize',\n },\n {\n value: 'alwaysFit',\n translation: 'properties.backgroundImage.sizeAlwaysFit',\n },\n {\n value: 'fitWidth',\n translation: 'properties.backgroundImage.sizeFitWidth',\n },\n {\n value: 'fitHeight',\n translation: 'properties.backgroundImage.sizeFitHeight',\n },\n {\n value: 'fill',\n translation: 'properties.backgroundImage.sizeStretch',\n },\n {\n value: 'alwaysFill',\n translation: 'properties.backgroundImage.sizeAlwaysFill',\n },\n ],\n show(data) {\n return (\n propertyResolver.getValue(data, 'style.background.useImage') &&\n !!propertyResolver.getValue(data, 'style.background.url.qStaticContentUrlDef.qUrl')\n );\n },\n },\n backgroundPosition: {\n ref: 'style.background.position',\n translation: 'Common.Position',\n type: 'string',\n component: 'align-matrix',\n show(data) {\n return (\n propertyResolver.getValue(data, 'style.background.useImage') &&\n propertyResolver.getValue(data, 'style.background.url.qStaticContentUrlDef.qUrl') &&\n propertyResolver.getValue(data, 'style.background.size') !== 'fill'\n );\n },\n currentSize(data) {\n return propertyResolver.getValue(data, 'style.background.size');\n },\n },\n },\n },\n },\n },\n border: {\n type: 'items',\n grouped: true,\n translation: 'properties.border',\n items: {\n borderSettings: {\n type: 'items',\n items: {\n useBorder: {\n ref: 'style.border.useBorder',\n type: 'boolean',\n translation: 'properties.border.use',\n component: 'switch',\n options: toggleOptions,\n },\n borderRadius: {\n component: 'slider',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n translation: 'properties.border.radius',\n type: 'number',\n ref: 'style.border.radius',\n min: 0,\n max: 1,\n step: 0.01,\n },\n borderWidth: {\n component: 'slider',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n type: 'number',\n ref: 'style.border.width',\n translation: 'properties.border.width',\n min: 0,\n max: 0.5,\n step: 0.005,\n },\n colorDropdown: {\n type: 'string',\n show: (data) => propertyResolver.getValue(data, 'style.border.useBorder'),\n component: 'dropdown',\n translation: 'properties.border.color',\n ref: 'style.border.useColorExpression',\n options: colorOptions,\n },\n colorPicker: {\n component: 'color-picker',\n type: 'object',\n ref: 'style.border.color',\n translation: 'properties.color',\n dualOutput: true,\n show: (data) =>\n propertyResolver.getValue(data, 'style.border.useBorder') &&\n !propertyResolver.getValue(data, 'style.border.useColorExpression'),\n },\n colorExpression: {\n component: 'string',\n type: 'string',\n ref: 'style.border.colorExpression',\n translation: 'Common.Expression',\n show: (data) =>\n propertyResolver.getValue(data, 'style.border.useBorder') &&\n propertyResolver.getValue(data, 'style.border.useColorExpression'),\n expression: 'optional',\n },\n },\n },\n },\n },\n icon: {\n type: 'items',\n grouped: true,\n translation: 'properties.icon',\n items: {\n iconSettings: {\n type: 'items',\n items: {\n useIcon: {\n ref: 'style.icon.useIcon',\n type: 'boolean',\n translation: 'properties.icon.use',\n component: 'switch',\n options: toggleOptions,\n },\n iconType: {\n ref: 'style.icon.iconType',\n component: 'expression-with-dropdown',\n translation: 'properties.icon',\n defaultValue: '',\n options: luiIcons,\n expressionType: 'StringExpression',\n show: (data) => propertyResolver.getValue(data, 'style.icon.useIcon'),\n },\n iconPosition: {\n ref: 'style.icon.position',\n component: 'dropdown',\n translation: 'Common.Position',\n options: [\n {\n translation: 'properties.dock.left',\n value: 'left',\n },\n {\n translation: 'properties.dock.right',\n value: 'right',\n },\n ],\n show: (data) => propertyResolver.getValue(data, 'style.icon.useIcon'),\n },\n },\n },\n },\n },\n },\n },\n },\n },\n importProperties,\n exportProperties: null,\n support: {\n export: !1,\n exportData: !1,\n snapshot: !1,\n viewData: !1,\n quickMobile: !0,\n },\n };\n}\n","const colorStruct = {\n aliceblue: { r: 240, g: 248, b: 255 },\n antiquewhite: { r: 250, g: 235, b: 215 },\n aqua: { r: 0, g: 255, b: 255 },\n aquamarine: { r: 127, g: 255, b: 212 },\n azure: { r: 240, g: 255, b: 255 },\n beige: { r: 245, g: 245, b: 220 },\n bisque: { r: 255, g: 228, b: 196 },\n black: { r: 0, g: 0, b: 0 },\n blanchedalmond: { r: 255, g: 235, b: 205 },\n blue: { r: 0, g: 0, b: 255 },\n blueviolet: { r: 138, g: 43, b: 226 },\n brown: { r: 165, g: 42, b: 42 },\n burlywood: { r: 222, g: 184, b: 135 },\n cadetblue: { r: 95, g: 158, b: 160 },\n chartreuse: { r: 127, g: 255, b: 0 },\n chocolate: { r: 210, g: 105, b: 30 },\n coral: { r: 255, g: 127, b: 80 },\n cornflowerblue: { r: 100, g: 149, b: 237 },\n cornsilk: { r: 255, g: 248, b: 220 },\n crimson: { r: 220, g: 20, b: 60 },\n cyan: { r: 0, g: 255, b: 255 },\n darkblue: { r: 0, g: 0, b: 139 },\n darkcyan: { r: 0, g: 139, b: 139 },\n darkgoldenrod: { r: 184, g: 134, b: 11 },\n darkgray: { r: 169, g: 169, b: 169 },\n darkgreen: { r: 0, g: 100, b: 0 },\n darkgrey: { r: 169, g: 169, b: 169 },\n darkkhaki: { r: 189, g: 183, b: 107 },\n darkmagenta: { r: 139, g: 0, b: 139 },\n darkolivegreen: { r: 85, g: 107, b: 47 },\n darkorange: { r: 255, g: 140, b: 0 },\n darkorchid: { r: 153, g: 50, b: 204 },\n darkred: { r: 139, g: 0, b: 0 },\n darksalmon: { r: 233, g: 150, b: 122 },\n darkseagreen: { r: 143, g: 188, b: 143 },\n darkslateblue: { r: 72, g: 61, b: 139 },\n darkslategray: { r: 47, g: 79, b: 79 },\n darkslategrey: { r: 47, g: 79, b: 79 },\n darkturquoise: { r: 0, g: 206, b: 209 },\n darkviolet: { r: 148, g: 0, b: 211 },\n deeppink: { r: 255, g: 20, b: 147 },\n deepskyblue: { r: 0, g: 191, b: 255 },\n dimgray: { r: 105, g: 105, b: 105 },\n dimgrey: { r: 105, g: 105, b: 105 },\n dodgerblue: { r: 30, g: 144, b: 255 },\n firebrick: { r: 178, g: 34, b: 34 },\n floralwhite: { r: 255, g: 250, b: 240 },\n forestgreen: { r: 34, g: 139, b: 34 },\n fuchsia: { r: 255, g: 0, b: 255 },\n gainsboro: { r: 220, g: 220, b: 220 },\n ghostwhite: { r: 248, g: 248, b: 255 },\n gold: { r: 255, g: 215, b: 0 },\n goldenrod: { r: 218, g: 165, b: 32 },\n gray: { r: 128, g: 128, b: 128 },\n green: { r: 0, g: 128, b: 0 },\n greenyellow: { r: 173, g: 255, b: 47 },\n grey: { r: 128, g: 128, b: 128 },\n honeydew: { r: 240, g: 255, b: 240 },\n hotpink: { r: 255, g: 105, b: 180 },\n indianred: { r: 205, g: 92, b: 92 },\n indigo: { r: 75, g: 0, b: 130 },\n ivory: { r: 255, g: 255, b: 240 },\n khaki: { r: 240, g: 230, b: 140 },\n lavender: { r: 230, g: 230, b: 250 },\n lavenderblush: { r: 255, g: 240, b: 245 },\n lawngreen: { r: 124, g: 252, b: 0 },\n lemonchiffon: { r: 255, g: 250, b: 205 },\n lightblue: { r: 173, g: 216, b: 230 },\n lightcoral: { r: 240, g: 128, b: 128 },\n lightcyan: { r: 224, g: 255, b: 255 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210 },\n lightgray: { r: 211, g: 211, b: 211 },\n lightgreen: { r: 144, g: 238, b: 144 },\n lightgrey: { r: 211, g: 211, b: 211 },\n lightpink: { r: 255, g: 182, b: 193 },\n lightsalmon: { r: 255, g: 160, b: 122 },\n lightseagreen: { r: 32, g: 178, b: 170 },\n lightskyblue: { r: 135, g: 206, b: 250 },\n lightslategray: { r: 119, g: 136, b: 153 },\n lightslategrey: { r: 119, g: 136, b: 153 },\n lightsteelblue: { r: 176, g: 196, b: 222 },\n lightyellow: { r: 255, g: 255, b: 224 },\n lime: { r: 0, g: 255, b: 0 },\n limegreen: { r: 50, g: 205, b: 50 },\n linen: { r: 250, g: 240, b: 230 },\n magenta: { r: 255, g: 0, b: 255 },\n maroon: { r: 128, g: 0, b: 0 },\n mediumaquamarine: { r: 102, g: 205, b: 170 },\n mediumblue: { r: 0, g: 0, b: 205 },\n mediumorchid: { r: 186, g: 85, b: 211 },\n mediumpurple: { r: 147, g: 112, b: 219 },\n mediumseagreen: { r: 60, g: 179, b: 113 },\n mediumslateblue: { r: 123, g: 104, b: 238 },\n mediumspringgreen: { r: 0, g: 250, b: 154 },\n mediumturquoise: { r: 72, g: 209, b: 204 },\n mediumvioletred: { r: 199, g: 21, b: 133 },\n midnightblue: { r: 25, g: 25, b: 112 },\n mintcream: { r: 245, g: 255, b: 250 },\n mistyrose: { r: 255, g: 228, b: 225 },\n moccasin: { r: 255, g: 228, b: 181 },\n navajowhite: { r: 255, g: 222, b: 173 },\n navy: { r: 0, g: 0, b: 128 },\n oldlace: { r: 253, g: 245, b: 230 },\n olive: { r: 128, g: 128, b: 0 },\n olivedrab: { r: 107, g: 142, b: 35 },\n orange: { r: 255, g: 165, b: 0 },\n orangered: { r: 255, g: 69, b: 0 },\n orchid: { r: 218, g: 112, b: 214 },\n palegoldenrod: { r: 238, g: 232, b: 170 },\n palegreen: { r: 152, g: 251, b: 152 },\n paleturquoise: { r: 175, g: 238, b: 238 },\n palevioletred: { r: 219, g: 112, b: 147 },\n papayawhip: { r: 255, g: 239, b: 213 },\n peachpuff: { r: 255, g: 218, b: 185 },\n peru: { r: 205, g: 133, b: 63 },\n pink: { r: 255, g: 192, b: 203 },\n plum: { r: 221, g: 160, b: 221 },\n powderblue: { r: 176, g: 224, b: 230 },\n purple: { r: 128, g: 0, b: 128 },\n rebeccapurple: { r: 102, g: 51, b: 153 },\n red: { r: 255, g: 0, b: 0 },\n rosybrown: { r: 188, g: 143, b: 143 },\n royalblue: { r: 65, g: 105, b: 225 },\n saddlebrown: { r: 139, g: 69, b: 19 },\n salmon: { r: 250, g: 128, b: 114 },\n sandybrown: { r: 244, g: 164, b: 96 },\n seagreen: { r: 46, g: 139, b: 87 },\n seashell: { r: 255, g: 245, b: 238 },\n sienna: { r: 160, g: 82, b: 45 },\n silver: { r: 192, g: 192, b: 192 },\n skyblue: { r: 135, g: 206, b: 235 },\n slateblue: { r: 106, g: 90, b: 205 },\n slategray: { r: 112, g: 128, b: 144 },\n slategrey: { r: 112, g: 128, b: 144 },\n snow: { r: 255, g: 250, b: 250 },\n springgreen: { r: 0, g: 255, b: 127 },\n steelblue: { r: 70, g: 130, b: 180 },\n tan: { r: 210, g: 180, b: 140 },\n teal: { r: 0, g: 128, b: 128 },\n thistle: { r: 216, g: 191, b: 216 },\n tomato: { r: 255, g: 99, b: 71 },\n transparent: { r: 255, g: 255, b: 255, a: 0 },\n turquoise: { r: 64, g: 224, b: 208 },\n violet: { r: 238, g: 130, b: 238 },\n wheat: { r: 245, g: 222, b: 179 },\n white: { r: 255, g: 255, b: 255 },\n whitesmoke: { r: 245, g: 245, b: 245 },\n yellow: { r: 255, g: 255, b: 0 },\n yellowgreen: { r: 154, g: 205, b: 50 },\n};\n\nexport default colorStruct;\n","/* eslint-disable no-cond-assign */\nimport CSSColors from './css-colors';\n\nconst colorUtils = {\n resolveExpression: input => {\n // rgb\n let matches = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(input);\n if (matches) {\n return `rgb(${matches[1]},${matches[2]},${matches[3]})`;\n }\n // argb\n matches = /^argb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i.exec(input);\n if (matches) {\n const a = Math.round((matches[1] / 255) * 100) / 100;\n return `rgba(${matches[2]},${matches[3]},${matches[4]},${a})`;\n }\n // hex\n matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(input);\n if (matches) {\n return input;\n }\n // css color\n const color = input && CSSColors[input.toLowerCase()];\n if (color) {\n const a = color.a !== undefined ? color.a : 1;\n return `rgba(${color.r},${color.g},${color.b},${a})`;\n }\n // invalid\n return 'none';\n },\n getFadedColor(color) {\n const percent = 0.15;\n let f; let R; let B; let G;\n if (color.length > 7) {\n f = color.split(',');\n const rgba = f[0].indexOf('a') !== -1;\n R = rgba ? parseInt(f[0].slice(5), 10) : parseInt(f[0].slice(4), 10);\n G = parseInt(f[1], 10);\n B = parseInt(f[2], 10);\n return `${(rgba ? 'rgba(' : 'rgb(') + (Math.round((0 - R) * percent) + R)},${Math.round((0 - G) * percent) + G},${Math.round((0 - B) * percent) + B}${rgba ? `,${f[3]}` : ')'}`;\n }\n f = parseInt(color.slice(1), 16);\n R = f >> 16;\n G = (f >> 8) & 0x00FF;\n B = f & 0x0000FF;\n return `#${(0x1000000 + (Math.round((0 - R) * percent) + R) * 0x10000 + (Math.round((0 - G) * percent) + G) * 0x100 + (Math.round((0 - B) * percent) + B)).toString(16).slice(1)}`;\n }\n};\n\nexport default colorUtils;\n","const getImageUrl = (imgUrl) => {\n imgUrl.replace(/^\\.\\.\\//i, '/');\n imgUrl = imgUrl.replace(/\"/g, '\\\\\"');\n imgUrl = imgUrl.replace(/'/g, \"\\\\'\");\n const a = document.createElement('a');\n a.href = '../';\n const rootPath = a.href;\n imgUrl = rootPath + (imgUrl[0] === '/' ? imgUrl.substr(1) : imgUrl);\n return imgUrl;\n};\n\nexport default {\n getImageUrl,\n};\n","import colorUtils from './color-utils';\nimport luiIcons from './lui-icons';\nimport urlUtils from './url-utils';\n\nconst backgroundSize = {\n auto: 'auto auto',\n alwaysFit: 'contain',\n fitWidth: '100% auto',\n fitHeight: 'auto 100%',\n fill: '100% 100%',\n alwaysFill: 'cover',\n};\n\nconst backgroundPosition = {\n topLeft: '0% 0%', // top left\n centerLeft: '50% 0%', // center left\n bottomLeft: '100% 0%', // bottom left\n topCenter: '0% 50%', // top center\n centerCenter: '50% 50%', // center center\n bottomCenter: '100% 50%', // bottom center\n topRight: '0% 100%', // top right\n centerRight: '50% 100%', // center right\n bottomRight: '100% 100%', // bottom right\n};\n\nconst formatProperty = (path, setting) => `${path}: ${setting};`;\n\nconst getColor = ({ useColorExpression, colorExpression, color }, defaultColor, theme) => {\n let resolvedColor;\n if (useColorExpression) {\n resolvedColor = colorUtils.resolveExpression(colorExpression);\n } else if (typeof color === 'string') {\n resolvedColor = color;\n } else if (color) {\n resolvedColor = theme.getColorPickerColor(color);\n }\n return !resolvedColor || resolvedColor === 'none' ? defaultColor : resolvedColor;\n};\n\nexport default {\n getStyles({ style, disabled, theme, element }) {\n let styles =\n 'width: 100%;height: 100%;transition: transform .1s ease-in-out;position: absolute;bottom: 0;left: 0; top: 0;right: 0;margin: auto;';\n const { font, background, border } = style;\n const primaryColor = theme.getDataColorSpecials().primary;\n // enable\n styles += disabled ? formatProperty('opacity', 0.4) : formatProperty('cursor', 'pointer');\n // font\n styles += formatProperty('color', getColor(font, '#ffffff', theme));\n font.style.bold && (styles += formatProperty('font-weight', 'bold'));\n font.style.italic && (styles += formatProperty('font-style', 'italic'));\n // background\n const backgroundColor = getColor(background, primaryColor, theme);\n styles += formatProperty('background-color', backgroundColor);\n if (background.useImage && background.url.qStaticContentUrl) {\n let bgUrl = background.url.qStaticContentUrl.qUrl;\n if (bgUrl) {\n bgUrl = urlUtils.getImageUrl(bgUrl);\n styles += formatProperty('background-image', `url('${bgUrl}')`);\n styles += formatProperty('background-size', backgroundSize[background.size]);\n styles += formatProperty('background-position', backgroundPosition[background.position]);\n styles += formatProperty('background-repeat', 'no-repeat');\n }\n }\n // border\n if (border.useBorder) {\n const lengthShortSide = Math.min(element.offsetWidth, element.offsetHeight);\n const borderColor = getColor(border, colorUtils.getFadedColor(backgroundColor), theme);\n const borderSize = (border.width * lengthShortSide) / 2;\n styles += formatProperty('border', `${borderSize}px solid ${borderColor}`);\n styles += formatProperty('border-radius', `${(border.radius * lengthShortSide) / 2}px`);\n } else {\n styles += 'border: none;';\n }\n\n return styles;\n },\n createLabelAndIcon({ button, theme, style, isSense }) {\n const { icon, font, label } = style;\n // text element wrapping label and icon\n const text = document.createElement('text');\n text.style.whiteSpace = 'nowrap';\n text.style.fontFamily = theme.getStyle('', '', 'fontFamily');\n // label\n const textSpan = document.createElement('span');\n textSpan.textContent = label;\n textSpan.style.whiteSpace = 'nowrap';\n textSpan.style.textOverflow = 'ellipsis';\n textSpan.style.overflow = 'visible';\n font.style.underline && (textSpan.style.textDecoration = 'underline');\n text.appendChild(textSpan);\n // icon\n const hasIcon = isSense && icon.useIcon && icon.iconType !== '';\n if (hasIcon) {\n const iconSpan = document.createElement('span');\n const iconType = luiIcons.find((iconObj) => iconObj.label === icon.iconType || iconObj.value === icon.iconType);\n iconSpan.style.textDecoration = 'none';\n iconSpan.style.fontSize = 'inherit';\n iconSpan.setAttribute('class', `lui-icon lui-icon--${iconType ? iconType.value : ''}`);\n icon.position === 'left' ? text.insertBefore(iconSpan, textSpan) : text.appendChild(iconSpan);\n }\n button.innerHTML = '';\n button.appendChild(text);\n\n // Calculations on font size.\n // 1. Setting font size to height of button container\n text.style.fontSize = `${button.clientHeight}px`;\n // 2. Adjust the font size to the height ratio between button container and text box\n let newFontsize = (button.clientHeight / text.offsetHeight) * button.clientHeight;\n text.style.fontSize = `${newFontsize}px`;\n // 3. Adjust the font size to the width ratio between button container and text box\n if (text.offsetWidth > button.clientWidth) {\n newFontsize *= button.clientWidth / text.offsetWidth;\n }\n // 4. Setting final font size by scaling with the font size from the layout + other font styling\n if (font.style.italic) {\n if (hasIcon) {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.84, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.04}px`;\n text.children[1].style.marginRight = `${text.offsetWidth * 0.04}px`;\n } else {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.9, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.02}px`;\n }\n } else if (hasIcon) {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.88, 8)}px`;\n text.children[0].style.marginRight = `${text.offsetWidth * 0.04}px`;\n } else {\n text.style.fontSize = `${Math.max(newFontsize * font.size * 0.92, 8)}px`;\n }\n // hide overflow when there can be overflow\n if (text.style.fontSize === '8px') {\n text.children.forEach((child) => {\n child.style.overflow = 'hidden';\n });\n }\n text.style.margin = '0 3%';\n text.style.display = 'flex';\n text.style.alignItems = 'center';\n text.style.justifyContent = font.align === 'left' ? 'flex-start' : font.align === 'right' ? 'flex-end' : 'center';\n },\n};\n","import allActions from '../utils/actions';\nimport navigationActions from '../utils/navigation-actions';\nimport styleFormatter from '../utils/style-formatter';\n\nexport const runActions = async (actionList) => {\n for (let i = 0; i < actionList.length; i++) {\n // eslint-disable-next-line no-await-in-loop\n await actionList[i]();\n }\n};\n\nexport default function renderButton({ layout, theme, app, constraints, senseNavigation, element }) {\n const isSense = !!senseNavigation;\n const button = element.firstElementChild;\n const { style, qStateName } = layout;\n const disabled = layout.useEnabledCondition && layout.enabledCondition === 0;\n const isClickable = !disabled && !constraints.active;\n const formattedStyles = styleFormatter.getStyles({ style, disabled, theme, element });\n button.setAttribute('style', formattedStyles);\n styleFormatter.createLabelAndIcon({ button, theme, style, isSense });\n\n button.onclick = async () => {\n if (isClickable) {\n const actionCallList = [];\n const { actions } = layout;\n actions.forEach((action) => {\n const actionObj = allActions.find((act) => act.value === action.actionType);\n actionObj && actionCallList.push(actionObj.getActionCall({ app, qStateName, ...action }));\n });\n button.setAttribute('disabled', true);\n await runActions(actionCallList);\n if (senseNavigation && !senseNavigation.getCurrentStoryId()) {\n const { navigation } = layout;\n const navigationObject = navigation && navigationActions.find((nav) => nav.value === navigation.action);\n if (senseNavigation && navigationObject && typeof navigationObject.navigationCall === 'function') {\n await navigationObject.navigationCall({ app, senseNavigation, ...navigation });\n }\n }\n button.removeAttribute('disabled');\n }\n };\n\n const scale = () => {\n if (isClickable) {\n const { offsetWidth, offsetHeight } = button;\n button.style.transform =\n offsetHeight > offsetWidth\n ? `scale(${0.98}, ${1 - (offsetWidth / offsetHeight) * 0.02})`\n : `scale(${1 - (offsetHeight / offsetWidth) * 0.02}, ${0.98})`;\n }\n };\n\n const resetScale = () => {\n const { transform } = button.style;\n if (isClickable && transform !== '' && transform !== 'scale(1)') {\n button.style.transform = 'scale(1)';\n }\n };\n\n button.onmousedown = (event) => {\n if (event.button === 0) {\n scale();\n }\n };\n button.onmouseup = resetScale;\n button.onmouseleave = resetScale;\n button.ontouchstart = scale;\n button.ontouchend = resetScale;\n button.ontouchcancel = resetScale;\n\n return () => {\n button.onclick = undefined;\n button.onmousedown = undefined;\n button.onmouseup = undefined;\n button.onmouseleave = undefined;\n button.ontouchstart = undefined;\n button.ontouchend = undefined;\n button.ontouchcancel = undefined;\n };\n}\n","import { useElement, useStaleLayout, useEffect, useMemo, useApp, useConstraints, useTheme } from '@nebula.js/stardust';\n\nimport properties from './object-properties';\nimport data from './data';\nimport ext from './ext';\n\nimport renderButton from './components/action-button';\n\nexport default function supernova(env) {\n const { sense, translator } = env;\n const senseNavigation = sense && sense.navigation;\n properties.style.label = sense ? translator.get('Object.ActionButton') : 'Button';\n return {\n qae: {\n properties,\n data,\n },\n component() {\n const element = useElement();\n const theme = useTheme();\n\n useMemo(() => {\n const button = document.createElement('button');\n button.appendChild(document.createElement('text'));\n element.appendChild(button);\n }, []);\n\n const layout = useStaleLayout();\n const app = useApp();\n const constraints = useConstraints();\n\n const cleanup = renderButton({ element, layout, constraints, theme, app, senseNavigation });\n\n useEffect(\n () => () => {\n cleanup();\n },\n [element]\n );\n },\n ext: ext({ translator }),\n };\n}\n"],"names":["properties","showTitles","title","subtitle","footnote","useEnabledCondition","enabledCondition","navigation","action","style","label","font","size","useColorExpression","color","index","colorExpression","bold","italic","underline","align","background","useImage","url","qStaticContentUrlDef","qUrl","position","border","useBorder","radius","width","icon","useIcon","iconType","actions","targets","getValueList","app","values","isDate","valuesArray","split","dateExpression","forEach","date","evaluate","slice","convertedDates","map","value","Number","isNaN","qText","qIsNumeric","qNumber","translation","group","getActionCall","bookmark","getBookmarkList","bookMarks","findBm","find","bm","qData","applyBookmark","qInfo","qId","requiredInput","back","forward","softLock","clearAll","qStateName","field","getField","fieldObj","clearAllButThis","clear","selectAll","getFieldDescription","fieldInfo","qTags","includes","valueList","selectValues","select","selectAlternative","selectExcluded","selectPossible","toggleSelect","lockAll","lock","unlockAll","unlock","variable","getVariableByName","variableObj","setStringValue","partial","doReload","doSave","checkShowAction","data","act","actionType","indexOf","evaluateCondition","condition","length","condVal","toLowerCase","inIframe","window","self","top","error","getOrderedVisibleSheet","getSheetList","sheets","visibleSheets","filter","sheet","Util","showCondition","sort","current","next","rank","navigationActions","navigationCall","senseNavigation","nextSheet","prevSheet","goToSheet","story","goToStory","websiteUrl","sameWindow","match","target","open","checkShowNavigation","nav","getValue","dataContainer","reference","defaultValue","i","steps","undefined","convertNavigation","oldType","importProperties","exportedFmt","initialProperties","newPropertyTree","qChildren","newProperties","props","fullWidth","qLayoutExclude","disabled","visualization","Object","keys","key","buttonLabel","buttonShowIcon","buttonIconLui","buttonTextAlign","actionItems","actionItem","newAction","selectedBookmark","selectedField","cId","push","convertAction","navigationAction","sheetId","selectedSheet","selectedStory","qProperty","colorOptions","toggleOptions","ext","translator","definition","type","component","items","grouped","ref","itemTitleRef","actionLabel","fallbackTitle","get","allowAdd","allowRemove","allowMove","addTranslation","expression","options","dropdownOnly","hyperCubeHandler","bms","show","getFieldList","fields","qName","expressionType","getVariableList","variables","v","qIsReserved","showSystemVariables","qMeta","getStoryList","stories","enableCondition","useCondition","settings","uses","general","details","sizeAndColor","fontSize","min","max","step","useFontColorExpression","colorPicker","dualOutput","propertyResolver","stylingAndAlign","fontStyling","horizontal","multipleSelect","labelPlacement","textAlign","backgroundColor","backgroundImage","useBackgroundImage","backgroundUrl","layoutRef","schemaIgnore","tooltip","remove","backgroundSize","backgroundPosition","currentSize","borderSettings","borderRadius","borderWidth","colorDropdown","iconSettings","luiIcons","iconPosition","exportProperties","support","export","exportData","snapshot","viewData","quickMobile","colorStruct","aliceblue","r","g","b","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","transparent","a","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorUtils","input","matches","exec","Math","round","CSSColors","f","R","B","G","percent","rgba","parseInt","toString","imgUrl","replace","document","createElement","href","substr","auto","alwaysFit","fitWidth","fitHeight","fill","alwaysFill","topLeft","centerLeft","bottomLeft","topCenter","centerCenter","bottomCenter","topRight","centerRight","bottomRight","formatProperty","path","setting","getColor","defaultColor","theme","resolvedColor","getColorPickerColor","element","styles","primaryColor","getDataColorSpecials","primary","qStaticContentUrl","bgUrl","urlUtils","lengthShortSide","offsetWidth","offsetHeight","borderColor","borderSize","button","isSense","text","whiteSpace","fontFamily","getStyle","textSpan","textContent","textOverflow","overflow","textDecoration","appendChild","hasIcon","iconSpan","iconObj","setAttribute","insertBefore","innerHTML","clientHeight","newFontsize","clientWidth","children","marginRight","child","margin","display","alignItems","justifyContent","runActions","actionList","env","sense","qae","useElement","useTheme","useMemo","layout","useStaleLayout","useApp","constraints","useConstraints","cleanup","firstElementChild","isClickable","active","formattedStyles","styleFormatter","onclick","actionCallList","actionObj","allActions","getCurrentStoryId","navigationObject","removeAttribute","scale","transform","resetScale","onmousedown","event","onmouseup","onmouseleave","ontouchstart","ontouchend","ontouchcancel","renderButton","useEffect"],"mappings":"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AAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,sBACPlB,KAAM,sBACNrB,MAAO,uBAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,eACPlB,KAAM,eACNrB,MAAO,gBAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,iBACPlB,KAAM,iBACNrB,MAAO,kBAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,oBACPlB,KAAM,oBACNrB,MAAO,qBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,qBACPlB,KAAM,qBACNrB,MAAO,sBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,kBACPlB,KAAM,kBACNrB,MAAO,mBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,uBACPlB,KAAM,uBACNrB,MAAO,wBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,gBACPlB,KAAM,gBACNrB,MAAO,iBAET,CACEuC,MAAO,MACPlB,KAAM,MACNrB,MAAO,OAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,eAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,mBACPlB,KAAM,mBACNrB,MAAO,oBAET,CACEuC,MAAO,aACPlB,KAAM,aACNrB,MAAO,cAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,YACPlB,KAAM,YACNrB,MAAO,aAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,cACPlB,KAAM,cACNrB,MAAO,gBC/wBL8K,EAAe,CACnB,CACEvI,OAAO,EACPM,YAAa,gCAEf,CACEN,OAAO,EACPM,YAAa,sCAIXkI,EAAgB,CACpB,CACExI,OAAO,EACPM,YAAa,iBAEf,CACEN,OAAO,EACPM,YAAa,mBAIF,SAASmI,mBAAMC,IAAAA,iBACrB,CACLC,WAAY,CACVC,KAAM,QACNC,UAAW,YACXC,MAAO,CACL7J,QAAS,CACP2J,KAAM,QACNtI,YAAa,2CACbyI,SAAS,EACTD,MAAO,CACL7J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"}