@nebula.js/sn-action-button 1.10.0 → 1.10.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, enableSheetShow, senseNavigation }) => {\n const sheets = enableSheetShow ? await getOrderedVisibleSheet(app) : await getOrderedSheets(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, enableSheetShow, senseNavigation }) => {\n const sheets = enableSheetShow ? await getOrderedVisibleSheet(app) : await getOrderedSheets(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, enableReloadAction }) {\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.filter((a) => enableReloadAction || a.value !== 'doReload'),\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;';\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, enableSheetShow }) {\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, enableSheetShow, 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, flags } = env;\n const senseNavigation = sense && sense.navigation;\n const { isEnabled } = flags;\n const enableSheetShow = isEnabled('SHEET_SHOW_CONDITION');\n const enableReloadAction = isEnabled('ACTION_BUTTON_RELOAD');\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, enableSheetShow });\n\n useEffect(\n () => () => {\n cleanup();\n },\n [element]\n );\n },\n ext: ext({ translator, enableReloadAction }),\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","getOrderedSheets","getSheetList","sheets","sort","current","next","rank","getOrderedVisibleSheet","visibleSheets","filter","sheet","Util","showCondition","navigationActions","navigationCall","senseNavigation","nextSheet","prevSheet","enableSheetShow","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","enableReloadAction","definition","type","component","items","grouped","ref","itemTitleRef","actionLabel","fallbackTitle","get","allowAdd","allowRemove","allowMove","addTranslation","expression","options","a","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","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorUtils","input","matches","exec","Math","round","CSSColors","f","R","B","G","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","flags","isEnabled","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":";;;;;;2QAAA,IAAMA,EAAa,CAIjBC,YAAY,EAIZC,MAAO,GAIPC,SAAU,GAIVC,SAAU,GAIVC,qBAAqB,EAIrBC,iBAAkB,EAIlBC,WAAY,CACVC,OAAQ,QAKVC,MAAO,CAILC,MAAO,SAIPC,KAAM,CAIJC,KAAM,GAINC,oBAAoB,EAIpBC,MAAO,CACLC,OAAQ,EACRD,MAAO,MAKTE,gBAAiB,GAIjBP,MAAO,CACLQ,MAAM,EACNC,QAAQ,EACRC,WAAW,GAKbC,MAAO,UAKTC,WAAY,CAIVR,oBAAoB,EAIpBC,MAAO,CACLC,OAAQ,EACRD,MAAO,MAKTE,gBAAiB,GAIjBM,UAAU,EAIVC,IAAK,CAIHC,qBAAsB,CAIpBC,KAAM,KAMVb,KAAM,OAINc,SAAU,gBAKZC,OAAQ,CAINC,WAAW,EAIXC,OAAQ,EAIRC,MAAO,EAIPjB,oBAAoB,EAIpBC,MAAO,CACLC,OAAQ,EACRD,MAAO,MAKTE,gBAAiB,IAKnBe,KAAM,CAIJC,SAAS,EAITC,SAAU,GAIVP,SAAU,SAMdQ,QAAS,MC9KI,CACbC,QAAS,u/BCDJ,IAAMC,8CAAe,WAAOC,EAAKC,EAAQC,gGAC1CC,EAAcF,EAAOG,MAAM,MAC3BF,yBACEG,EAAiB,GACrBF,EAAYG,SAAQ,SAACC,GACnBF,kBAA0BE,yBAECP,EAAIQ,SAASH,EAAeI,MAAM,GAAI,WAA7DC,SACNP,EAAcO,EAAeN,MAAM,qCAE9BD,EAAYQ,KAAI,SAACC,UAAWC,OAAOC,OAAOF,GAAS,CAAEG,MAAOH,GAAU,CAAEI,YAAY,EAAMC,QAASJ,OAAOD,6GAG7Gf,EAAU,CACd,CACEe,MAAO,gBACPM,YAAa,oCACbC,MAAO,WACPC,cAAe,gBAAGpB,IAAAA,IAAKqB,IAAAA,2CAAe,qHACZrB,EAAIsB,4BAAtBC,SACAC,EAASD,EAAUE,MAAK,SAACC,UAAOA,EAAGC,MAAM9D,QAAUwD,UACzDA,wCAAmBrB,EAAI4B,cAAeJ,GAAUA,EAAOK,OAASL,EAAOK,MAAMC,KAAQT,+CAEvFU,cAAe,CAAC,aAElB,CACEnB,MAAO,OACPM,YAAa,mCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,sCAAU,6GACpBA,EAAIgC,mDAEZD,cAAe,IAEjB,CACEnB,MAAO,UACPM,YAAa,kCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,sCAAU,6GACpBA,EAAIiC,sDAEZF,cAAe,IAEjB,CACEnB,MAAO,WACPM,YAAa,+BACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKkC,IAAAA,2CAAe,6GAC9BlC,EAAImC,SAASD,+CAErBH,cAAe,CAAC,aAElB,CACEnB,MAAO,kBACPM,YAAa,sCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOH,IAAAA,2CAAe,uGACnDG,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASC,gBAAgBN,+CAGnCH,cAAe,CAAC,QAAS,aAE3B,CACEnB,MAAO,aACPM,YAAa,4CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,wCAAY,uGACzCA,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASE,oDAGnBV,cAAe,CAAC,UAElB,CACEnB,MAAO,YACPM,YAAa,uCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOH,IAAAA,2CAAe,uGACnDG,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASG,UAAUR,+CAG7BH,cAAe,CAAC,QAAS,aAE3B,CACEnB,MAAO,eACPM,YAAa,0CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOzB,IAAAA,MAAOsB,IAAAA,2CAAe,2GAC1DG,IAASzB,mCACYZ,EAAIsC,SAASD,EAAOD,iBAArCG,kBACkBvC,EAAI2C,oBAAoBN,iBAA1CO,kBACkB7C,EAAaC,EAAKY,EAAOgC,EAAUC,MAAMC,SAAS,wBAApEC,mBACAR,EAASS,aAAaD,GAAW,EAAOb,gDAGlDH,cAAe,CAAC,QAAS,QAAS,aAEpC,CACEnB,MAAO,uBACPM,YAAa,2CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOzB,IAAAA,MAAOsB,IAAAA,2CAAe,uGAC1DG,IAASzB,kCACYZ,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASU,OAAOrC,GAAO,EAAOsB,+CAGxCH,cAAe,CAAC,QAAS,QAAS,aAEpC,CACEnB,MAAO,oBACPM,YAAa,yCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOH,IAAAA,2CAAe,uGACnDG,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASW,kBAAkBhB,+CAGrCH,cAAe,CAAC,QAAS,aAE3B,CACEnB,MAAO,iBACPM,YAAa,qCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOH,IAAAA,2CAAe,uGACnDG,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASY,eAAejB,+CAGlCH,cAAe,CAAC,QAAS,aAE3B,CACEnB,MAAO,iBACPM,YAAa,2CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOH,IAAAA,2CAAe,uGACnDG,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASa,eAAelB,+CAGlCH,cAAe,CAAC,QAAS,aAE3B,CACEnB,MAAO,eACPM,YAAa,2CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,MAAOzB,IAAAA,MAAOsB,IAAAA,2CAAe,uGAC1DG,IAASzB,kCACYZ,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASc,aAAazC,EAAOsB,+CAGvCH,cAAe,CAAC,QAAS,QAAS,aAEpC,CACEnB,MAAO,UACPM,YAAa,wCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,sCAAU,6GACpBA,EAAIsD,sDAEZvB,cAAe,IAEjB,CACEnB,MAAO,YACPM,YAAa,gCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,wCAAY,uGACzCA,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASgB,mDAGnBxB,cAAe,CAAC,UAElB,CACEnB,MAAO,YACPM,YAAa,0CACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,sCAAU,6GACpBA,EAAIwD,wDAEZzB,cAAe,IAEjB,CACEnB,MAAO,cACPM,YAAa,mCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAKoC,IAAAA,WAAYC,IAAAA,wCAAY,uGACzCA,kCACqBrC,EAAIsC,SAASD,EAAOD,iBAArCG,kBACAA,EAASkB,qDAGnB1B,cAAe,CAAC,UAElB,CACEnB,MAAO,cACPM,YAAa,kCACbC,MAAO,YACPC,cAAe,gBAAGpB,IAAAA,IAAK0D,IAAAA,SAAU9C,IAAAA,wCAAY,uGACvC8C,IAAY9C,4CAEcZ,EAAI2D,kBAAkBD,iBAA1CE,kBACAA,EAAYC,eAAejD,oHAMvCmB,cAAe,CAAC,WAAY,UAE9B,CACEnB,MAAO,WACPM,YAAa,+BACbC,MAAO,SACPC,cAAe,gBAAGpB,IAAAA,IAAK8D,IAAAA,0CAAc,6GACnB9D,EAAI+D,SAAS,IAAKD,GAAS,qDAEnC9D,EAAIgE,qDAGdjC,cAAe,CAAC,aAIb,SAASkC,EAAgBC,EAAM7B,OAC9B8B,EAAMtE,EAAQ4B,MAAK,SAACtD,UAAW+F,EAAKE,aAAejG,EAAOyC,gBACzDuD,GAAOA,EAAIpC,gBAAuD,IAAtCoC,EAAIpC,cAAcsC,QAAQhC,yBC9NhD,CAAEiC,kBAdjB,SAA2BC,MAErBA,GAAaA,EAAUC,QAAU,GAAsB,MAAjBD,EAAU,IAA+B,MAAjBA,EAAU,UACnE,MAGHE,EAAUF,GAAaA,GAAa,SAEtC1D,OAAOC,OAAO2D,GACmB,SAA5BF,EAAUG,cAEA,IAAZD,ICTHE,EAAW,sBAENC,OAAOC,OAASD,OAAOE,IAC9B,MAAOC,UACA,IAIEC,8CAAmB,WAAOhF,yGAChBA,EAAIiF,6BAAnBC,2BACCA,EAAOC,MAAK,SAACC,EAASC,UAASD,EAAQzD,MAAM2D,KAAOD,EAAK1D,MAAM2D,0GAG3DC,8CAAyB,WAAOvF,2GACtBA,EAAIiF,6BAAnBC,SACAM,EAAgBN,EAAOO,QAAO,SAACC,UAAUC,EAAKrB,kBAAkBoB,EAAM/D,MAAMiE,oCAC3EJ,EAAcL,MAAK,SAACC,EAASC,UAASD,EAAQzD,MAAM2D,KAAOD,EAAK1D,MAAM2D,0GAGzEO,EAAoB,CACxB,CACE3E,YAAa,mCACbN,MAAO,QAET,CACEM,YAAa,oCACbN,MAAO,YACPkF,6CAAgB,2GAASC,IAAAA,yBACjBA,EAAgBC,oGAExBjE,cAAe,IAEjB,CACEb,YAAa,wCACbN,MAAO,YACPkF,6CAAgB,2GAASC,IAAAA,yBACjBA,EAAgBE,oGAExBlE,cAAe,IAEjB,CACEb,YAAa,oCACbN,MAAO,YACPkF,6CAAgB,6GAAS9F,IAAAA,IAAKkG,IAAAA,gBAAiBH,IAAAA,iBAC9BG,kCAAwBX,EAAuBvF,6DAAagF,EAAiBhF,qCAAtFkF,iBACAa,EAAgBI,UAAUjB,EAAOA,EAAOV,OAAS,GAAG3C,MAAMC,8FAElEC,cAAe,IAEjB,CACEb,YAAa,qCACbN,MAAO,aACPkF,6CAAgB,6GAAS9F,IAAAA,IAAKkG,IAAAA,gBAAiBH,IAAAA,iBAC9BG,kCAAwBX,EAAuBvF,6DAAagF,EAAiBhF,qCAAtFkF,iBACAa,EAAgBI,UAAUjB,EAAO,GAAGrD,MAAMC,8FAElDC,cAAe,IAGjB,CACEb,YAAa,iCACbN,MAAO,YACPkF,6CAAgB,yGAASC,IAAAA,gBAAiBL,IAAAA,WACxCA,wCAAgBK,EAAgBI,UAAUT,2FAG5C3D,cAAe,CAAC,UAElB,CACEb,YAAa,oCACbN,MAAO,gBACPkF,6CAAgB,yGAASC,IAAAA,gBAAiBL,IAAAA,WACxCA,wCAAgBK,EAAgBI,UAAUT,2FAG5C3D,cAAe,CAAC,YAElB,CACEb,YAAa,gCACbN,MAAO,YACPkF,6CAAgB,yGAASC,IAAAA,gBAAiBK,IAAAA,WACxCA,wCAAgBL,EAAgBM,UAAUD,2FAE5CrE,cAAe,CAAC,UAElB,CACEb,YAAa,uCACbN,MAAO,cACPkF,6CAAgB,0GAASQ,IAAAA,WAAYC,IAAAA,eAE7BD,IACIpH,EAAMoH,EAAWE,MAAM,0BAA4BF,mBAAuBA,GAC5EG,EAAS,GACTF,IACFE,EAAS9B,IAAa,UAAY,SAEpCC,OAAO8B,KAAKxH,EAAKuH,IAEnB,MAAO1B,4FAIXhD,cAAe,CAAC,gBAIP4E,EAAsB,SAACzC,EAAM7B,OAClCuE,EAAMf,EAAkBpE,MAAK,SAACvD,UAAegG,EAAKhG,WAAWC,SAAWD,EAAW0C,gBAClFgG,GAAOA,EAAI7E,gBAAuD,IAAtC6E,EAAI7E,cAAcsC,QAAQhC,UC9FhD,CACbwE,SAjBF,SAAkBC,EAAeC,EAAWC,OAEtCC,EADEC,EAAQH,EAAU3G,MAAM,aAER+G,IAAlBL,SACKE,MAEJC,EAAI,EAAGA,EAAIC,EAAM1C,SAAUyC,EAAG,SACM,IAA5BH,EAAcI,EAAMD,WACtBD,EAETF,EAAgBA,EAAcI,EAAMD,WAG/BH,ICoBF,SAASM,EAAkBC,UACxBA,OACD,kBACI,gBACJ,sBACI,oBACJ,kBACI,gBACJ,qBACI,sBAEAA,GAIb,IAAMC,EAAmB,SAACC,EAAaC,OAC/BC,EAAkB,CAAEC,UAAW,IAC/BC,KACJ9H,QAAS,GAET+H,MAAO,CAAE5J,oBAAqB,KAAM6J,UAAW,QAC/CC,eAAgB,CAAEC,SAAU,KACzBP,UAGDD,GAAwD,+BAAzCA,EAAY5J,WAAWqK,eACxCC,OAAOC,KAAKX,EAAY5J,YAAY2C,SAAQ,SAAA6H,OACtCP,SACIO,OACD,QACHP,EAAQL,EAAY5J,WAAWwK,GAC/BR,EAAcvJ,MAAMC,MAAQuJ,EAAMQ,YAClCT,EAAcvJ,MAAMsB,KAAKC,QAAUiI,EAAMS,eACzCV,EAAcvJ,MAAMsB,KAAKE,SAAWgI,EAAMU,cAC1CX,EAAcvJ,MAAME,KAAKS,MAAQ6I,EAAMW,gBACvCZ,EAAc3J,oBAAsB4J,EAAM5J,oBAC1C2J,EAAc1J,iBAAmB2J,EAAM3J,iBACvC2J,EAAMY,aACJZ,EAAMY,YAAYlI,SAAQ,SAAAmI,IAvE/B,SAAuBtK,EAAQwJ,OAC9Be,EAAY,CAChBtE,WAAYjG,EAAOiG,WACnB/C,SAAUlD,EAAOwK,iBAEjBtG,MAAOlE,EAAOyK,cAEdlF,SAAUvF,EAAOuF,SACjB9C,MAAOzC,EAAOyC,MACdsB,SAAU/D,EAAO+D,SACjB2G,IAAK1K,EAAO0K,YAEN1K,EAAOiG,gBACR,aACHsE,EAAUtE,WAAa,4BAEpB,uBACHsE,EAAUtE,WAAa,WACvBsE,EAAUxG,UAAW,YAElB,cACHwG,EAAUtE,WAAa,iCAEpB,qBACHuD,EAAc9H,QAAQiJ,YAAUJ,OAAWG,IAAK,KAAMzE,WAAY,0BAClEsE,EAAUtE,WAAa,YAKpBuD,EAAc9H,QAAQiJ,KAAKJ,GA0CtBK,CAAcN,EAAYd,MAE9BA,EAAczJ,WAAa,CACzBC,OAAQiJ,EAAkBQ,EAAMoB,kBAEhCtD,MAAkC,kBAA3BkC,EAAMoB,iBAAuCpB,EAAMqB,QAAUrB,EAAMsB,cAC1E9C,MAAOwB,EAAMuB,cACb7C,WAAYsB,EAAMtB,WAClBC,WAAYqB,EAAMrB,sBAGjB,iBACA,iBACA,YACA,eACA,WACHoB,EAAcQ,GAAOZ,EAAY5J,WAAWwK,OAOpDV,EAAgB2B,UAAYzB,EACrBF,KChGM,CACb,CACE7G,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,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,QACPlB,KAAM,QACNrB,MAAO,SAET,CACEuC,MAAO,OACPlB,KAAM,OACNrB,MAAO,QAET,CACEuC,MAAO,SACPlB,KAAM,SACNrB,MAAO,UAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,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/wBLgL,EAAe,CACnB,CACEzI,OAAO,EACPM,YAAa,gCAEf,CACEN,OAAO,EACPM,YAAa,sCAIXoI,EAAgB,CACp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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, enableSheetShow, senseNavigation }) => {\n const sheets = enableSheetShow ? await getOrderedVisibleSheet(app) : await getOrderedSheets(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, enableSheetShow, senseNavigation }) => {\n const sheets = enableSheetShow ? await getOrderedVisibleSheet(app) : await getOrderedSheets(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, enableReloadAction }) {\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.filter((a) => enableReloadAction || a.value !== 'doReload'),\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, enableSheetShow }) {\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, enableSheetShow, 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, flags } = env;\n const senseNavigation = sense && sense.navigation;\n const { isEnabled } = flags;\n const enableSheetShow = isEnabled('SHEET_SHOW_CONDITION');\n const enableReloadAction = isEnabled('ACTION_BUTTON_RELOAD');\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, enableSheetShow });\n\n useEffect(\n () => () => {\n cleanup();\n },\n [element]\n );\n },\n ext: ext({ translator, enableReloadAction }),\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","getOrderedSheets","getSheetList","sheets","sort","current","next","rank","getOrderedVisibleSheet","visibleSheets","filter","sheet","Util","showCondition","navigationActions","navigationCall","senseNavigation","nextSheet","prevSheet","enableSheetShow","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","enableReloadAction","definition","type","component","items","grouped","ref","itemTitleRef","actionLabel","fallbackTitle","get","allowAdd","allowRemove","allowMove","addTranslation","expression","options","a","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","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorUtils","input","matches","exec","Math","round","CSSColors","f","R","B","G","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","flags","isEnabled","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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B,MAAO,UAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,WACPlB,KAAM,WACNrB,MAAO,YAET,CACEuC,MAAO,UACPlB,KAAM,UACNrB,MAAO,WAET,CACEuC,MAAO,OACPlB,KAAM,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/wBLgL,EAAe,CACnB,CACEzI,OAAO,EACPM,YAAa,gCAEf,CACEN,OAAO,EACPM,YAAa,sCAIXoI,EAAgB,CACp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"}