(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{

/***/ "+DHQ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ PresetsController_PresetsController; });

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/inversify.config.ts + 6 modules
var inversify_config = __webpack_require__("JscO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/types.ts
var types = __webpack_require__("ovpn");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostNames.ts
var HostNames = __webpack_require__("U05r");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/IllustratorPresetModel.ts + 3 modules
var IllustratorPresetModel = __webpack_require__("YXYy");

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/UnitsUtils.ts
var UnitsUtils = __webpack_require__("Fr31");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/HostUtils.ts
var HostUtils = __webpack_require__("BwkI");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts + 1 modules
var MathUtils = __webpack_require__("AGvf");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ArtboardModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const ArtboardModel = mobx_state_tree_module["h" /* types */].model({
    top: mobx_state_tree_module["h" /* types */].number,
    left: mobx_state_tree_module["h" /* types */].number,
    bottom: mobx_state_tree_module["h" /* types */].number,
    right: mobx_state_tree_module["h" /* types */].number,
});
/* harmony default export */ var models_ArtboardModel = (ArtboardModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/GuideModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const GuideModel = mobx_state_tree_module["h" /* types */].model({
    direction: mobx_state_tree_module["h" /* types */].string,
    coordinate: mobx_state_tree_module["h" /* types */].number,
});
/* harmony default export */ var models_GuideModel = (GuideModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ColorProfileModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const ColorProfileModel = mobx_state_tree_module["h" /* types */].model({
    STANDARD: mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string),
    OTHER: mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string),
});
/* harmony default export */ var models_ColorProfileModel = (ColorProfileModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ColorModeModel.ts
var ColorModeModel = __webpack_require__("u948");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ColorSettingModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const ColorSettingModel = mobx_state_tree_module["h" /* types */].model({
    policy: mobx_state_tree_module["h" /* types */].string,
    workingProfile: mobx_state_tree_module["h" /* types */].string,
    workingDisplayText: mobx_state_tree_module["h" /* types */].string,
});
/* harmony default export */ var models_ColorSettingModel = (ColorSettingModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DocumentTemplateModel.ts
var DocumentTemplateModel = __webpack_require__("CQbc");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/ColorUtils.tsx + 1 modules
var ColorUtils = __webpack_require__("0mF0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/PhotoshopPresetModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














const PhotoshopPresetModel = mobx_state_tree_module["h" /* types */]
    .model('PhotoshopPresetModel', {
    ...DocumentTemplateModel["b" /* Model */],
    tip: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    thumbnail: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    icon: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    kind: DocumentTemplateKind["a" /* default */].PRESET,
    group: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    profile: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    resolutionUnits: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    pointsPerInch: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    picasPerInch: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    depth: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    scale: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    mode: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    fill: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].map(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].number)))),
    guides: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(models_GuideModel)),
    artboards: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(models_ArtboardModel)),
    colorProfileLists: mobx_state_tree_module["h" /* types */].map(models_ColorProfileModel),
    colorSettings: mobx_state_tree_module["h" /* types */].map(models_ColorSettingModel),
    colorModes: mobx_state_tree_module["h" /* types */].array(ColorModeModel["a" /* default */]),
    backgroundValues: mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string),
    lastOpened: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    maxDocWidth: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 300000),
    maxDocHeight: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 300000),
    maxResolution: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 29999.99),
    minDocWidth: 1,
    minDocHeight: 1,
    minResolution: 1,
    defaultBackground: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].map(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].number))),
    defaultBackgroundRgb: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].map(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].number))),
    customRgbColor: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].map(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].number))),
    userLocaleDecimal: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
})
    .volatile(self => ({
    host: HostNames["a" /* default */].PHOTOSHOP,
}))
    // defining these actions and views before the others so that they're accessible in them and don't throw
    .actions(self => ({
    updateFill: Object(mobx_state_tree_module["d" /* flow */])(function* updateFill(value, defaultValue) {
        self.fill = value || defaultValue;
        // The fill value is used both for background strings (black, white, custom, transparent, and for custom colors ( rgb(a,b,c)))
        // So we keep a copy in customRgbColor every time we change it
        if (self.fill && typeof self.fill !== 'string') {
            self.customRgbColor = yield Object(ColorUtils["a" /* convertToRgb */])(Object(mobx_module["F" /* toJS */])(self.fill));
        }
    }),
    updateColorProfile(value) {
        self.profile = value;
    },
}))
    .views(DocumentTemplateModel["d" /* Views */])
    .views(self => ({
    get displayBackground() {
        let background;
        // The fill value is used both for background strings (black, white, custom, transparent, and for custom colors ( rgb(a,b,c)))
        // If it comes back as an object, the background should be set to 'custom'
        if (self.fill && typeof self.fill !== 'string') {
            background = 'custom';
        }
        else {
            background = self.fill || 'white';
        }
        return background;
    },
    get displayBackgroundValues() {
        if (self.mode !== 'bitmap') {
            return self.backgroundValues;
        }
        return self.backgroundValues.filter(el => el !== 'transparent');
    },
    get displayCustomColor() {
        let colorToDisplay;
        // if the fill contains a color map, in any format, return that directly
        if (self.fill && typeof self.fill !== 'string') {
            colorToDisplay = Object(mobx_module["F" /* toJS */])(self.fill);
        }
        else {
            if (self.fill === 'custom') {
                colorToDisplay = self.customRgbColor;
            }
            else {
                colorToDisplay = Object(ColorUtils["b" /* mapBackgroundToRgbColor */])(self.fill || 'white', Object(mobx_module["F" /* toJS */])(self.defaultBackgroundRgb));
            }
        }
        return colorToDisplay;
    },
    get hasArtboards() {
        return self.artboards && self.artboards.length > 0;
    },
    /**
     * Given a color mode and depth, provide a list of lists of color profiles suitable for tag consumption. Also
     * injects "none" and "default" options in some cases.
     *
     * @returns Array containing color profiles to render.
     */
    get displayColorProfileLists() {
        const mode = self.mode || '';
        const profiles = Object(mobx_state_tree_module["b" /* cast */])([]);
        const colorSetting = self.colorSettings.get(mode);
        const policy = colorSetting && colorSetting.policy;
        const workingProfile = colorSetting && colorSetting.workingProfile;
        const workingDisplayText = colorSetting && colorSetting.workingDisplayText;
        let sublist;
        // prepare standard set of options
        profiles[0] = Object(mobx_state_tree_module["b" /* cast */])([]);
        // color management is required for 32 bit depth.  include "none" all others
        if (self.depth !== 32) {
            profiles[0].push({ value: 'none' });
        }
        // For non-lab and bitmap modes, include working profile option
        if (['Lab', 'bitmap', ''].indexOf(mode) === -1) {
            // Depending on policy, working should be above or below the previous option
            if (policy !== 'off') {
                // When policy if ON, the working option should specify 'default'
                profiles[0].unshift({ value: 'default', label: workingDisplayText });
            }
            else {
                // When policy is OFF, the working option must explicitly provide PS the profile name
                // LE: It should still be first in the list, regardless
                profiles[0].unshift({ value: workingProfile || 'default', label: workingDisplayText });
            }
        }
        // Get the profile-specific color profiles
        if (['RGB', 'CMYK', 'grayscale'].indexOf(mode) >= 0 && self.colorProfileLists.has(mode)) {
            sublist = self.colorProfileLists.get(mode);
            profiles.push(sublist.STANDARD);
            profiles.push(sublist.OTHER);
        }
        return profiles;
    },
}))
    .actions(self => ({
    updateColorMode(colorMode) {
        let { mode, values } = colorMode;
        let nextColorModeDepth;
        if (!values) {
            const matchingMode = self.colorModes && self.colorModes.filter(el => el.mode === mode);
            values = (matchingMode[0] && matchingMode[0].values) || [8];
        }
        // If the current color depth is available in the new color mode, then keep that color.
        // Otherwise, select the first color depth option.
        if (values.indexOf(self.depth) === -1) {
            nextColorModeDepth = values[0];
        }
        else {
            nextColorModeDepth = self.depth;
        }
        self.depth = nextColorModeDepth;
        self.mode = colorMode.mode;
        // if we had a transparent background and we switched to 'bitmap', autoselect the first background available
        if (self.mode === 'bitmap' && self.fill === 'transparent') {
            self.updateFill(self.displayBackgroundValues[0], self.defaultBackground);
        }
        // color profile list depends on color mode, so make sure it's still valid
        const profiles = self.displayColorProfileLists;
        if (profiles.length &&
            !profiles.filter(group => group.filter(el => (el.value ? el.value === self.profile : el === self.profile)).length).length) {
            self.updateColorProfile(profiles[0][0].value ? profiles[0][0].value : profiles[0][0]);
        }
    },
}))
    .views(self => ({
    get displayColorModes() {
        if (self.hasArtboards) {
            return self.colorModes.filter(el => el.mode === 'RGB');
        }
        return self.colorModes;
    },
    get displayMaxDocWidth() {
        if (!self.units) {
            return self.maxDocWidth;
        }
        const value = Object(UnitsUtils["r" /* convert */])(self.maxDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
        return Object(MathUtils["d" /* floorDecimal */])(value, HostUtils["d" /* RoundingRules */][self.units]);
    },
    get displayMaxDocHeight() {
        if (!self.units) {
            return self.maxDocHeight;
        }
        const value = Object(UnitsUtils["r" /* convert */])(self.maxDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
        return Object(MathUtils["d" /* floorDecimal */])(value, HostUtils["d" /* RoundingRules */][self.units]);
    },
    get displayMinDocWidth() {
        if (!self.units) {
            return self.minDocWidth;
        }
        const value = Object(UnitsUtils["r" /* convert */])(self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
        return Object(MathUtils["a" /* ceilDecimal */])(value, HostUtils["d" /* RoundingRules */][self.units]);
    },
    get displayMinDocHeight() {
        if (!self.units) {
            return self.minDocHeight;
        }
        const value = Object(UnitsUtils["r" /* convert */])(self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
        return Object(MathUtils["a" /* ceilDecimal */])(value, HostUtils["d" /* RoundingRules */][self.units]);
    },
    get displayWidth() {
        const width = typeof self.width !== 'undefined' ? self.width : NaN;
        if (!self.units) {
            return width;
        }
        return Object(MathUtils["f" /* roundDecimal */])(width, HostUtils["d" /* RoundingRules */][self.units]);
    },
    get displayHeight() {
        const height = typeof self.height !== 'undefined' ? self.height : NaN;
        if (!self.units) {
            return height;
        }
        return Object(MathUtils["f" /* roundDecimal */])(height, HostUtils["d" /* RoundingRules */][self.units]);
    },
}))
    .actions(self => ({
    // immediately after the model creation, call updateFill to initialize defaultBackground and customRgbColor
    afterCreate: Object(mobx_state_tree_module["d" /* flow */])(function* afterCreate() {
        // only convert the value if it doesn't come already converted to RGB
        if (!self.defaultBackgroundRgb) {
            self.defaultBackgroundRgb = yield Object(ColorUtils["a" /* convertToRgb */])(Object(mobx_module["F" /* toJS */])(self.defaultBackground));
        }
        self.updateFill(self.fill, self.defaultBackground);
    }),
    updateDimensionUnit(newUnit) {
        if (!self.units) {
            return;
        }
        self.width = Object(UnitsUtils["r" /* convert */])(self.width || self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        self.height = Object(UnitsUtils["r" /* convert */])(self.height || self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        // This will trigger the update of the display options
        self.units = newUnit;
        // due to the fact that the min is ceil-ed, the max is floor-ed but the actual value is rounded,
        // the value can get out of the interval at the edges when converting from unit to unit
        self.width = Math.min(Math.max(self.width, self.displayMinDocWidth), self.displayMaxDocWidth);
        self.height = Math.min(Math.max(self.height, self.displayMinDocHeight), self.displayMaxDocHeight);
        // TODO revisit this after MAX
        this.updateArtboards(self.hasArtboards);
    },
    updateNumericValue(property, value) {
        const currentValue = typeof value === 'undefined' ? NaN : value;
        self[property] = typeof currentValue === 'string' ? parseFloat(currentValue) : currentValue;
    },
    updateWidth(value) {
        this.updateNumericValue('width', value);
        // TODO revisit this after MAX
        this.updateArtboards(self.hasArtboards);
    },
    updateHeight(value) {
        this.updateNumericValue('height', value);
        // TODO revisit this after MAX
        this.updateArtboards(self.hasArtboards);
    },
    updateResolution(value) {
        this.updateNumericValue('resolution', value);
        // TODO revisit this after MAX
        this.updateArtboards(self.hasArtboards);
    },
    toggleOrientation(value) {
        if (value !== self.orientation) {
            const oldWidth = self.width;
            self.width = self.height;
            self.height = oldWidth;
            // TODO revisit this after MAX
            this.updateArtboards(self.hasArtboards);
        }
    },
    updateArtboards(hasArtboards) {
        if (hasArtboards && self.units) {
            self.artboards = Object(mobx_state_tree_module["b" /* cast */])([
                {
                    bottom: Object(UnitsUtils["r" /* convert */])(self.height || self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], self),
                    left: 0,
                    right: Object(UnitsUtils["r" /* convert */])(self.width || self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], self),
                    top: 0,
                },
            ]);
            // color mode list depends on artboards, so make sure it's still valid
            const colorModes = self.displayColorModes;
            if (colorModes.length && !colorModes.filter(el => el.mode === self.mode).length) {
                self.updateColorMode(colorModes[0]);
            }
        }
        else {
            self.artboards = Object(mobx_state_tree_module["b" /* cast */])([]);
        }
    },
    updateResolutionUnit(newUnit) {
        if (self.resolutionUnits) {
            // from and to are inverted since resolution is pixel/<newUnit>
            self.resolution = Object(UnitsUtils["r" /* convert */])(self.resolution, UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        }
        self.resolutionUnits = newUnit;
    },
    updateEncoding(value) {
        self.depth = value;
    },
    updateAspectRatio(value) {
        self.scale = parseFloat(value);
    },
}))
    .views(self => ({
    get docStep() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["n" /* PhotoshopStepValues */][self.units];
    },
    get slowStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["l" /* PhotoshopSecondaryStepMultiplier */][self.units];
    },
    get fastStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["m" /* PhotoshopShiftStepMultiplier */][self.units];
    },
    get displayMaxResolution() {
        if (!self.resolutionUnits ||
            !self.units ||
            UnitsUtils["q" /* UnitIdToMeasurement */][self.units] === UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS]) {
            return self.maxResolution;
        }
        const widthInResolutionUnits = Object(UnitsUtils["r" /* convert */])(self.width || self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const heightInResolutionUnits = Object(UnitsUtils["r" /* convert */])(self.height || self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const maxWidthResolution = self.maxDocWidth / widthInResolutionUnits;
        const maxHeightResolution = self.maxDocHeight / heightInResolutionUnits;
        const defaultMaxResolution = Object(UnitsUtils["r" /* convert */])(self.maxResolution, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].INCHES], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const result = Math.min(maxWidthResolution, maxHeightResolution, defaultMaxResolution);
        return Object(MathUtils["d" /* floorDecimal */])(result, HostUtils["d" /* RoundingRules */].resolution);
    },
    get displayMinResolution() {
        if (!self.resolutionUnits ||
            !self.units ||
            UnitsUtils["q" /* UnitIdToMeasurement */][self.units] === UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS]) {
            return self.minResolution;
        }
        const widthInResolutionUnits = Object(UnitsUtils["r" /* convert */])(self.width || self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const heightInResolutionUnits = Object(UnitsUtils["r" /* convert */])(self.height || self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const minWidthResolution = self.minDocWidth / widthInResolutionUnits;
        const minHeightResolution = self.minDocHeight / heightInResolutionUnits;
        const defaultMinResolution = Object(UnitsUtils["r" /* convert */])(self.minResolution, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].INCHES], UnitsUtils["q" /* UnitIdToMeasurement */][self.resolutionUnits], self);
        const result = Math.max(minWidthResolution, minHeightResolution, defaultMinResolution);
        return Object(MathUtils["a" /* ceilDecimal */])(result, HostUtils["d" /* RoundingRules */].resolution);
    },
    get displayResolution() {
        return Math.min(this.displayMaxResolution, Object(MathUtils["f" /* roundDecimal */])(self.resolution, HostUtils["d" /* RoundingRules */].resolution));
    },
    get orientation() {
        if (typeof self.height === 'undefined' || typeof self.width === 'undefined') {
            return undefined; // should default from default settings
        }
        return self.height >= self.width ? DocumentTemplateModel["c" /* Orientation */].PORTRAIT : DocumentTemplateModel["c" /* Orientation */].LANDSCAPE;
    },
    get displayColorMode() {
        return self.mode;
    },
    get displayColorDepth() {
        return self.depth;
    },
    get defaultCustomColor() {
        // a default color for the picker: the last selected custom color, the default PS background, or white
        return self.customRgbColor || self.defaultBackground || Object(ColorUtils["b" /* mapBackgroundToRgbColor */])('white');
    },
    get displayCustomColorRgbString() {
        // check again if the background is 'custom' so that we force the UI to use the RGB version of the fill (customRgbColor)
        // We're doing this because displayCustomColor is also used by the picker, which needs the fill in the original format, not necessarily rgb
        const colorToDisplay = self.displayBackground === 'custom' ? self.customRgbColor : self.displayCustomColor;
        return colorToDisplay && Object(ColorUtils["d" /* rgbColorToString */])(Object(ColorUtils["c" /* normalizeColorObject */])(Object(mobx_module["F" /* toJS */])(colorToDisplay)));
    },
}));
/* harmony default export */ var models_PhotoshopPresetModel = (PhotoshopPresetModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/SideDimensionsModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const SideDimensionsModel = mobx_state_tree_module["h" /* types */]
    .model('SideDimensionsModel', {
    top: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    bottom: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    left: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    right: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
})
    .views(self => ({
    get asArray() {
        return [self.left, self.top, self.right, self.bottom];
    },
}))
    .actions(self => ({
    updateValues(values) {
        [self.left, self.top, self.right, self.bottom] = values;
    },
}));
/* harmony default export */ var models_SideDimensionsModel = (SideDimensionsModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/UnitInfoModel.ts
var UnitInfoModel = __webpack_require__("jEX6");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/PreviewModel.ts
var PreviewModel = __webpack_require__("tIky");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DialogTooltipsModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const UnprocessedDialogTooltipsModel = mobx_state_tree_module["h" /* types */].model({
    tipDocumentPresetCard: mobx_state_tree_module["h" /* types */].string,
    tipDocPreset: mobx_state_tree_module["h" /* types */].string,
    tipSavePreset: mobx_state_tree_module["h" /* types */].string,
    tipDeletePreset: mobx_state_tree_module["h" /* types */].string,
    tipLandscape: mobx_state_tree_module["h" /* types */].string,
    tipPotrait: mobx_state_tree_module["h" /* types */].string,
    tipColumns: mobx_state_tree_module["h" /* types */].string,
    tipColNum: mobx_state_tree_module["h" /* types */].string,
    tipColGutter: mobx_state_tree_module["h" /* types */].string,
    tipMargin: mobx_state_tree_module["h" /* types */].string,
    tipBleed: mobx_state_tree_module["h" /* types */].string,
    tipSlug: mobx_state_tree_module["h" /* types */].string,
    tipChainValues: mobx_state_tree_module["h" /* types */].string,
    bindingText: mobx_state_tree_module["h" /* types */].string,
    layoutGridBtnText: mobx_state_tree_module["h" /* types */].string,
    marginBtnText: mobx_state_tree_module["h" /* types */].string,
    tipLeftToRight: mobx_state_tree_module["h" /* types */].string,
    tipRightToLeft: mobx_state_tree_module["h" /* types */].string,
    tipPrimaryTextFrame: mobx_state_tree_module["h" /* types */].string,
    previewText: mobx_state_tree_module["h" /* types */].string,
});
const DialogTooltipsModel = mobx_state_tree_module["h" /* types */].snapshotProcessor(UnprocessedDialogTooltipsModel, {
    preProcessor(snapshot) {
        const modifiedSnapshot = snapshot ? JSON.parse(JSON.stringify(snapshot)) : snapshot;
        if (modifiedSnapshot && modifiedSnapshot.bindingText) {
            modifiedSnapshot.bindingText = modifiedSnapshot.bindingText.replace(/\s/g, '').replace(':', '');
        }
        return modifiedSnapshot;
    },
});
/* harmony default export */ var models_DialogTooltipsModel = (DialogTooltipsModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/IngestUtil.ts
var IngestUtil = __webpack_require__("nrFN");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/InDesignPresetModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* eslint-disable @typescript-eslint/naming-convention */













const UnprocessedInDesignPresetModel = mobx_state_tree_module["h" /* types */]
    .model('InDesignPresetModel', {
    ...DocumentTemplateModel["b" /* Model */],
    unitInfo: mobx_state_tree_module["h" /* types */].maybe(UnitInfoModel["a" /* UnitInfoModel */]),
    pointsPerInch: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 72),
    picasPerInch: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 6),
    units: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'inchesUnit'),
    docSizeBoundMax: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 10000),
    docSizeBoundMin: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
    bTall: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    numPagesBoundMin: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    numPagesBoundMax: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    startPageBoundMin: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    startPageBoundMax: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    start_page_num: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    num_pages: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    facing_pages: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    pages_per_spread: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
    auto_text_frame: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    colNumBoundMin: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    colNumBoundMax: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    columns: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    column_orientation: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    colGutterBoundMin: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    colGutterBoundMax: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    gutter: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    hideDltBtn: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    intent: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    isPreset: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    restart_page_num: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    spreadScale: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].number)),
    colorMode: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    page_binding: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    minColumnWidth: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    template_category: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].enumeration(Object.values(DocumentTemplateCategoryTypes["a" /* default */]))),
    thumbnail_url: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    kind: DocumentTemplateKind["a" /* default */].PRESET,
    // see if the locale shows ',' instead of '.' for decimal numbers. Here 1.2 is taken as an example. One more thing to take care is
    // that in the localised string there can be commas as thousands separators.
    decimalPoint: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string), '.'),
    mime_type: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'image/indesign'),
    // bleed related data
    uniform_bleed: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    bleedBoundMin: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    bleedBoundMax: mobx_state_tree_module["h" /* types */].number,
    bleed_offset: mobx_state_tree_module["h" /* types */].optional(models_SideDimensionsModel, {}),
    // margins related data
    uniform_margins: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    marginBoundMin: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    marginBoundMax: mobx_state_tree_module["h" /* types */].number,
    margins: mobx_state_tree_module["h" /* types */].optional(models_SideDimensionsModel, {}),
    // slug related data
    uniform_slug: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    slugBoundMin: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    slugBoundMax: mobx_state_tree_module["h" /* types */].number,
    slug_offset: mobx_state_tree_module["h" /* types */].optional(models_SideDimensionsModel, {}),
    // these aren't used directly by the UI, but we need to keep them in order to rebuild the object before we open it in ID
    id: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    previews: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(PreviewModel["a" /* default */])),
    price_prompt: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    tip: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    title: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    // dialog tootlips
    dialogToolTips: mobx_state_tree_module["h" /* types */].maybe(models_DialogTooltipsModel),
    previewModeEnabled: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    // Japanese
    jp_doc_type: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    jpLastDocType: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    originalPreset: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
})
    .volatile(self => ({
    host: HostNames["a" /* default */].INDESIGN,
}))
    .views(DocumentTemplateModel["d" /* Views */])
    .views(self => ({
    get bleedValues() {
        return self.bleed_offset.asArray;
    },
    get slugValues() {
        return self.slug_offset.asArray;
    },
    get lockBleed() {
        return self.uniform_bleed;
    },
    get lockSlug() {
        return self.uniform_slug;
    },
    get marginsValues() {
        return self.margins.asArray;
    },
    get lockMargins() {
        return self.uniform_margins;
    },
    get facingPages() {
        return self.facing_pages;
    },
    get pageBinding() {
        return self.page_binding !== undefined && self.page_binding.toString();
    },
    get autoTextFrame() {
        return self.auto_text_frame;
    },
    get jpDocType() {
        return self.jp_doc_type;
    },
    get docSizeMin() {
        if (!self.units) {
            return self.docSizeBoundMin;
        }
        return Object(UnitsUtils["r" /* convert */])(self.docSizeBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMaxDocWidth() {
        if (!self.units) {
            return self.docSizeBoundMax;
        }
        return Object(UnitsUtils["r" /* convert */])(self.docSizeBoundMax, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMaxDocHeight() {
        if (!self.units) {
            return self.docSizeBoundMax;
        }
        return Object(UnitsUtils["r" /* convert */])(self.docSizeBoundMax, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMinDocWidth() {
        return Math.min(this.docSizeMin + self.margins.left + self.margins.right, this.displayMaxDocWidth);
    },
    get displayMinDocHeight() {
        return Math.min(this.docSizeMin + self.margins.top + self.margins.bottom, this.displayMaxDocHeight);
    },
}))
    .actions(self => ({
    updatePreviewModeEnabled(value) {
        self.previewModeEnabled = value;
    },
    updateNumericValue(property, value) {
        const currentValue = typeof value === 'undefined' ? NaN : value;
        self[property] = typeof currentValue === 'string' ? parseFloat(currentValue) : currentValue;
    },
    updateWidth(value) {
        this.updateNumericValue('width', value);
    },
    updateHeight(value) {
        this.updateNumericValue('height', value);
    },
    updateBleedValues(values) {
        self.bleed_offset.updateValues(values);
    },
    updateSlugValues(values) {
        self.slug_offset.updateValues(values);
    },
    updateBleedLock(value) {
        self.uniform_bleed = value;
    },
    updateSlugLock(value) {
        self.uniform_slug = value;
    },
    updateMarginsValues(values) {
        self.margins.updateValues(values);
    },
    updateMarginsLock(value) {
        self.uniform_margins = value;
    },
    updateFacingPages(value) {
        self.facing_pages = value;
        self.pages_per_spread = value ? 2 : 1;
    },
    updatePageBinding(value) {
        self.page_binding = parseInt(value);
    },
    updateAutoTextFrame(value) {
        self.auto_text_frame = value;
    },
    updateJpDocType(value) {
        self.jp_doc_type = value;
    },
    updateNumPages(value) {
        value =
            self.numPagesBoundMin &&
                self.numPagesBoundMax &&
                Object(MathUtils["b" /* constrainToRange */])(value, self.numPagesBoundMin, self.numPagesBoundMax);
        self.num_pages = value;
    },
    updateStartPageNum(value) {
        value =
            self.startPageBoundMin &&
                self.startPageBoundMax &&
                Object(MathUtils["b" /* constrainToRange */])(value, self.startPageBoundMin, self.startPageBoundMax);
        self.start_page_num = value;
    },
    updateColumns(value) {
        value =
            self.colNumBoundMin &&
                self.colNumBoundMax &&
                Object(MathUtils["b" /* constrainToRange */])(value, self.colNumBoundMin, self.colNumBoundMax);
        self.columns = value;
    },
    updateGutter(value) {
        self.gutter = value;
    },
    toggleOrientation(value) {
        if (value !== self.orientation) {
            const oldWidth = self.width;
            self.width = self.height;
            self.height = oldWidth;
            self.bTall = value === DocumentTemplateModel["c" /* Orientation */].PORTRAIT;
        }
    },
}))
    .views(self => ({
    get startPageNum() {
        return self.start_page_num || self.startPageBoundMin;
    },
    get pageCount() {
        return self.num_pages || self.numPagesBoundMin;
    },
}))
    .views(self => ({
    get docStep() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["k" /* InDesignStepValues */][self.units];
    },
    get slowStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["i" /* InDesignSecondaryStepMultiplier */][self.units];
    },
    get fastStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["j" /* InDesignShiftStepMultiplier */][self.units];
    },
    get minBleed() {
        if (!self.units) {
            return self.bleedBoundMin;
        }
        return Object(UnitsUtils["r" /* convert */])(self.bleedBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get maxBleed() {
        if (!self.units) {
            return self.bleedBoundMax;
        }
        return Object(UnitsUtils["r" /* convert */])(self.bleedBoundMax, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get minMargins() {
        if (!self.units) {
            return self.marginBoundMin;
        }
        return Object(UnitsUtils["r" /* convert */])(self.marginBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get maxMargins() {
        if (!self.units) {
            return self.marginBoundMax;
        }
        return Object(UnitsUtils["r" /* convert */])(self.marginBoundMax, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get minSlug() {
        if (!self.units) {
            return self.slugBoundMin;
        }
        return Object(UnitsUtils["r" /* convert */])(self.slugBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get maxSlug() {
        if (!self.units) {
            return self.slugBoundMax;
        }
        return Object(UnitsUtils["r" /* convert */])(self.slugBoundMax, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get minColGutter() {
        if (!self.units) {
            return self.colGutterBoundMin || 0;
        }
        return Object(UnitsUtils["r" /* convert */])(self.colGutterBoundMin || 0, UnitsUtils["q" /* UnitIdToMeasurement */].pixelsUnit, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get orientation() {
        if (typeof self.height === 'undefined' || typeof self.width === 'undefined') {
            return undefined; // should default from default settings
        }
        return self.height >= self.width ? DocumentTemplateModel["c" /* Orientation */].PORTRAIT : DocumentTemplateModel["c" /* Orientation */].LANDSCAPE;
    },
}))
    .actions(self => ({
    updateDimensionUnit(newUnit) {
        if (!self.units) {
            return;
        }
        self.width = Object(UnitsUtils["r" /* convert */])(self.width || self.docSizeBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        self.height = Object(UnitsUtils["r" /* convert */])(self.height || self.docSizeBoundMin, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        const oldUnits = self.units;
        // This will trigger the update of the display options
        self.units = newUnit;
        self.updateMarginsValues(self.margins.asArray.map(v => {
            const value = Object(UnitsUtils["r" /* convert */])(v || 0, UnitsUtils["q" /* UnitIdToMeasurement */][oldUnits], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
            return Math.min(Math.max(value, self.minMargins), self.maxMargins);
        }));
        // it is possible that conversion loses some precision, so cap values to [min, max] as
        // the value can get out of the interval at the edges when converting from unit to unit
        self.width = Math.min(Math.max(self.width, self.displayMinDocWidth), self.displayMaxDocWidth);
        self.height = Math.min(Math.max(self.height, self.displayMinDocHeight), self.displayMaxDocHeight);
        self.updateBleedValues(self.bleed_offset.asArray.map(v => {
            const value = Object(UnitsUtils["r" /* convert */])(v || 0, UnitsUtils["q" /* UnitIdToMeasurement */][oldUnits], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
            return Math.min(Math.max(value, self.minBleed), self.maxBleed);
        }));
        self.updateSlugValues(self.slug_offset.asArray.map(v => {
            const value = Object(UnitsUtils["r" /* convert */])(v || 0, UnitsUtils["q" /* UnitIdToMeasurement */][oldUnits], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
            return Math.min(Math.max(value, self.minSlug), self.maxSlug);
        }));
        self.gutter = Object(UnitsUtils["r" /* convert */])(self.gutter || self.colGutterBoundMin || 0, UnitsUtils["q" /* UnitIdToMeasurement */][oldUnits], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
    },
}))
    .views(self => ({
    get isModified() {
        return !Object(JsUtils["i" /* objectIsContained */])(JSON.parse(self.originalPreset), Object(mobx_state_tree_module["f" /* getSnapshot */])(self));
    },
}));
// instead of including all the host settings, including user and session ID, only keep the fields that are relevant to our model
const SNAPSHOT_PREPROCESSING_FIELDS = [
    'units',
    'unitInfo',
    'pointsPerInch',
    'docSizeBoundMax',
    'docSizeBoundMin',
    'numPagesBoundMin',
    'numPagesBoundMax',
    'startPageBoundMin',
    'startPageBoundMax',
    'colNumBoundMin',
    'colNumBoundMax',
    'colGutterBoundMin',
    'colGutterBoundMax',
    'minColumnWidth',
    'defaultDocumentName',
    'unitList',
    'bleedBoundMin',
    'bleedBoundMax',
    'marginBoundMin',
    'marginBoundMax',
    'slugBoundMin',
    'slugBoundMax',
    'decimalPoint',
    'dialogToolTips',
    'previewModeEnabled',
    'jpLastDocType',
];
// only include in the snapshot the fields that are useful to Indesign, otherwise the create operation fails
const SNAPSHOT_POSTPROCESSING_FIELDS = [
    'previewModeEnabled',
    'auto_text_frame',
    'bTall',
    'bleed_offset',
    'colorMode',
    'column_orientation',
    'columns',
    'description',
    'facing_pages',
    'gutter',
    'height',
    'hideDltBtn',
    'id',
    'intent',
    'isPreset',
    'lastUsedTime',
    'margins',
    'mime_type',
    'num_pages',
    'page_binding',
    'pages_per_spread',
    'previews',
    'price_prompt',
    'resolution',
    'restart_page_num',
    'size',
    'slug_offset',
    'spreadScale',
    'start_page_num',
    'template_category',
    'thumbnail_url',
    'tip',
    'title',
    'uniform_bleed',
    'uniform_margins',
    'uniform_slug',
    'units',
    'width',
    'jp_doc_type',
    'actionTrigger',
];
const InDesignPresetModel = mobx_state_tree_module["h" /* types */].snapshotProcessor(UnprocessedInDesignPresetModel, {
    preProcessor(snapshot) {
        const { fnftSettings, ...snapshotWithoutSettings } = snapshot;
        const { template_category, title, mode, width, height, start_page_num, num_pages, columns, gutter, resolution, lastUsedTime, previewModeEnabled, } = snapshotWithoutSettings;
        let hostSettings;
        // keep all the fields except fnftSettings, just rename the ones we need for UI integration
        if (fnftSettings) {
            hostSettings = SNAPSHOT_PREPROCESSING_FIELDS.reduce((acc, key) => {
                // only use the host default if the preset itself doesn't have a value set
                if (!snapshot[key] && fnftSettings[key] !== undefined) {
                    acc[key] = fnftSettings[key];
                }
                return acc;
            }, {});
        }
        if (hostSettings && hostSettings.minColumnWidth !== undefined) {
            hostSettings.minColumnWidth = Number.parseFloat(hostSettings.minColumnWidth);
        }
        const reducedSnapshot = {
            ...snapshotWithoutSettings,
            width: Number.parseFloat(width),
            height: Number.parseFloat(height),
            resolution: Number.parseFloat(resolution),
            lastUsedTime: Number.parseFloat(lastUsedTime),
            start_page_num: Object(JsUtils["c" /* firstDefined */])([start_page_num, hostSettings && hostSettings.startPageBoundMin]),
            num_pages: Object(JsUtils["c" /* firstDefined */])([num_pages, hostSettings && hostSettings.numPagesBoundMin]),
            columns: Object(JsUtils["c" /* firstDefined */])([columns, hostSettings && hostSettings.colNumBoundMin]),
            gutter: Object(JsUtils["c" /* firstDefined */])([gutter, hostSettings && hostSettings.colGutterBoundMin]),
            previewModeEnabled: previewModeEnabled || (hostSettings && hostSettings.previewModeEnabled),
            template_category: template_category,
            category: template_category,
            name: title,
            mode: mode,
            initialColorModeValue: mode,
            ...hostSettings,
        };
        if (!snapshot.units) {
            return reducedSnapshot;
        }
        const dimensionsFields = ['width', 'height', 'gutter'];
        const convertFromUnit = UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS];
        dimensionsFields.forEach(field => {
            if (reducedSnapshot[field]) {
                reducedSnapshot[field] = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field], convertFromUnit, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], snapshot);
            }
        });
        const sideDimensionsFields = ['bleed_offset', 'margins', 'slug_offset'];
        sideDimensionsFields.forEach(field => {
            const convertedDimensions = {};
            if (reducedSnapshot[field]) {
                convertedDimensions.top = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].top, convertFromUnit, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], snapshot);
                convertedDimensions.bottom = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].bottom, convertFromUnit, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], snapshot);
                convertedDimensions.left = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].left, convertFromUnit, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], snapshot);
                convertedDimensions.right = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].right, convertFromUnit, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], snapshot);
                reducedSnapshot[field] = convertedDimensions;
            }
        });
        reducedSnapshot.originalPreset = JSON.stringify(Object(JsUtils["j" /* pickPropertiesFromObject */])(reducedSnapshot, IngestUtil["a" /* CHANGEABLE_ATTRIBUTES_ID */]));
        return reducedSnapshot;
    },
    postProcessor(snapshot) {
        const reducedSnapshot = {};
        SNAPSHOT_POSTPROCESSING_FIELDS.reduce((acc, field) => {
            acc[field] = snapshot[field];
            return acc;
        }, reducedSnapshot);
        const dimensionsFields = ['width', 'height', 'gutter'];
        const convertToUnit = UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS];
        dimensionsFields.forEach(field => {
            if (reducedSnapshot[field]) {
                reducedSnapshot[field] = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field], UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], convertToUnit, snapshot);
            }
        });
        const sideDimensionsFields = ['bleed_offset', 'margins', 'slug_offset'];
        sideDimensionsFields.forEach(field => {
            const convertedDimensions = {};
            if (reducedSnapshot[field]) {
                convertedDimensions.top = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].top, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], convertToUnit, snapshot);
                convertedDimensions.bottom = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].bottom, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], convertToUnit);
                convertedDimensions.left = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].left, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], convertToUnit);
                convertedDimensions.right = Object(UnitsUtils["r" /* convert */])(reducedSnapshot[field].right, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], convertToUnit);
                reducedSnapshot[field] = convertedDimensions;
            }
        });
        reducedSnapshot.isModified = !Object(JsUtils["i" /* objectIsContained */])(JSON.parse(snapshot.originalPreset), snapshot);
        return reducedSnapshot;
    },
});
/* harmony default export */ var models_InDesignPresetModel = (InDesignPresetModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetsController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class PresetsController_PresetsController {
    /**
     * Retuns an array of the sections maped to a given category. Order of the sections does not matter as they will be
     * processed clientside upon receiving the new data.
     *
     * @param data Object containing the preset data.
     * @param locale Locale in which the presets will be displayed.
     * @param [settings] Host Settings used to update the presets.
     * @returns Object containing the list of presets per category.
     */
    static getPresetsCategories(data, locale, settings) {
        return ((PresetsController_PresetsController._controller &&
            PresetsController_PresetsController._controller.getPresetsCategories(data, locale, settings)) ||
            {});
    }
    /**
     * @returns The right preset model, depending on the host type.
     */
    static getModelType() {
        const hostName = Object(PlatformUtils["d" /* getHostName */])();
        return hostName === HostNames["a" /* default */].ILLUSTRATOR
            ? IllustratorPresetModel["d" /* default */]
            : hostName === HostNames["a" /* default */].INDESIGN
                ? models_InDesignPresetModel
                : models_PhotoshopPresetModel;
    }
    /**
     * Determines if the given preset name is invalid within the preset category. A name is considered valid, if the name
     * does not collide with an existing preset and if it is not equal an empty string.
     *
     * @param presetName Preset name that used to determine if it is valid.
     * @param presetCategories Presets for a given category used to determine a new preset name.
     * @returns True if there is a name collision inside the given preset category.
     */
    static isPresetNameInvalid(presetName, presetCategories) {
        return (PresetsController_PresetsController._controller &&
            PresetsController_PresetsController._controller.isPresetNameInvalid(presetName, presetCategories));
    }
    /**
     * Generates a new name for the preset based on the current incremental localized value.
     *
     * @param baseTitle Base title used to generate the new preset name. This value is expected to be correctly localized.
     * @param presetCategories Presets for a given category used to determine a valid new preset name.
     * @returns New name given to the preset.
     */
    static generateNewPresetName(baseTitle, presetCategories) {
        return (PresetsController_PresetsController._controller &&
            PresetsController_PresetsController._controller.generateNewPresetName(baseTitle, presetCategories));
    }
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults. Creates a preset model using the value and settings it received.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @returns The new preset model.
     */
    static createPresetModel(preset, settings) {
        const ModelToUse = PresetsController_PresetsController.getModelType();
        try {
            const processedPreset = PresetsController_PresetsController._controller &&
                PresetsController_PresetsController._controller.updatePreset(JSON.parse(JSON.stringify(preset)), settings);
            return processedPreset && ModelToUse.create(processedPreset);
        }
        catch (error) {
            PresetsController_PresetsController._logger.error('Could not create preset model', error);
        }
        return undefined;
    }
    // TODO - remove this - it's only used by the tests
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @param otherCategories Preset categories that were populated up to that point.
     * @returns The updated preset.
     */
    static updatePreset(preset, settings, otherCategories) {
        return (PresetsController_PresetsController._controller &&
            PresetsController_PresetsController._controller.updatePreset(preset, settings, otherCategories));
    }
    /**
     * Comparator function used for sorting Document Templates. Items are sorted based on their lastUsageTime, except
     * clipboard items which are always added first.
     *
     * @param a First item to compare.
     * @param b Second item to compare.
     * @returns -1 is a should be sorted before b, 1 if b should be sorted before a, or 0 if a and be should
     * be left unchanged.
     */
    static mostRecentlyUsedComparator(a, b) {
        return PresetsController_PresetsController._controller && PresetsController_PresetsController._controller.mostRecentlyUsedComparator(a, b);
    }
}
PresetsController_PresetsController._logger = logger_default.a.get('PresetsController');
PresetsController_PresetsController._controller = inversify_config["a" /* iocContainer */].get(types["a" /* IOC_TYPES */].PresetsControllerInterface);


/***/ }),

/***/ "0B1G":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Document Template Kind.
 *
 * @enum {string}
 */
var DocumentTemplateKind;
(function (DocumentTemplateKind) {
    DocumentTemplateKind["TEMPLATE"] = "template";
    DocumentTemplateKind["PRESET"] = "preset";
})(DocumentTemplateKind || (DocumentTemplateKind = {}));
/* harmony default export */ __webpack_exports__["a"] = (DocumentTemplateKind);


/***/ }),

/***/ "0gSV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function tagged(metadataKey, metadataValue) {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(metadataKey, metadataValue);

    if (typeof index === "number") {
      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    } else {
      decorator_utils_1.tagProperty(target, targetKey, metadata);
    }
  };
}

exports.tagged = tagged;

/***/ }),

/***/ "0mF0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ rgbColorToString; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ convertToRgb; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ mapBackgroundToRgbColor; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ normalizeColorObject; });

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts + 6 modules
var hosts = __webpack_require__("Zghy");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/ColorConstants.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const TRANSPARENT_RGBA = { red: 0, green: 0, blue: 0, alpha: 0, type: 'RGBColor' };
const BLACK_RGB = { red: 0, green: 0, blue: 0, type: 'RGBColor' };
const WHITE_RGB = { red: 255, green: 255, blue: 255, type: 'RGBColor' };

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/ColorUtils.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Convert a RGBColor object from Photoshop into CSS-compatible rgb format.
 *
 * @param color Color that needs to be converted to string.
 * @returns Of format "rgb(72, 72, 72)" or "rgba(72, 72, 72, 0.4)".
 */
function rgbColorToString(color) {
    if (color && color.type === 'RGBColor') {
        const { red = 0, green = 0, blue = 0, alpha } = color;
        return typeof alpha === 'undefined'
            ? `rgb(${Math.round(red)}, ${Math.round(green)}, ${Math.round(blue)})`
            : `rgba(${Math.round(red)}, ${Math.round(green)}, ${Math.round(blue)}, ${alpha})`;
    }
    return 'rgba(0, 0, 0, 0)';
}
/**
 * Convert a RGBFloatColor object to a RGBColor object. This is an internal function of convertToRgb and not intended
 * to be public.
 *
 * @param color Color that needs to be rounded.
 * @returns Object representing the transformed color.
 */
function rgbFloatColorToRgb(color) {
    const { red = 0, green = 0, blue = 0 } = color;
    return {
        type: 'RGBColor',
        red: Math.round(red * 255),
        green: Math.round(green * 255),
        blue: Math.round(blue * 255),
    };
}
/**
 * Converts a color object to the RGB format, using a host API. If the color is RGB or RGBFloat, convert that directly
 * on the client.
 *
 * @param color Object containing the color to be converted.
 * @returns Transformed color to the RGBColor type.
 */
async function convertToRgb(color) {
    if (color && color.type) {
        let colorToDisplay;
        switch (color.type) {
            case 'RGBColor':
                colorToDisplay = color;
                break;
            // RGBFloatColor is easily processable on the client, so we can spare a call to PS
            case 'RGBFloatColor':
                colorToDisplay = rgbFloatColorToRgb(color);
                break;
            default:
                colorToDisplay = await hosts["a" /* default */].convertColorToRGB(color);
        }
        return colorToDisplay;
    }
    return null;
}
/**
 * Maps background to host background RGB format.
 *
 * @param background String representing the default background ('background', 'custom', 'transparent', etc.).
 * @param defaultBackgroundColorRgb Object representing the default host background color, not necessarily in RGB format.
 * @returns Object representing the background color.
 */
function mapBackgroundToRgbColor(background, defaultBackgroundColorRgb) {
    // the "custom" case is handled separately, this is just for obtaining a valid color for all of the other
    // background options
    switch (background) {
        case 'background':
            return typeof defaultBackgroundColorRgb !== 'undefined' ? defaultBackgroundColorRgb : WHITE_RGB;
        case 'black':
            return BLACK_RGB;
        case 'transparent':
            return TRANSPARENT_RGBA;
        default:
            return WHITE_RGB;
    }
}
/**
 * Normalizes the values inside color object. This is used to clean the usage of 'grain' inside Photoshop.
 *
 * @param color Color object to process.
 * @returns The normalized Color object.
 */
function normalizeColorObject(color) {
    if (color && typeof color.grain !== 'undefined') {
        color.green = typeof color.green !== 'undefined' ? color.green : color.grain;
        delete color.grain;
    }
    return color;
}


/***/ }),

/***/ "2+WB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("circle", {
  cx: "24",
  cy: "16",
  r: "4"
}), React.createElement("path", {
  d: "M44 6H4a2 2 0 0 0-2 2v32a2 2 0 0 0 2 2h40a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zm-2 32H30v-2a2 2 0 0 0 2-2v-8a4 4 0 0 0-4-4h-8a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2v2H6V10h36z"
}));

/***/ }),

/***/ "2Sv4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_vulcan) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return vulcanAPI; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const vulcanAPI = () => __webpack_provided_window_dot_vulcan;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("tQvA")["default"]))

/***/ }),

/***/ "3iLV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/LibraryManager.ts
var LibraryManager = __webpack_require__("io8T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockController.ts + 4 modules
var StockController = __webpack_require__("abot");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DownloadStatusModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const DownloadStatusModel = mobx_state_tree_module["h" /* types */]
    .model({
    progress: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    downloadStatus: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].late(() => mobx_state_tree_module["h" /* types */].enumeration(Object.values(LibraryManager["a" /* DownloadStatus */])))),
    downloadStatusMessage: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
})
    .actions(self => ({
    updateStatus(status) {
        self.progress = status.progress;
        self.downloadStatus = status.downloadStatus;
        self.downloadStatusMessage = status.downloadStatusMessage;
    },
}))
    .views(self => ({
    equals(otherModel) {
        if (!otherModel) {
            return false;
        }
        return (self.progress === otherModel.progress &&
            self.downloadStatus === otherModel.downloadStatus &&
            self.downloadStatusMessage === otherModel.downloadStatusMessage);
    },
}));
/* harmony default export */ var models_DownloadStatusModel = (DownloadStatusModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DocumentTemplateModel.ts
var DocumentTemplateModel = __webpack_require__("CQbc");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/PreviewModel.ts
var PreviewModel = __webpack_require__("tIky");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/TemplateModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








const TemplateModel = mobx_state_tree_module["h" /* types */]
    .model('TemplateModel', {
    ...DocumentTemplateModel["b" /* Model */],
    contributor_name: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, '', [null, undefined]),
    contributor_url: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, '', [null, undefined]),
    downloadStatus: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].late(() => models_DownloadStatusModel), () => models_DownloadStatusModel.create({})),
    elementRef: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    // @todo: why id AND identifier
    id: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].number, mobx_state_tree_module["h" /* types */].string)),
    is_free: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    kind: DocumentTemplateKind["a" /* default */].TEMPLATE,
    licenseStatus: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].late(() => mobx_state_tree_module["h" /* types */].enumeration(Object.values(StockController["a" /* LicenseStatus */])))),
    licensedTime: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    // @todo: why is null allowed?
    marketing_text: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
    // @todo: why is null allowed?
    mime_type: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
    previews: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(PreviewModel["a" /* default */])),
    price_prompt: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    template_category: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].enumeration(Object.values(DocumentTemplateCategoryTypes["a" /* default */]))), []),
    thumbnail_height: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    thumbnail_url: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    thumbnail_width: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    tip: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, '', [null, undefined]),
    title: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    url: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    libraryId: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].union(mobx_state_tree_module["h" /* types */].string, mobx_state_tree_module["h" /* types */].number)),
    created: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    modified: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
})
    // @todo: this can be used to preprocess data and reformat variables
    .preProcessSnapshot(snapshot => {
    // @todo: if I remove this the app explodes, so we need to figure out what is going on
    let { resolution, ...rest } = snapshot;
    resolution = typeof resolution === 'string' ? Number(resolution) : resolution === null ? undefined : resolution;
    return { resolution, ...rest };
})
    // we add the base DocumentTemplateModel Views
    .views(DocumentTemplateModel["d" /* Views */])
    .views(self => ({
    get isTooLarge() {
        return !!self.size && self.size / 1048576 > 100;
    },
    get isLicensed() {
        return self.licensedTime !== undefined && Number.isInteger(self.licensedTime) && self.licensedTime > 0;
    },
    get isDownloading() {
        return (self.downloadStatus.downloadStatus === LibraryManager["a" /* DownloadStatus */].DOWNLOADING ||
            self.licenseStatus === StockController["a" /* LicenseStatus */].REQUESTED);
    },
    get downloadedSize() {
        if (!!self.size && self.downloadStatus.progress && self.downloadStatus.progress > 0) {
            return (self.downloadStatus.progress * self.size) / 100;
        }
        return 0;
    },
}))
    .actions(self => ({
    addTemplateCategory(value) {
        if (self.template_category.indexOf(value) === -1) {
            self.template_category.push(value);
            return true;
        }
        return false;
    },
    updateStatus(status) {
        if (typeof status.licenseStatus !== 'undefined') {
            self.licenseStatus = status.licenseStatus;
        }
        else {
            self.licensedTime = status.licensedTime;
            self.lastUsedTime = status.lastUsedTime;
            self.downloadStatus.updateStatus(status);
            self.url = status.path || self.url;
            self.elementRef = status.elementRef || self.elementRef;
            self.licenseStatus = StockController["a" /* LicenseStatus */].LICENSED;
        }
    },
}));
/* harmony default export */ var models_TemplateModel = __webpack_exports__["a"] = (TemplateModel);


/***/ }),

/***/ "406g":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_when_syntax_1 = __webpack_require__("z4Hk");

var BindingOnSyntax = function () {
  function BindingOnSyntax(binding) {
    this._binding = binding;
  }

  BindingOnSyntax.prototype.onActivation = function (handler) {
    this._binding.onActivation = handler;
    return new binding_when_syntax_1.BindingWhenSyntax(this._binding);
  };

  return BindingOnSyntax;
}();

exports.BindingOnSyntax = BindingOnSyntax;

/***/ }),

/***/ "4cb6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var keys = __webpack_require__("xfSm");

exports.METADATA_KEY = keys;

var container_1 = __webpack_require__("9Fde");

exports.Container = container_1.Container;

var literal_types_1 = __webpack_require__("FV85");

exports.BindingScopeEnum = literal_types_1.BindingScopeEnum;
exports.BindingTypeEnum = literal_types_1.BindingTypeEnum;
exports.TargetTypeEnum = literal_types_1.TargetTypeEnum;

var container_module_1 = __webpack_require__("dxzI");

exports.AsyncContainerModule = container_module_1.AsyncContainerModule;
exports.ContainerModule = container_module_1.ContainerModule;

var injectable_1 = __webpack_require__("cZ5Q");

exports.injectable = injectable_1.injectable;

var tagged_1 = __webpack_require__("0gSV");

exports.tagged = tagged_1.tagged;

var named_1 = __webpack_require__("ZzCi");

exports.named = named_1.named;

var inject_1 = __webpack_require__("Yk9n");

exports.inject = inject_1.inject;
exports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;

var optional_1 = __webpack_require__("jYx5");

exports.optional = optional_1.optional;

var unmanaged_1 = __webpack_require__("n2J3");

exports.unmanaged = unmanaged_1.unmanaged;

var multi_inject_1 = __webpack_require__("jIg/");

exports.multiInject = multi_inject_1.multiInject;

var target_name_1 = __webpack_require__("oaX6");

exports.targetName = target_name_1.targetName;

var post_construct_1 = __webpack_require__("Sk89");

exports.postConstruct = post_construct_1.postConstruct;

var metadata_reader_1 = __webpack_require__("wnjb");

exports.MetadataReader = metadata_reader_1.MetadataReader;

var id_1 = __webpack_require__("d9O0");

exports.id = id_1.id;

var decorator_utils_1 = __webpack_require__("Ztfv");

exports.decorate = decorator_utils_1.decorate;

var constraint_helpers_1 = __webpack_require__("RR/i");

exports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;
exports.taggedConstraint = constraint_helpers_1.taggedConstraint;
exports.namedConstraint = constraint_helpers_1.namedConstraint;
exports.typeConstraint = constraint_helpers_1.typeConstraint;

var serialization_1 = __webpack_require__("ujMp");

exports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;

var binding_utils_1 = __webpack_require__("78VC");

exports.multiBindToService = binding_utils_1.multiBindToService;

/***/ }),

/***/ "5MlJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ isUXP; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ isFRLUser; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* binding */ isWindowsOS; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getFileUrl; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ getFilePath; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* binding */ osVersion; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ getHostName; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* binding */ sanitizeDocumentName; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ getHomeDir; });

// UNUSED EXPORTS: getPlatformForbiddenChars

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/UXPAPI.ts
var UXPAPI = __webpack_require__("VFTl");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/OSAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const osAPI = () => window.require && window.require('os');

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Constants.ts
var Constants = __webpack_require__("Ai3n");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Check if we are in UXP environment.
 *
 * @returns True if we are using UXP.
 */
function isUXP() {
    return navigator.userAgent.indexOf('UXP') > -1;
}
/**
 * Returns true if the user has a FRL license.
 *
 * @param userProfile The user profile to check.
 * @returns True if we are deling with an FRL user, otherwise false.
 */
function isFRLUser(userProfile) {
    return !!(userProfile && userProfile.initialized && (!userProfile.UserProfile || !userProfile.UserProfile.userId));
}
/**
 * Returns the platform type.
 *
 * @returns 'win' if we are on a Windows Platform, 'mac' if we are on a MacOs Platform.
 */
function platform() {
    return navigator.platform.search(/darwin/i) === -1 &&
        navigator.platform !== 'MacIntel' &&
        navigator.platform.search(/win/i) !== -1
        ? 'win'
        : 'mac';
}
/**
 * Whether we are currently running on Windows or not.
 *
 * @returns True if we are on Windows.
 */
function isWindowsOS() {
    return platform() === 'win';
}
/**
 * Converts the provided URL into a valid file url in the current system.
 *
 * @param url The URL to convert.
 * @returns String containing a valid URL in the current host.
 */
function getFileUrl(url) {
    if (isUXP() && url && !url.startsWith('http')) {
        return `file://${url}`;
    }
    return url;
}
/**
 * Converts the given path to follow the platform conventions.
 *
 * @param path Path to convert to platform conventions.
 * @returns The converted path.
 */
function getFilePath(path) {
    return isWindowsOS() && path ? path.replace(/\\/g, '/') : path;
}
/**
 * Return the OS version based on the browser's navigator.
 *
 * @returns Containing the OS version number.
 */
function osVersion() {
    return isUXP() ? osAPI().release() : 'Unknown';
}
/**
 * Returns the host name, as given by uxp.
 *
 * @returns The name of the host: Photoshop, Illustrator or Browser.
 */
function getHostName() {
    const uxp = isUXP() && Object(UXPAPI["a" /* uxpAPI */])();
    return (uxp && uxp.host && uxp.host.name) || 'Browser';
}
/**
 * Returns the forbidden characters.
 *
 * @returns An RegExp depending on the platform.
 */
function getPlatformForbiddenChars() {
    return Constants["j" /* FORBIDDEN_CHARACTERS */][platform()];
}
/**
 * Returns the sanitized document name.
 *
 * @returns The sanitized document name depending on the platform.
 */
function sanitizeDocumentName(value) {
    return value.replace(getPlatformForbiddenChars(), '');
}
/**
 *
 * @returns Returns the user's home directory.
 */
function getHomeDir() {
    return isUXP() ? osAPI().homedir() : '';
}


/***/ }),

/***/ "6AGu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var literal_types_1 = __webpack_require__("FV85");

var binding_when_on_syntax_1 = __webpack_require__("LKzl");

var BindingInSyntax = function () {
  function BindingInSyntax(binding) {
    this._binding = binding;
  }

  BindingInSyntax.prototype.inRequestScope = function () {
    this._binding.scope = literal_types_1.BindingScopeEnum.Request;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingInSyntax.prototype.inSingletonScope = function () {
    this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingInSyntax.prototype.inTransientScope = function () {
    this._binding.scope = literal_types_1.BindingScopeEnum.Transient;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  return BindingInSyntax;
}();

exports.BindingInSyntax = BindingInSyntax;

/***/ }),

/***/ "70sn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 8h-7v4h4v16H6V12h4V8H3a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1z"
}), React.createElement("path", {
  d: "M24.793 14H20V.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V14h-4.793a.5.5 0 0 0-.354.854L18 22l7.146-7.146a.5.5 0 0 0-.353-.854z"
}));

/***/ }),

/***/ "77JF":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "appRef", function() { return /* binding */ appRef; });
__webpack_require__.d(__webpack_exports__, "ResizeType", function() { return /* binding */ ResizeType; });
__webpack_require__.d(__webpack_exports__, "loadDialog", function() { return /* binding */ loadDialog; });
__webpack_require__.d(__webpack_exports__, "showNewDocumentDialogImpl", function() { return /* binding */ showNewDocumentDialogImpl; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/i18n.tsx
var i18n = __webpack_require__("BPvV");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js + 1 modules
var inheritsLoose = __webpack_require__("dI71");

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}
// CONCATENATED MODULE: ./node_modules/resolve-pathname/esm/resolve-pathname.js
function isAbsolute(pathname) {
  return pathname.charAt(0) === '/';
} // About 1.5x faster than the two-arg version of Array#splice()


function spliceOne(list, index) {
  for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {
    list[i] = list[k];
  }

  list.pop();
} // This implementation is based heavily on node's url.parse


function resolvePathname(to, from) {
  if (from === undefined) from = '';
  var toParts = to && to.split('/') || [];
  var fromParts = from && from.split('/') || [];
  var isToAbs = to && isAbsolute(to);
  var isFromAbs = from && isAbsolute(from);
  var mustEndAbs = isToAbs || isFromAbs;

  if (to && isAbsolute(to)) {
    // to is absolute
    fromParts = toParts;
  } else if (toParts.length) {
    // to is relative, drop the filename
    fromParts.pop();
    fromParts = fromParts.concat(toParts);
  }

  if (!fromParts.length) return '/';
  var hasTrailingSlash;

  if (fromParts.length) {
    var last = fromParts[fromParts.length - 1];
    hasTrailingSlash = last === '.' || last === '..' || last === '';
  } else {
    hasTrailingSlash = false;
  }

  var up = 0;

  for (var i = fromParts.length; i >= 0; i--) {
    var part = fromParts[i];

    if (part === '.') {
      spliceOne(fromParts, i);
    } else if (part === '..') {
      spliceOne(fromParts, i);
      up++;
    } else if (up) {
      spliceOne(fromParts, i);
      up--;
    }
  }

  if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');
  if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');
  var result = fromParts.join('/');
  if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';
  return result;
}

/* harmony default export */ var resolve_pathname = (resolvePathname);
// CONCATENATED MODULE: ./node_modules/value-equal/esm/value-equal.js
function value_equal_valueOf(obj) {
  return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);
}

function valueEqual(a, b) {
  // Test for strict equality first.
  if (a === b) return true; // Otherwise, if either of them == null they are not equal.

  if (a == null || b == null) return false;

  if (Array.isArray(a)) {
    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {
      return valueEqual(item, b[index]);
    });
  }

  if (typeof a === 'object' || typeof b === 'object') {
    var aValue = value_equal_valueOf(a);
    var bValue = value_equal_valueOf(b);
    if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);
    return Object.keys(Object.assign({}, a, b)).every(function (key) {
      return valueEqual(a[key], b[key]);
    });
  }

  return false;
}

/* harmony default export */ var value_equal = (valueEqual);
// CONCATENATED MODULE: ./node_modules/tiny-invariant/dist/tiny-invariant.esm.js
var isProduction = "production" === 'production';
var prefix = 'Invariant failed';

function invariant(condition, message) {
  if (condition) {
    return;
  }

  if (isProduction) {
    throw new Error(prefix);
  }

  throw new Error(prefix + ": " + (message || ''));
}

/* harmony default export */ var tiny_invariant_esm = (invariant);
// CONCATENATED MODULE: ./node_modules/history/esm/history.js






function addLeadingSlash(path) {
  return path.charAt(0) === '/' ? path : '/' + path;
}

function stripLeadingSlash(path) {
  return path.charAt(0) === '/' ? path.substr(1) : path;
}

function hasBasename(path, prefix) {
  return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;
}

function stripBasename(path, prefix) {
  return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
}

function stripTrailingSlash(path) {
  return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;
}

function parsePath(path) {
  var pathname = path || '/';
  var search = '';
  var hash = '';
  var hashIndex = pathname.indexOf('#');

  if (hashIndex !== -1) {
    hash = pathname.substr(hashIndex);
    pathname = pathname.substr(0, hashIndex);
  }

  var searchIndex = pathname.indexOf('?');

  if (searchIndex !== -1) {
    search = pathname.substr(searchIndex);
    pathname = pathname.substr(0, searchIndex);
  }

  return {
    pathname: pathname,
    search: search === '?' ? '' : search,
    hash: hash === '#' ? '' : hash
  };
}

function createPath(location) {
  var pathname = location.pathname,
      search = location.search,
      hash = location.hash;
  var path = pathname || '/';
  if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search;
  if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash;
  return path;
}

function createLocation(path, state, key, currentLocation) {
  var location;

  if (typeof path === 'string') {
    // Two-arg form: push(path, state)
    location = parsePath(path);
    location.state = state;
  } else {
    // One-arg form: push(location)
    location = _extends({}, path);
    if (location.pathname === undefined) location.pathname = '';

    if (location.search) {
      if (location.search.charAt(0) !== '?') location.search = '?' + location.search;
    } else {
      location.search = '';
    }

    if (location.hash) {
      if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;
    } else {
      location.hash = '';
    }

    if (state !== undefined && location.state === undefined) location.state = state;
  }

  try {
    location.pathname = decodeURI(location.pathname);
  } catch (e) {
    if (e instanceof URIError) {
      throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
    } else {
      throw e;
    }
  }

  if (key) location.key = key;

  if (currentLocation) {
    // Resolve incomplete/relative pathname relative to current location.
    if (!location.pathname) {
      location.pathname = currentLocation.pathname;
    } else if (location.pathname.charAt(0) !== '/') {
      location.pathname = resolve_pathname(location.pathname, currentLocation.pathname);
    }
  } else {
    // When there is no prior location and pathname is empty, set it to /
    if (!location.pathname) {
      location.pathname = '/';
    }
  }

  return location;
}

function locationsAreEqual(a, b) {
  return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && value_equal(a.state, b.state);
}

function createTransitionManager() {
  var prompt = null;

  function setPrompt(nextPrompt) {
     false ? undefined : void 0;
    prompt = nextPrompt;
    return function () {
      if (prompt === nextPrompt) prompt = null;
    };
  }

  function confirmTransitionTo(location, action, getUserConfirmation, callback) {
    // TODO: If another transition starts while we're still confirming
    // the previous one, we may end up in a weird state. Figure out the
    // best way to handle this.
    if (prompt != null) {
      var result = typeof prompt === 'function' ? prompt(location, action) : prompt;

      if (typeof result === 'string') {
        if (typeof getUserConfirmation === 'function') {
          getUserConfirmation(result, callback);
        } else {
           false ? undefined : void 0;
          callback(true);
        }
      } else {
        // Return false from a transition hook to cancel the transition.
        callback(result !== false);
      }
    } else {
      callback(true);
    }
  }

  var listeners = [];

  function appendListener(fn) {
    var isActive = true;

    function listener() {
      if (isActive) fn.apply(void 0, arguments);
    }

    listeners.push(listener);
    return function () {
      isActive = false;
      listeners = listeners.filter(function (item) {
        return item !== listener;
      });
    };
  }

  function notifyListeners() {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    listeners.forEach(function (listener) {
      return listener.apply(void 0, args);
    });
  }

  return {
    setPrompt: setPrompt,
    confirmTransitionTo: confirmTransitionTo,
    appendListener: appendListener,
    notifyListeners: notifyListeners
  };
}

var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);

function getConfirmation(message, callback) {
  callback(window.confirm(message)); // eslint-disable-line no-alert
}
/**
 * Returns true if the HTML5 history API is supported. Taken from Modernizr.
 *
 * https://github.com/Modernizr/Modernizr/blob/master/LICENSE
 * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js
 * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586
 */


function supportsHistory() {
  var ua = window.navigator.userAgent;
  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;
  return window.history && 'pushState' in window.history;
}
/**
 * Returns true if browser fires popstate on hash change.
 * IE10 and IE11 do not.
 */


function supportsPopStateOnHashChange() {
  return window.navigator.userAgent.indexOf('Trident') === -1;
}
/**
 * Returns false if using go(n) with hash history causes a full page reload.
 */


function supportsGoWithoutReloadUsingHash() {
  return window.navigator.userAgent.indexOf('Firefox') === -1;
}
/**
 * Returns true if a given popstate event is an extraneous WebKit event.
 * Accounts for the fact that Chrome on iOS fires real popstate events
 * containing undefined state when pressing the back button.
 */


function isExtraneousPopstateEvent(event) {
  return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;
}

var PopStateEvent = 'popstate';
var HashChangeEvent = 'hashchange';

function getHistoryState() {
  try {
    return window.history.state || {};
  } catch (e) {
    // IE 11 sometimes throws when accessing window.history.state
    // See https://github.com/ReactTraining/history/pull/289
    return {};
  }
}
/**
 * Creates a history object that uses the HTML5 history API including
 * pushState, replaceState, and the popstate event.
 */


function createBrowserHistory(props) {
  if (props === void 0) {
    props = {};
  }

  !canUseDOM ?  false ? undefined : tiny_invariant_esm(false) : void 0;
  var globalHistory = window.history;
  var canUseHistory = supportsHistory();
  var needsHashChangeListener = !supportsPopStateOnHashChange();
  var _props = props,
      _props$forceRefresh = _props.forceRefresh,
      forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,
      _props$getUserConfirm = _props.getUserConfirmation,
      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
      _props$keyLength = _props.keyLength,
      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';

  function getDOMLocation(historyState) {
    var _ref = historyState || {},
        key = _ref.key,
        state = _ref.state;

    var _window$location = window.location,
        pathname = _window$location.pathname,
        search = _window$location.search,
        hash = _window$location.hash;
    var path = pathname + search + hash;
     false ? undefined : void 0;
    if (basename) path = stripBasename(path, basename);
    return createLocation(path, state, key);
  }

  function createKey() {
    return Math.random().toString(36).substr(2, keyLength);
  }

  var transitionManager = createTransitionManager();

  function setState(nextState) {
    _extends(history, nextState);

    history.length = globalHistory.length;
    transitionManager.notifyListeners(history.location, history.action);
  }

  function handlePopState(event) {
    // Ignore extraneous popstate events in WebKit.
    if (isExtraneousPopstateEvent(event)) return;
    handlePop(getDOMLocation(event.state));
  }

  function handleHashChange() {
    handlePop(getDOMLocation(getHistoryState()));
  }

  var forceNextPop = false;

  function handlePop(location) {
    if (forceNextPop) {
      forceNextPop = false;
      setState();
    } else {
      var action = 'POP';
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (ok) {
          setState({
            action: action,
            location: location
          });
        } else {
          revertPop(location);
        }
      });
    }
  }

  function revertPop(fromLocation) {
    var toLocation = history.location; // TODO: We could probably make this more reliable by
    // keeping a list of keys we've seen in sessionStorage.
    // Instead, we just default to 0 for keys we don't know.

    var toIndex = allKeys.indexOf(toLocation.key);
    if (toIndex === -1) toIndex = 0;
    var fromIndex = allKeys.indexOf(fromLocation.key);
    if (fromIndex === -1) fromIndex = 0;
    var delta = toIndex - fromIndex;

    if (delta) {
      forceNextPop = true;
      go(delta);
    }
  }

  var initialLocation = getDOMLocation(getHistoryState());
  var allKeys = [initialLocation.key]; // Public interface

  function createHref(location) {
    return basename + createPath(location);
  }

  function push(path, state) {
     false ? undefined : void 0;
    var action = 'PUSH';
    var location = createLocation(path, state, createKey(), history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      var href = createHref(location);
      var key = location.key,
          state = location.state;

      if (canUseHistory) {
        globalHistory.pushState({
          key: key,
          state: state
        }, null, href);

        if (forceRefresh) {
          window.location.href = href;
        } else {
          var prevIndex = allKeys.indexOf(history.location.key);
          var nextKeys = allKeys.slice(0, prevIndex + 1);
          nextKeys.push(location.key);
          allKeys = nextKeys;
          setState({
            action: action,
            location: location
          });
        }
      } else {
         false ? undefined : void 0;
        window.location.href = href;
      }
    });
  }

  function replace(path, state) {
     false ? undefined : void 0;
    var action = 'REPLACE';
    var location = createLocation(path, state, createKey(), history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      var href = createHref(location);
      var key = location.key,
          state = location.state;

      if (canUseHistory) {
        globalHistory.replaceState({
          key: key,
          state: state
        }, null, href);

        if (forceRefresh) {
          window.location.replace(href);
        } else {
          var prevIndex = allKeys.indexOf(history.location.key);
          if (prevIndex !== -1) allKeys[prevIndex] = location.key;
          setState({
            action: action,
            location: location
          });
        }
      } else {
         false ? undefined : void 0;
        window.location.replace(href);
      }
    });
  }

  function go(n) {
    globalHistory.go(n);
  }

  function goBack() {
    go(-1);
  }

  function goForward() {
    go(1);
  }

  var listenerCount = 0;

  function checkDOMListeners(delta) {
    listenerCount += delta;

    if (listenerCount === 1 && delta === 1) {
      window.addEventListener(PopStateEvent, handlePopState);
      if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);
    } else if (listenerCount === 0) {
      window.removeEventListener(PopStateEvent, handlePopState);
      if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);
    }
  }

  var isBlocked = false;

  function block(prompt) {
    if (prompt === void 0) {
      prompt = false;
    }

    var unblock = transitionManager.setPrompt(prompt);

    if (!isBlocked) {
      checkDOMListeners(1);
      isBlocked = true;
    }

    return function () {
      if (isBlocked) {
        isBlocked = false;
        checkDOMListeners(-1);
      }

      return unblock();
    };
  }

  function listen(listener) {
    var unlisten = transitionManager.appendListener(listener);
    checkDOMListeners(1);
    return function () {
      checkDOMListeners(-1);
      unlisten();
    };
  }

  var history = {
    length: globalHistory.length,
    action: 'POP',
    location: initialLocation,
    createHref: createHref,
    push: push,
    replace: replace,
    go: go,
    goBack: goBack,
    goForward: goForward,
    block: block,
    listen: listen
  };
  return history;
}

var HashChangeEvent$1 = 'hashchange';
var HashPathCoders = {
  hashbang: {
    encodePath: function encodePath(path) {
      return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);
    },
    decodePath: function decodePath(path) {
      return path.charAt(0) === '!' ? path.substr(1) : path;
    }
  },
  noslash: {
    encodePath: stripLeadingSlash,
    decodePath: addLeadingSlash
  },
  slash: {
    encodePath: addLeadingSlash,
    decodePath: addLeadingSlash
  }
};

function stripHash(url) {
  var hashIndex = url.indexOf('#');
  return hashIndex === -1 ? url : url.slice(0, hashIndex);
}

function getHashPath() {
  // We can't use window.location.hash here because it's not
  // consistent across browsers - Firefox will pre-decode it!
  var href = window.location.href;
  var hashIndex = href.indexOf('#');
  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
}

function pushHashPath(path) {
  window.location.hash = path;
}

function replaceHashPath(path) {
  window.location.replace(stripHash(window.location.href) + '#' + path);
}

function createHashHistory(props) {
  if (props === void 0) {
    props = {};
  }

  !canUseDOM ?  false ? undefined : tiny_invariant_esm(false) : void 0;
  var globalHistory = window.history;
  var canGoWithoutReload = supportsGoWithoutReloadUsingHash();
  var _props = props,
      _props$getUserConfirm = _props.getUserConfirmation,
      getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
      _props$hashType = _props.hashType,
      hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;
  var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';
  var _HashPathCoders$hashT = HashPathCoders[hashType],
      encodePath = _HashPathCoders$hashT.encodePath,
      decodePath = _HashPathCoders$hashT.decodePath;

  function getDOMLocation() {
    var path = decodePath(getHashPath());
     false ? undefined : void 0;
    if (basename) path = stripBasename(path, basename);
    return createLocation(path);
  }

  var transitionManager = createTransitionManager();

  function setState(nextState) {
    _extends(history, nextState);

    history.length = globalHistory.length;
    transitionManager.notifyListeners(history.location, history.action);
  }

  var forceNextPop = false;
  var ignorePath = null;

  function locationsAreEqual$$1(a, b) {
    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;
  }

  function handleHashChange() {
    var path = getHashPath();
    var encodedPath = encodePath(path);

    if (path !== encodedPath) {
      // Ensure we always have a properly-encoded hash.
      replaceHashPath(encodedPath);
    } else {
      var location = getDOMLocation();
      var prevLocation = history.location;
      if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.

      if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.

      ignorePath = null;
      handlePop(location);
    }
  }

  function handlePop(location) {
    if (forceNextPop) {
      forceNextPop = false;
      setState();
    } else {
      var action = 'POP';
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (ok) {
          setState({
            action: action,
            location: location
          });
        } else {
          revertPop(location);
        }
      });
    }
  }

  function revertPop(fromLocation) {
    var toLocation = history.location; // TODO: We could probably make this more reliable by
    // keeping a list of paths we've seen in sessionStorage.
    // Instead, we just default to 0 for paths we don't know.

    var toIndex = allPaths.lastIndexOf(createPath(toLocation));
    if (toIndex === -1) toIndex = 0;
    var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));
    if (fromIndex === -1) fromIndex = 0;
    var delta = toIndex - fromIndex;

    if (delta) {
      forceNextPop = true;
      go(delta);
    }
  } // Ensure the hash is encoded properly before doing anything else.


  var path = getHashPath();
  var encodedPath = encodePath(path);
  if (path !== encodedPath) replaceHashPath(encodedPath);
  var initialLocation = getDOMLocation();
  var allPaths = [createPath(initialLocation)]; // Public interface

  function createHref(location) {
    var baseTag = document.querySelector('base');
    var href = '';

    if (baseTag && baseTag.getAttribute('href')) {
      href = stripHash(window.location.href);
    }

    return href + '#' + encodePath(basename + createPath(location));
  }

  function push(path, state) {
     false ? undefined : void 0;
    var action = 'PUSH';
    var location = createLocation(path, undefined, undefined, history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      var path = createPath(location);
      var encodedPath = encodePath(basename + path);
      var hashChanged = getHashPath() !== encodedPath;

      if (hashChanged) {
        // We cannot tell if a hashchange was caused by a PUSH, so we'd
        // rather setState here and ignore the hashchange. The caveat here
        // is that other hash histories in the page will consider it a POP.
        ignorePath = path;
        pushHashPath(encodedPath);
        var prevIndex = allPaths.lastIndexOf(createPath(history.location));
        var nextPaths = allPaths.slice(0, prevIndex + 1);
        nextPaths.push(path);
        allPaths = nextPaths;
        setState({
          action: action,
          location: location
        });
      } else {
         false ? undefined : void 0;
        setState();
      }
    });
  }

  function replace(path, state) {
     false ? undefined : void 0;
    var action = 'REPLACE';
    var location = createLocation(path, undefined, undefined, history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      var path = createPath(location);
      var encodedPath = encodePath(basename + path);
      var hashChanged = getHashPath() !== encodedPath;

      if (hashChanged) {
        // We cannot tell if a hashchange was caused by a REPLACE, so we'd
        // rather setState here and ignore the hashchange. The caveat here
        // is that other hash histories in the page will consider it a POP.
        ignorePath = path;
        replaceHashPath(encodedPath);
      }

      var prevIndex = allPaths.indexOf(createPath(history.location));
      if (prevIndex !== -1) allPaths[prevIndex] = path;
      setState({
        action: action,
        location: location
      });
    });
  }

  function go(n) {
     false ? undefined : void 0;
    globalHistory.go(n);
  }

  function goBack() {
    go(-1);
  }

  function goForward() {
    go(1);
  }

  var listenerCount = 0;

  function checkDOMListeners(delta) {
    listenerCount += delta;

    if (listenerCount === 1 && delta === 1) {
      window.addEventListener(HashChangeEvent$1, handleHashChange);
    } else if (listenerCount === 0) {
      window.removeEventListener(HashChangeEvent$1, handleHashChange);
    }
  }

  var isBlocked = false;

  function block(prompt) {
    if (prompt === void 0) {
      prompt = false;
    }

    var unblock = transitionManager.setPrompt(prompt);

    if (!isBlocked) {
      checkDOMListeners(1);
      isBlocked = true;
    }

    return function () {
      if (isBlocked) {
        isBlocked = false;
        checkDOMListeners(-1);
      }

      return unblock();
    };
  }

  function listen(listener) {
    var unlisten = transitionManager.appendListener(listener);
    checkDOMListeners(1);
    return function () {
      checkDOMListeners(-1);
      unlisten();
    };
  }

  var history = {
    length: globalHistory.length,
    action: 'POP',
    location: initialLocation,
    createHref: createHref,
    push: push,
    replace: replace,
    go: go,
    goBack: goBack,
    goForward: goForward,
    block: block,
    listen: listen
  };
  return history;
}

function clamp(n, lowerBound, upperBound) {
  return Math.min(Math.max(n, lowerBound), upperBound);
}
/**
 * Creates a history object that stores locations in memory.
 */


function createMemoryHistory(props) {
  if (props === void 0) {
    props = {};
  }

  var _props = props,
      getUserConfirmation = _props.getUserConfirmation,
      _props$initialEntries = _props.initialEntries,
      initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,
      _props$initialIndex = _props.initialIndex,
      initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,
      _props$keyLength = _props.keyLength,
      keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
  var transitionManager = createTransitionManager();

  function setState(nextState) {
    _extends(history, nextState);

    history.length = history.entries.length;
    transitionManager.notifyListeners(history.location, history.action);
  }

  function createKey() {
    return Math.random().toString(36).substr(2, keyLength);
  }

  var index = clamp(initialIndex, 0, initialEntries.length - 1);
  var entries = initialEntries.map(function (entry) {
    return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());
  }); // Public interface

  var createHref = createPath;

  function push(path, state) {
     false ? undefined : void 0;
    var action = 'PUSH';
    var location = createLocation(path, state, createKey(), history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      var prevIndex = history.index;
      var nextIndex = prevIndex + 1;
      var nextEntries = history.entries.slice(0);

      if (nextEntries.length > nextIndex) {
        nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);
      } else {
        nextEntries.push(location);
      }

      setState({
        action: action,
        location: location,
        index: nextIndex,
        entries: nextEntries
      });
    });
  }

  function replace(path, state) {
     false ? undefined : void 0;
    var action = 'REPLACE';
    var location = createLocation(path, state, createKey(), history.location);
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (!ok) return;
      history.entries[history.index] = location;
      setState({
        action: action,
        location: location
      });
    });
  }

  function go(n) {
    var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);
    var action = 'POP';
    var location = history.entries[nextIndex];
    transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
      if (ok) {
        setState({
          action: action,
          location: location,
          index: nextIndex
        });
      } else {
        // Mimic the behavior of DOM histories by
        // causing a render after a cancelled POP.
        setState();
      }
    });
  }

  function goBack() {
    go(-1);
  }

  function goForward() {
    go(1);
  }

  function canGo(n) {
    var nextIndex = history.index + n;
    return nextIndex >= 0 && nextIndex < history.entries.length;
  }

  function block(prompt) {
    if (prompt === void 0) {
      prompt = false;
    }

    return transitionManager.setPrompt(prompt);
  }

  function listen(listener) {
    return transitionManager.appendListener(listener);
  }

  var history = {
    length: entries.length,
    action: 'POP',
    location: entries[index],
    index: index,
    entries: entries,
    createHref: createHref,
    push: push,
    replace: replace,
    go: go,
    goBack: goBack,
    goForward: goForward,
    canGo: canGo,
    block: block,
    listen: listen
  };
  return history;
}


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/node_modules/mini-create-react-context/dist/esm/index.js
var esm = __webpack_require__("YsU4");

// EXTERNAL MODULE: ./node_modules/path-to-regexp/index.js
var path_to_regexp = __webpack_require__("vRGJ");
var path_to_regexp_default = /*#__PURE__*/__webpack_require__.n(path_to_regexp);

// EXTERNAL MODULE: ./node_modules/react-is/index.js
var react_is = __webpack_require__("TOwV");

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
// EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
var hoist_non_react_statics_cjs = __webpack_require__("2mql");
var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/node_modules/react-router/esm/react-router.js











 // TODO: Replace with React.createContext once we can assume React 16+

var react_router_createNamedContext = function createNamedContext(name) {
  var context = Object(esm["a" /* default */])();
  context.displayName = name;
  return context;
};

var historyContext = /*#__PURE__*/react_router_createNamedContext("Router-History"); // TODO: Replace with React.createContext once we can assume React 16+

var createNamedContext$1 = function createNamedContext(name) {
  var context = Object(esm["a" /* default */])();
  context.displayName = name;
  return context;
};

var react_router_context = /*#__PURE__*/createNamedContext$1("Router");
/**
 * The public API for putting history on context.
 */

var react_router_Router = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(Router, _React$Component);

  Router.computeRootMatch = function computeRootMatch(pathname) {
    return {
      path: "/",
      url: "/",
      params: {},
      isExact: pathname === "/"
    };
  };

  function Router(props) {
    var _this;

    _this = _React$Component.call(this, props) || this;
    _this.state = {
      location: props.history.location
    }; // This is a bit of a hack. We have to start listening for location
    // changes here in the constructor in case there are any <Redirect>s
    // on the initial render. If there are, they will replace/push when
    // they mount and since cDM fires in children before parents, we may
    // get a new location before the <Router> is mounted.

    _this._isMounted = false;
    _this._pendingLocation = null;

    if (!props.staticContext) {
      _this.unlisten = props.history.listen(function (location) {
        if (_this._isMounted) {
          _this.setState({
            location: location
          });
        } else {
          _this._pendingLocation = location;
        }
      });
    }

    return _this;
  }

  var _proto = Router.prototype;

  _proto.componentDidMount = function componentDidMount() {
    this._isMounted = true;

    if (this._pendingLocation) {
      this.setState({
        location: this._pendingLocation
      });
    }
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    if (this.unlisten) this.unlisten();
  };

  _proto.render = function render() {
    return react_default.a.createElement(react_router_context.Provider, {
      value: {
        history: this.props.history,
        location: this.state.location,
        match: Router.computeRootMatch(this.state.location.pathname),
        staticContext: this.props.staticContext
      }
    }, react_default.a.createElement(historyContext.Provider, {
      children: this.props.children || null,
      value: this.props.history
    }));
  };

  return Router;
}(react_default.a.Component);

if (false) {}
/**
 * The public API for a <Router> that stores location in memory.
 */


var react_router_MemoryRouter = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(MemoryRouter, _React$Component);

  function MemoryRouter() {
    var _this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
    _this.history = createMemoryHistory(_this.props);
    return _this;
  }

  var _proto = MemoryRouter.prototype;

  _proto.render = function render() {
    return react_default.a.createElement(react_router_Router, {
      history: this.history,
      children: this.props.children
    });
  };

  return MemoryRouter;
}(react_default.a.Component);

if (false) {}

var react_router_Lifecycle = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(Lifecycle, _React$Component);

  function Lifecycle() {
    return _React$Component.apply(this, arguments) || this;
  }

  var _proto = Lifecycle.prototype;

  _proto.componentDidMount = function componentDidMount() {
    if (this.props.onMount) this.props.onMount.call(this, this);
  };

  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
    if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    if (this.props.onUnmount) this.props.onUnmount.call(this, this);
  };

  _proto.render = function render() {
    return null;
  };

  return Lifecycle;
}(react_default.a.Component);
/**
 * The public API for prompting the user before navigating away from a screen.
 */


function Prompt(_ref) {
  var message = _ref.message,
      _ref$when = _ref.when,
      when = _ref$when === void 0 ? true : _ref$when;
  return react_default.a.createElement(react_router_context.Consumer, null, function (context) {
    !context ?  false ? undefined : tiny_invariant_esm(false) : void 0;
    if (!when || context.staticContext) return null;
    var method = context.history.block;
    return react_default.a.createElement(react_router_Lifecycle, {
      onMount: function onMount(self) {
        self.release = method(message);
      },
      onUpdate: function onUpdate(self, prevProps) {
        if (prevProps.message !== message) {
          self.release();
          self.release = method(message);
        }
      },
      onUnmount: function onUnmount(self) {
        self.release();
      },
      message: message
    });
  });
}

if (false) { var messageType; }

var cache = {};
var cacheLimit = 10000;
var cacheCount = 0;

function compilePath(path) {
  if (cache[path]) return cache[path];
  var generator = path_to_regexp_default.a.compile(path);

  if (cacheCount < cacheLimit) {
    cache[path] = generator;
    cacheCount++;
  }

  return generator;
}
/**
 * Public API for generating a URL pathname from a path and parameters.
 */


function generatePath(path, params) {
  if (path === void 0) {
    path = "/";
  }

  if (params === void 0) {
    params = {};
  }

  return path === "/" ? path : compilePath(path)(params, {
    pretty: true
  });
}
/**
 * The public API for navigating programmatically with a component.
 */


function Redirect(_ref) {
  var computedMatch = _ref.computedMatch,
      to = _ref.to,
      _ref$push = _ref.push,
      push = _ref$push === void 0 ? false : _ref$push;
  return react_default.a.createElement(react_router_context.Consumer, null, function (context) {
    !context ?  false ? undefined : tiny_invariant_esm(false) : void 0;
    var history = context.history,
        staticContext = context.staticContext;
    var method = push ? history.push : history.replace;
    var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, {
      pathname: generatePath(to.pathname, computedMatch.params)
    }) : to); // When rendering in a static context,
    // set the new location immediately.

    if (staticContext) {
      method(location);
      return null;
    }

    return react_default.a.createElement(react_router_Lifecycle, {
      onMount: function onMount() {
        method(location);
      },
      onUpdate: function onUpdate(self, prevProps) {
        var prevLocation = createLocation(prevProps.to);

        if (!locationsAreEqual(prevLocation, _extends({}, location, {
          key: prevLocation.key
        }))) {
          method(location);
        }
      },
      to: to
    });
  });
}

if (false) {}

var cache$1 = {};
var cacheLimit$1 = 10000;
var cacheCount$1 = 0;

function compilePath$1(path, options) {
  var cacheKey = "" + options.end + options.strict + options.sensitive;
  var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});
  if (pathCache[path]) return pathCache[path];
  var keys = [];
  var regexp = path_to_regexp_default()(path, keys, options);
  var result = {
    regexp: regexp,
    keys: keys
  };

  if (cacheCount$1 < cacheLimit$1) {
    pathCache[path] = result;
    cacheCount$1++;
  }

  return result;
}
/**
 * Public API for matching a URL pathname to a path.
 */


function matchPath(pathname, options) {
  if (options === void 0) {
    options = {};
  }

  if (typeof options === "string" || Array.isArray(options)) {
    options = {
      path: options
    };
  }

  var _options = options,
      path = _options.path,
      _options$exact = _options.exact,
      exact = _options$exact === void 0 ? false : _options$exact,
      _options$strict = _options.strict,
      strict = _options$strict === void 0 ? false : _options$strict,
      _options$sensitive = _options.sensitive,
      sensitive = _options$sensitive === void 0 ? false : _options$sensitive;
  var paths = [].concat(path);
  return paths.reduce(function (matched, path) {
    if (!path && path !== "") return null;
    if (matched) return matched;

    var _compilePath = compilePath$1(path, {
      end: exact,
      strict: strict,
      sensitive: sensitive
    }),
        regexp = _compilePath.regexp,
        keys = _compilePath.keys;

    var match = regexp.exec(pathname);
    if (!match) return null;
    var url = match[0],
        values = match.slice(1);
    var isExact = pathname === url;
    if (exact && !isExact) return null;
    return {
      path: path,
      // the path used to match
      url: path === "/" && url === "" ? "/" : url,
      // the matched portion of the URL
      isExact: isExact,
      // whether or not we matched exactly
      params: keys.reduce(function (memo, key, index) {
        memo[key.name] = values[index];
        return memo;
      }, {})
    };
  }, null);
}

function isEmptyChildren(children) {
  return react_default.a.Children.count(children) === 0;
}

function evalChildrenDev(children, props, path) {
  var value = children(props);
   false ? undefined : void 0;
  return value || null;
}
/**
 * The public API for matching a single path and rendering.
 */


var react_router_Route = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(Route, _React$Component);

  function Route() {
    return _React$Component.apply(this, arguments) || this;
  }

  var _proto = Route.prototype;

  _proto.render = function render() {
    var _this = this;

    return react_default.a.createElement(react_router_context.Consumer, null, function (context$1) {
      !context$1 ?  false ? undefined : tiny_invariant_esm(false) : void 0;
      var location = _this.props.location || context$1.location;
      var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us
      : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;

      var props = _extends({}, context$1, {
        location: location,
        match: match
      });

      var _this$props = _this.props,
          children = _this$props.children,
          component = _this$props.component,
          render = _this$props.render; // Preact uses an empty array as children by
      // default, so use null if that's the case.

      if (Array.isArray(children) && children.length === 0) {
        children = null;
      }

      return react_default.a.createElement(react_router_context.Provider, {
        value: props
      }, props.match ? children ? typeof children === "function" ?  false ? undefined : children(props) : children : component ? react_default.a.createElement(component, props) : render ? render(props) : null : typeof children === "function" ?  false ? undefined : children(props) : null);
    });
  };

  return Route;
}(react_default.a.Component);

if (false) {}

function react_router_addLeadingSlash(path) {
  return path.charAt(0) === "/" ? path : "/" + path;
}

function addBasename(basename, location) {
  if (!basename) return location;
  return _extends({}, location, {
    pathname: react_router_addLeadingSlash(basename) + location.pathname
  });
}

function react_router_stripBasename(basename, location) {
  if (!basename) return location;
  var base = react_router_addLeadingSlash(basename);
  if (location.pathname.indexOf(base) !== 0) return location;
  return _extends({}, location, {
    pathname: location.pathname.substr(base.length)
  });
}

function createURL(location) {
  return typeof location === "string" ? location : createPath(location);
}

function staticHandler(methodName) {
  return function () {
     false ? undefined : tiny_invariant_esm(false);
  };
}

function noop() {}
/**
 * The public top-level API for a "static" <Router>, so-called because it
 * can't actually change the current location. Instead, it just records
 * location changes in a context object. Useful mainly in testing and
 * server-rendering scenarios.
 */


var react_router_StaticRouter = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(StaticRouter, _React$Component);

  function StaticRouter() {
    var _this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;

    _this.handlePush = function (location) {
      return _this.navigateTo(location, "PUSH");
    };

    _this.handleReplace = function (location) {
      return _this.navigateTo(location, "REPLACE");
    };

    _this.handleListen = function () {
      return noop;
    };

    _this.handleBlock = function () {
      return noop;
    };

    return _this;
  }

  var _proto = StaticRouter.prototype;

  _proto.navigateTo = function navigateTo(location, action) {
    var _this$props = this.props,
        _this$props$basename = _this$props.basename,
        basename = _this$props$basename === void 0 ? "" : _this$props$basename,
        _this$props$context = _this$props.context,
        context = _this$props$context === void 0 ? {} : _this$props$context;
    context.action = action;
    context.location = addBasename(basename, createLocation(location));
    context.url = createURL(context.location);
  };

  _proto.render = function render() {
    var _this$props2 = this.props,
        _this$props2$basename = _this$props2.basename,
        basename = _this$props2$basename === void 0 ? "" : _this$props2$basename,
        _this$props2$context = _this$props2.context,
        context = _this$props2$context === void 0 ? {} : _this$props2$context,
        _this$props2$location = _this$props2.location,
        location = _this$props2$location === void 0 ? "/" : _this$props2$location,
        rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]);

    var history = {
      createHref: function createHref(path) {
        return react_router_addLeadingSlash(basename + createURL(path));
      },
      action: "POP",
      location: react_router_stripBasename(basename, createLocation(location)),
      push: this.handlePush,
      replace: this.handleReplace,
      go: staticHandler("go"),
      goBack: staticHandler("goBack"),
      goForward: staticHandler("goForward"),
      listen: this.handleListen,
      block: this.handleBlock
    };
    return react_default.a.createElement(react_router_Router, _extends({}, rest, {
      history: history,
      staticContext: context
    }));
  };

  return StaticRouter;
}(react_default.a.Component);

if (false) {}
/**
 * The public API for rendering the first <Route> that matches.
 */


var react_router_Switch = /*#__PURE__*/function (_React$Component) {
  Object(inheritsLoose["a" /* default */])(Switch, _React$Component);

  function Switch() {
    return _React$Component.apply(this, arguments) || this;
  }

  var _proto = Switch.prototype;

  _proto.render = function render() {
    var _this = this;

    return react_default.a.createElement(react_router_context.Consumer, null, function (context) {
      !context ?  false ? undefined : tiny_invariant_esm(false) : void 0;
      var location = _this.props.location || context.location;
      var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()
      // here because toArray adds keys to all child elements and we do not want
      // to trigger an unmount/remount for two <Route>s that render the same
      // component at different URLs.

      react_default.a.Children.forEach(_this.props.children, function (child) {
        if (match == null && react_default.a.isValidElement(child)) {
          element = child;
          var path = child.props.path || child.props.from;
          match = path ? matchPath(location.pathname, _extends({}, child.props, {
            path: path
          })) : context.match;
        }
      });
      return match ? react_default.a.cloneElement(element, {
        location: location,
        computedMatch: match
      }) : null;
    });
  };

  return Switch;
}(react_default.a.Component);

if (false) {}
/**
 * A public higher-order component to access the imperative API
 */


function withRouter(Component) {
  var displayName = "withRouter(" + (Component.displayName || Component.name) + ")";

  var C = function C(props) {
    var wrappedComponentRef = props.wrappedComponentRef,
        remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]);

    return react_default.a.createElement(react_router_context.Consumer, null, function (context) {
      !context ?  false ? undefined : tiny_invariant_esm(false) : void 0;
      return react_default.a.createElement(Component, _extends({}, remainingProps, context, {
        ref: wrappedComponentRef
      }));
    });
  };

  C.displayName = displayName;
  C.WrappedComponent = Component;

  if (false) {}

  return hoist_non_react_statics_cjs_default()(C, Component);
}

var useContext = react_default.a.useContext;

function useHistory() {
  if (false) {}

  return useContext(historyContext);
}

function useLocation() {
  if (false) {}

  return useContext(react_router_context).location;
}

function useParams() {
  if (false) {}

  var match = useContext(react_router_context).match;
  return match ? match.params : {};
}

function useRouteMatch(path) {
  if (false) {}

  var location = useLocation();
  var match = useContext(react_router_context).match;
  return path ? matchPath(location.pathname, path) : match;
}

if (false) { var secondaryBuildName, initialBuildName, buildNames, react_router_key, global; }


// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
var lodash_debounce = __webpack_require__("9/5/");
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Provider/index.js
var Provider = __webpack_require__("bUsb");
var Provider_default = /*#__PURE__*/__webpack_require__.n(Provider);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/AppStore.tsx + 2 modules
var AppStore = __webpack_require__("Z1zh");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts + 6 modules
var hosts = __webpack_require__("Zghy");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostNames.ts
var HostNames = __webpack_require__("U05r");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Performance.ts
var Performance = __webpack_require__("pUl/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/LockUtils.ts
var LockUtils = __webpack_require__("Yq8u");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronLeft/index.js
var ChevronLeft = __webpack_require__("fjGn");
var ChevronLeft_default = /*#__PURE__*/__webpack_require__.n(ChevronLeft);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/flex/FlexContainer.css
var flex_FlexContainer = __webpack_require__("IHOr");
var FlexContainer_default = /*#__PURE__*/__webpack_require__.n(flex_FlexContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/flex/FlexContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class FlexContainer_FlexContainer extends react["Component"] {
    render() {
        const { className, style, ...rest } = this.props;
        return (react_default.a.createElement("div", Object.assign({ style: style, className: classnames_default()(className, FlexContainer_default.a['cmdn-FlexContainer']) }, rest)));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/flex/FlexItem.css
var flex_FlexItem = __webpack_require__("M+Cl");
var FlexItem_default = /*#__PURE__*/__webpack_require__.n(flex_FlexItem);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/flex/FlexItem.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class FlexItem_FlexItem extends react["Component"] {
    render() {
        const { order, flexGrow, className, flexShrink, flexBasis, alignSelf, ...rest } = this.props;
        const style = Object.assign({
            order,
            flexGrow,
            flexShrink,
            flexBasis,
            alignSelf,
        }, this.props.style || {});
        return (react_default.a.createElement("div", Object.assign({ className: classnames_default()(className, FlexItem_default.a['cmdn-Flex-Item']) }, rest, { style: { ...style } })));
    }
}
/* harmony default export */ var components_flex_FlexItem = (FlexItem_FlexItem);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/template-preview/TemplatePreview.css
var template_preview_TemplatePreview = __webpack_require__("ZHX6");
var TemplatePreview_default = /*#__PURE__*/__webpack_require__.n(template_preview_TemplatePreview);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/template-preview/TemplatePreview.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class TemplatePreview_TemplatePreview extends react["Component"] {
    render() {
        const { template } = this.props;
        return template.previews.map(preview => (react_default.a.createElement("img", { key: `template_preview_${preview.url}`, src: Object(PlatformUtils["b" /* getFileUrl */])(preview.url), className: TemplatePreview_default.a['cmdn-TemplatePreview-image'] })));
    }
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Progress/index.js
var Progress = __webpack_require__("eXD0");
var Progress_default = /*#__PURE__*/__webpack_require__.n(Progress);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/UnitsUtils.ts
var UnitsUtils = __webpack_require__("Fr31");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/FormattedFileSize.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * File Size string formatter component.
 */
class FormattedFileSize_FormattedFileSize extends react["Component"] {
    render() {
        const { value, intl } = this.props;
        const { formatNumber, formatMessage } = intl;
        const fileSize = Object(UnitsUtils["s" /* createFileSize */])(value);
        const roundedValue = fileSize.unit === UnitsUtils["e" /* FileSizeUnit */].B ? fileSize.val : Number(fileSize.val.toFixed(1));
        // uses the default tag per configuration
        const Tag = intl['textComponent'] || react_default.a.Fragment;
        return react_default.a.createElement(Tag, null, formatNumber(roundedValue) + formatMessage({ id: fileSize.unit }));
    }
}
/* harmony default export */ var intl_FormattedFileSize = (Object(index_es["g" /* injectIntl */])(FormattedFileSize_FormattedFileSize));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/file-download-progress/FileDownloadProgress.css
var file_download_progress_FileDownloadProgress = __webpack_require__("V+J5");
var FileDownloadProgress_default = /*#__PURE__*/__webpack_require__.n(file_download_progress_FileDownloadProgress);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/file-download-progress/FileDownloadProgress.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







var FileDownloadProgressLabelPosition;
(function (FileDownloadProgressLabelPosition) {
    FileDownloadProgressLabelPosition["BOTTOM"] = "bottom";
    FileDownloadProgressLabelPosition["LEFT"] = "left";
})(FileDownloadProgressLabelPosition || (FileDownloadProgressLabelPosition = {}));
/**
 * Component that renders a preset name, you have the option to change it and save a new preset.
 */
class FileDownloadProgress_FileDownloadProgress extends react["Component"] {
    render() {
        const { value, size, labelPosition, intl, className, progress } = this.props;
        const visualProgress = progress !== undefined ? progress : (value / size) * 100;
        const classes = classnames_default()(FileDownloadProgress_default.a['cmdn-FileDownloadProgress'], className, {
            [FileDownloadProgress_default.a['cmdn-FileDownloadProgress--leftLabel']]: labelPosition === FileDownloadProgressLabelPosition.LEFT,
        });
        // @todo: while 'of' is localized, language order might be incorrect
        return (react_default.a.createElement(FlexContainer_FlexContainer, { className: classes },
            react_default.a.createElement(Progress_default.a, { className: FileDownloadProgress_default.a['cmdn-FileDownloadProgressBar'], size: "S", value: visualProgress }),
            react_default.a.createElement("div", { className: FileDownloadProgress_default.a['cmdn-FileDownloadProgress-message'] },
                react_default.a.createElement(intl_FormattedFileSize, { value: value }),
                ` ${intl.formatMessage({ id: 'of' })} `,
                react_default.a.createElement(intl_FormattedFileSize, { value: size }))));
    }
}
/* harmony default export */ var components_file_download_progress_FileDownloadProgress = (Object(index_es["g" /* injectIntl */])(FileDownloadProgress_FileDownloadProgress));

// EXTERNAL MODULE: ./node_modules/marked/lib/marked.js
var marked = __webpack_require__("DlQD");
var marked_default = /*#__PURE__*/__webpack_require__.n(marked);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Alert/index.js
var Alert = __webpack_require__("VQdv");
var Alert_default = /*#__PURE__*/__webpack_require__.n(Alert);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/createId.js
var createId = __webpack_require__("b7KY");
var createId_default = /*#__PURE__*/__webpack_require__.n(createId);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/collapsible/Collapsible.css
var collapsible_Collapsible = __webpack_require__("6up5");
var Collapsible_default = /*#__PURE__*/__webpack_require__.n(collapsible_Collapsible);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/collapsible/Collapsible.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class Collapsible_Collapsible extends react["Component"] {
    render() {
        return (react_default.a.createElement("div", { id: this.props.id, "aria-labelledby": this.props.labelledBy, role: "region", className: classnames_default()({
                [Collapsible_default.a['cmdn-Collapsible']]: true,
                [Collapsible_default.a['is-open']]: this.props.open,
            }) }, this.props.children));
    }
}

// EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js
var lodash_throttle = __webpack_require__("hKI/");
var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronRight/index.js
var ChevronRight = __webpack_require__("+n3g");
var ChevronRight_default = /*#__PURE__*/__webpack_require__.n(ChevronRight);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelTitle.css
var panel_PanelTitle = __webpack_require__("Bfm4");
var PanelTitle_default = /*#__PURE__*/__webpack_require__.n(panel_PanelTitle);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DomUtils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Stops event bubbling and prevents the browser from executing the default action.
 *
 * @param event The event that was fired.
 */
const stopKeyEventPropagation = function (event) {
    event.stopPropagation();
    event.preventDefault();
    event.nativeEvent.stopImmediatePropagation();
};

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelTitle.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









/**
 * Panel Title component.
 */
class PanelTitle_PanelTitle extends react["Component"] {
    constructor(props) {
        super(props);
        this.logPointerUpAnalytics = (startX, pointerUpX) => {
            const { onScrubbyValue, logScrubbyValueAnalytics } = this.props;
            if (typeof onScrubbyValue !== 'function' || Number.isNaN(startX) || startX === pointerUpX) {
                return;
            }
            logScrubbyValueAnalytics === null || logScrubbyValueAnalytics === void 0 ? void 0 : logScrubbyValueAnalytics();
        };
        this.onKeyDown = this.onKeyDown.bind(this);
        this.onPointerDown = this.onPointerDown.bind(this);
        this.onPointerMove = this.onPointerMove.bind(this);
        this.onPointerUp = this.onPointerUp.bind(this);
        this.throttledPointerMove = lodash_throttle_default()(this.throttledPointerMove.bind(this), 10);
        // sets the initial state
        this.state = {
            isMouseDown: false,
            startX: NaN,
            lastX: NaN,
        };
    }
    expand(state) {
        if (this.props.onToggle) {
            this.props.onToggle(state);
        }
    }
    get chevron() {
        if (this.props.collapsible) {
            const Chevron = this.props.collapsed ? ChevronDown_default.a : ChevronRight_default.a;
            return react_default.a.createElement(Chevron, { className: PanelTitle_default.a['spectrum-PanelTitle-chevron'], size: "S" });
        }
        return null;
    }
    /**
     * Handles the keyDown event, providing support for accessibility behaviors.
     *
     * @param event The event to handle.
     */
    onKeyDown(event) {
        if (event.key === ' ') {
            stopKeyEventPropagation(event);
            this.expand(!this.props.collapsed);
        }
    }
    /**
     * Handles the pointer up event, flagging the drag as finished.
     *
     * @param event The event to handle.
     */
    onPointerUp(event) {
        document.removeEventListener('pointerup', this.onPointerUp);
        document.removeEventListener('pointermove', this.onPointerMove);
        if (typeof event.currentTarget.releasePointerCapture === 'function') {
            event.currentTarget.releasePointerCapture(event.pointerId);
        }
        this.logPointerUpAnalytics(this.state.startX, Math.floor(event.pageX));
        this.setState({ isMouseDown: false, startX: NaN });
    }
    /**
     * Handles the pointer down event, flagging the start of a drag.
     *
     * @param event The event to handle.
     */
    onPointerDown(event) {
        event.preventDefault();
        const currentX = Math.floor(event.pageX);
        this.setState({ isMouseDown: true, startX: currentX, lastX: currentX });
        document.addEventListener('pointerup', this.onPointerUp);
        document.addEventListener('pointermove', this.onPointerMove);
        if (typeof event.currentTarget.setPointerCapture === 'function') {
            event.currentTarget.setPointerCapture(event.pointerId);
        }
    }
    /**
     * Handles the pointer move event, used to trigger a modification on the values.
     *
     * @param event The event to handle.
     */
    onPointerMove(event) {
        this.throttledPointerMove(event);
    }
    /**
     * Processes the pointer move event.
     *
     * @param event The event to handle.
     */
    throttledPointerMove(event) {
        const { isMouseDown, lastX } = this.state;
        // we round this value because UXP returns decimal pixel values
        const currentX = Math.floor(event.pageX);
        const direction = currentX - lastX;
        this.setState({ lastX: currentX });
        if (isMouseDown && direction !== 0) {
            const { onScrubbyValue } = this.props;
            typeof onScrubbyValue === 'function' && onScrubbyValue(direction, event.shiftKey, event.altKey);
        }
    }
    render() {
        const { id, collapsed, collapsible, contentId, className, onScrubbyValue } = this.props;
        const classes = classnames_default()(className, PanelTitle_default.a['cmdn-PanelTitle'], {
            [PanelTitle_default.a['cmdn-PanelTitle--collapsible']]: collapsible,
            [PanelTitle_default.a['cmdn-PanelTitle--scrubby']]: typeof onScrubbyValue === 'function',
        });
        const collapsibleProps = {};
        if (collapsible) {
            collapsibleProps['role'] = 'button';
            collapsibleProps['aria-expanded'] = collapsed;
            collapsibleProps['aria-controls'] = contentId;
        }
        return (react_default.a.createElement("div", Object.assign({}, collapsibleProps, { onKeyDown: this.onKeyDown, onClick: () => this.expand(!collapsed), onPointerDown: this.onPointerDown, onPointerUp: this.onPointerUp, onPointerMove: this.onPointerMove, id: id, className: classes, tabIndex: collapsible ? 0 : undefined }),
            this.chevron,
            !this.props.titleTooltip ? (this.props.title) : (react_default.a.createElement(OverlayTrigger_default.a, { placement: "left", trigger: "hover", delayShow: 800 },
                react_default.a.createElement("a", { tabIndex: collapsible ? 0 : -1 }, this.props.title),
                react_default.a.createElement(Tooltip_default.a, { variant: "inspect" }, this.props.titleTooltip)))));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/Panel.css
var panel_Panel = __webpack_require__("W73E");
var Panel_default = /*#__PURE__*/__webpack_require__.n(panel_Panel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/Panel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







/**
 * (Collapsible) Panel Component. It displays a title and the given panel content.
 */
class Panel_Panel extends react["Component"] {
    constructor(props) {
        super(props);
        const { headerId, contentId } = props;
        this.state = {
            headerId: headerId || createId_default()(),
            contentId: contentId || createId_default()(),
        };
        this.onToggle = this.onToggle.bind(this);
    }
    onToggle(state) {
        this.props.onToggle && this.props.onToggle();
        // we need to wait for the toggle to be finished an completely expanded
        requestAnimationFrame(() => {
            if (this.props.collapsible && state) {
                const el = react_dom_default.a.findDOMNode(this.collapsibleRef);
                el.scrollIntoView();
            }
        });
    }
    get classes() {
        return classnames_default()(this.props.className, Panel_default.a['cmdn-Panel']);
    }
    get title() {
        if (this.props.title) {
            return (react_default.a.createElement(PanelTitle_PanelTitle, { id: this.state.headerId, className: this.props.titleClassName, contentId: this.state.contentId, collapsible: this.props.collapsible, collapsed: this.props.open, title: this.props.title, onToggle: this.onToggle, onScrubbyValue: this.props.onScrubbyValue, logScrubbyValueAnalytics: this.props.logScrubbyValueAnalytics }));
        }
        return null;
    }
    get content() {
        const { children } = this.props;
        if (this.props.collapsible) {
            return (react_default.a.createElement(Collapsible_Collapsible, { ref: ref => (this.collapsibleRef = ref), id: this.state.contentId, labelledBy: this.state.headerId, open: this.props.open }, children));
        }
        return children;
    }
    render() {
        const { className, style, icon, open, collapsible, title, titleClassName, onToggle, onScrubbyValue, ...rest } = this.props;
        return (react_default.a.createElement("div", Object.assign({ className: this.classes, style: style }, rest),
            this.title,
            this.content));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/checkbox-panel/CheckboxPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class CheckboxPanel_CheckboxPanel extends react["Component"] {
    /**
     * UXP currently deviates from the web api and sends only the event as the parameter. React spectrum checkbox sends
     * two events the boolean checked value and the event.
     *
     * @param value
     */
    onChange(value) {
        const { onChange } = this.props;
        if (!onChange || typeof onChange !== 'function') {
            return;
        }
        if (value && value.target) {
            onChange(value.target.checked);
            return;
        }
        onChange(value);
    }
    render() {
        const { value, id, className, title, checkBoxLabel, style, titleClassName } = this.props;
        return (react_default.a.createElement(Panel_Panel, { className: className, title: title, titleClassName: titleClassName },
            react_default.a.createElement(Checkbox_default.a, { id: id, label: checkBoxLabel, style: {
                    marginTop: '9px',
                    marginBottom: '9px',
                    height: 'fit-content',
                    width: 'fit-content',
                    ...style,
                }, checked: value, onChange: value => this.onChange(value) })));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/action-buttons/ActionButtons.css
var action_buttons_ActionButtons = __webpack_require__("Fyol");
var ActionButtons_default = /*#__PURE__*/__webpack_require__.n(action_buttons_ActionButtons);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/action-buttons/ActionButtons.ids.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_BTN_CLOSE = 'cmdn-btn-close';
const CMDN_BTN_ACTION = 'cmdn-btn-action';
const CMDN_BTN_ACTION_SECONDARY = 'cmdn-btn-action-secondary';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/sidebar-container/SidebarContainer.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_SIDEBAR_TEMPLATE_CONTAINER = 'cmdn-sidebar-TemplateContainer';
const CMDN_SIDEBAR_PROPERTIES_CONTAINER = 'cmdn-sidebar-PropertiesContainer';
const CMDN_SIDEBAR_DOCUMENT_DIMENSIONS = 'cmdn-sidebar-dimensions';
const CMDN_SIDEBAR_UNITS_VALUE = '-units-value';
const CMDN_SIDEBAR_WIDTH_PANEL = 'cmdn-sidebar-WidthPanel';
const CMDN_SIDEBAR_HEIGHT_PANEL = 'cmdn-sidebar-HeightPanel';
const CMDN_SIDEBAR_HEIGHT_ROW_PANEL = 'cmdn-sidebar-HeightRowPanel';
const CMDN_SIDEBAR_RESOLUTION_PANEL = 'cmdn-sidebar-ResolutionPanel';
const CMDN_SIDEBAR_COLOR_MODE_PANEL = 'cmdn-sidebar-ColorModePanel-mode';
const CMDN_SIDEBAR_COLOR_MODE_DEPTH_PANEL = 'cmdn-sidebar-ColorModePanel-depth';
const CMDN_SIDEBAR_RASTER_EFFECTS_PANEL = 'cmdn-sidebar-RasterEffectsPanel';
const CMDN_SIDEBAR_ARTBOARDS_NUMBER_PANEL = 'cmdn-sidebar-ArtboardsNumberPanel';
const CMDN_SIDEBAR_ARTBOARDS_CHECKBOX_PANEL = 'cmdn-sidebar-ArtboardsCheckboxPanel';
const CMDN_SIDEBAR_PORTRAIT_ORIENTATION_PANEL = 'cmdn-sidebar-OrientationPanel-portrait';
const CMDN_SIDEBAR_LANDSCAPE_ORIENTATION_PANEL = 'cmdn-sidebar-OrientationPanel-landscape';
const CMDN_SIDEBAR_BINDING_PANEL_LEFT_TO_RIGHT = 'cmdn-sidebar-BindingPanel-leftToRight';
const CMDN_SIDEBAR_BINDING_PANEL_RIGHT_TO_LEFT = 'cmdn-sidebar-BindingPanel-rightToLeft';
const CMDN_SIDEBAR_BACKGROUND_CONTENTS_DROPDOWN = 'cmdn-sidebar-BackgroundContents-dropdown';
const CMDN_SIDEBAR_BACKGROUND_CONTENTS_COLOR_PICKER = 'cmdn-sidebar-BackgroundContents-colorPicker';
const CMDN_SIDEBAR_COLOR_PROFILE_SELECT = 'cmdn-sidebar-ColorProfile';
const CMDN_SIDEBAR_PIXEL_SCALE = 'cmdn-sidebar-PixelScale';
const CMDN_SIDEBAR_PANEL_TITLE = 'cmdn-sidebar-PanelTitle';
const CMDN_SIDEBAR_ADVANCED_SETTINGS = 'cmdn-sidebar-AdvancedSettings';
const CMDN_SIDEBAR_MARGINS = 'cmdn-sidebar-Margins';
const CMDN_SIDEBAR_BLEED_AND_SLUG = 'cmdn-sidebar-BleedAndSlug';
const CMDN_SIDEBAR_PREVIEW_MODE_SELECT = 'cmdn-sidebar-PreviewMode';
const CMDN_SIDEBAR_SEE_PREVIEW_BUTTON = 'cmdn-sidebar-SeePreviewButton';
const CMDN_SIDEBAR_CLOSE_PREVIEW_BUTTON = 'cmdn-sidebar-ClosePreviewButton';
const CMDN_SIDEBAR_PREVIEW_BACK_BUTTON = 'cmdn-sidebar-PreviewBackButton';
const CMDN_SIDEBAR_PREVIEW_CONTAINER = 'cmdn-sidebar-PreviewContainer';
const CMDN_SIDEBAR_TEMPLATE_TITLE = 'cmdn-sidebar-TemplateTitle';
const CMDN_SIDEBAR_TEMPLATE_ATTRIBUTION = 'cmdn-sidebar-TemplateBackAttribution';
const CMDN_SIDEBAR_TEMPLATE_STOCK_LINK = 'cmdn-sidebar-TemplateStockLink';
const CMDN_SIDEBAR_TEMPLATE_STOCK_CONTENT = 'cmdn-sidebar-TemplateStockContent';
const CMDN_SIDEBAR_TEMPLATE_STOCK_PRICE = 'cmdn-sidebar-TemplateStockPrice';
const CMDN_SIDEBAR_TEMPLATE_STOCK_INFO = 'cmdn-sidebar-TemplateStockInfo';
const CMDN_SIDEBAR_BLEED_PANEL = 'cmdn-sidebar-BleedPanel';
const CMDN_SIDEBAR_SLUG_PANEL = 'cmdn-sidebar-SlugPanel';
const CMDN_SIDEBAR_LINK_BUTTON = '-link-button';
const CMDN_SIDEBAR_WARNING_LARGE_CANVAS = 'cmdn-sidebar-LargeCanvasWarning';
const CMDN_SIDEBAR_WARNING_COLOR_MODE = 'cmdn-sidebar-ColorModeWarning';
const CMDN_SIDEBAR_MORE_SETTINGS_BUTTON = 'cmdn-sidebar-MoreSettingsButton';
const CMDN_SIDEBAR_FACING_PAGES_CHECKBOX_PANEL = 'cmdn-sidebar-FacingPagesCheckboxPanel';
const CMDN_SIDEBAR_PAGES = 'cmdn-sidebar-Pages';
const CMDN_SIDEBAR_START = 'cmdn-sidebar-Start';
const CMDN_SIDEBAR_COLUMNS_PANEL = 'cmdn-sidebar-ColumnsPanel';
const CMDN_SIDEBAR_COLUMNS_GUTTER_PANEL = 'cmdn-sidebar-ColumnsGutterPanel';
var LinkedInputPositions;
(function (LinkedInputPositions) {
    LinkedInputPositions["TOP"] = "-top";
    LinkedInputPositions["BOTTOM"] = "-bottom";
    LinkedInputPositions["LEFT"] = "-left";
    LinkedInputPositions["RIGHT"] = "-right";
})(LinkedInputPositions || (LinkedInputPositions = {}));
const getLinkedInputHeaderId = (panelId, headerPosition) => `${`${panelId}-header${headerPosition}`}`;
const getLinkedInputTextfieldId = (panelId, textfieldPosition) => `${panelId + textfieldPosition}`;
const getLinkedInputLinkedButtonId = (panelId) => `${panelId + CMDN_SIDEBAR_LINK_BUTTON}`;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/action-buttons/ActionButtons.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














class ActionButtons_ActionButtons extends react["Component"] {
    onKeyDown(event) {
        switch (event.key) {
            case 'Enter':
                // Stop propagation for "Enter" so it's handled internally (this avoids creating a new document if you hit enter on "Close" button)
                stopKeyEventPropagation(event);
                break;
            default:
            // do nothing
        }
    }
    get closeButton() {
        const { closeLabel, disableClose, onClose } = this.props;
        return (react_default.a.createElement(Button_default.a, { id: CMDN_BTN_CLOSE, key: CMDN_BTN_CLOSE, className: ActionButtons_default.a['cmdn-ActionButtons-closeButton'], disabled: disableClose, variant: "primary", onClick: onClose }, closeLabel));
    }
    getActionButton(label, isSecondAction, isVariantPrimary) {
        const { disableAction, onAction } = this.props;
        const id = (isSecondAction && CMDN_BTN_ACTION_SECONDARY) || CMDN_BTN_ACTION;
        return (react_default.a.createElement(Button_default.a, { id: id, key: id, className: ActionButtons_default.a['cmdn-ActionButtons-actionButton'], disabled: disableAction, variant: isVariantPrimary ? 'primary' : 'cta', onClick: () => onAction(isSecondAction) }, label));
    }
    render() {
        const { shouldReverseButtons, warning, previewModeEnabled, previewLabel, previewChangeHandler, hasSecondAction, actionLabel, secondActionLabel, highlightSecondAction, smallActionFont, } = this.props;
        const firstItemButtons = hasSecondAction
            ? [this.closeButton]
            : [this.closeButton, this.getActionButton(actionLabel)];
        return (react_default.a.createElement(FlexContainer_FlexContainer, { className: classnames_default()(ActionButtons_default.a['cmdn-ActionButtons-Container'], {
                [ActionButtons_default.a['cmdn-ActionButtons-Container--withPreview']]: previewLabel,
            }) },
            previewLabel && (react_default.a.createElement(components_flex_FlexItem, { className: ActionButtons_default.a['cmdn-ActionButtons-FlexItem-PreviewMode'] },
                react_default.a.createElement(CheckboxPanel_CheckboxPanel, { value: previewModeEnabled, onChange: previewChangeHandler, checkBoxLabel: previewLabel, style: { marginTop: '7px' } }))),
            react_default.a.createElement(components_flex_FlexItem, { onKeyDown: this.onKeyDown, className: classnames_default()({
                    [ActionButtons_default.a['cmdn-ActionButtons--singleItem']]: !hasSecondAction,
                    [ActionButtons_default.a['cmdn-ActionButtons--firstItem']]: hasSecondAction,
                }) },
                warning && (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "left", delayShow: 800, boundariesElement: () => document.getElementById('cmdn-dialog') },
                    react_default.a.createElement("div", { className: ActionButtons_default.a['cmdn-ActionButtons-FlexItem-LargeCanvas-warning-wrapper'] },
                        react_default.a.createElement(Alert_default.a, { id: CMDN_SIDEBAR_WARNING_LARGE_CANVAS, variant: "tool", label: "Tooltip" })),
                    react_default.a.createElement(Tooltip_default.a, { className: ActionButtons_default.a['cmdn-ActionButtons-LargeCanvas-Tooltip'], variant: "inspect" }, warning))),
                Object(JsUtils["l" /* reverseIf */])(shouldReverseButtons, firstItemButtons)),
            hasSecondAction && (react_default.a.createElement(components_flex_FlexItem, { onKeyDown: this.onKeyDown, className: classnames_default()([
                    ActionButtons_default.a['cmdn-ActionButtons--secondItem'],
                    { [ActionButtons_default.a['cmdn-ActionButtons--smallFont']]: smallActionFont },
                ]) },
                react_default.a.createElement("div", null, this.getActionButton(actionLabel, false, highlightSecondAction)),
                react_default.a.createElement("div", null, this.getActionButton(secondActionLabel, true, !highlightSecondAction))))));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelGroupTitle.css
var panel_PanelGroupTitle = __webpack_require__("Z48R");
var PanelGroupTitle_default = /*#__PURE__*/__webpack_require__.n(panel_PanelGroupTitle);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelGroupTitle.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




/**
 * Panel Group Title component.
 */
class PanelGroupTitle_PanelGroupTitle extends react["Component"] {
    render() {
        return (react_default.a.createElement(PanelTitle_PanelTitle, { className: classnames_default()(PanelGroupTitle_default.a['cmdn-PanelGroupTitle'], this.props.titleClassName), title: this.props.title, id: this.props.headerId, titleTooltip: this.props.titleTooltip }));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelGroup.css
var panel_PanelGroup = __webpack_require__("35Us");
var PanelGroup_default = /*#__PURE__*/__webpack_require__.n(panel_PanelGroup);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/panel/PanelGroup.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




/**
 * Panel Group component.
 */
class PanelGroup_PanelGroup extends react["Component"] {
    get classes() {
        return classnames_default()(PanelGroup_default.a['cmdn-PanelGroup'], this.props.className);
    }
    get content() {
        const content = this.props.children;
        // TODO - take care of Collapsible later
        // if (this.props.collapsible) {
        //     return (<Collapsible
        //             open={this.state.open }>
        //             { content }
        //         </Collapsible>);
        // }
        return content;
    }
    get title() {
        return (this.props.title && (react_default.a.createElement(PanelGroupTitle_PanelGroupTitle, { title: this.props.title, className: this.props.titleClassName, titleClassName: this.props.titleClassName, headerId: this.props.headerId, titleTooltip: this.props.titleTooltip })));
    }
    render() {
        return (react_default.a.createElement("div", { className: this.classes },
            this.title,
            this.content));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/FormattedUppercaseMessage.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Custom FormattedMessage component that uppercases all the text before rendering it. This is required in case CSS
 * text transformation are not supported.
 */
class FormattedUppercaseMessage_FormattedUppercaseMessage extends react["Component"] {
    render() {
        return (react_default.a.createElement(index_es["c" /* FormattedMessage */], Object.assign({}, this.props), text => react_default.a.createElement("span", null, typeof text === 'string' ? text.toUpperCase() : text)));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DocumentTemplateInteractionUtils.ts + 2 modules
var DocumentTemplateInteractionUtils = __webpack_require__("H2+D");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockUtil.ts + 1 modules
var StockUtil = __webpack_require__("iNS0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DialogUtils.ts
var DialogUtils = __webpack_require__("ZVWO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/template-panel-container/TemplatePanelContainer.css
var template_panel_container_TemplatePanelContainer = __webpack_require__("HfgS");
var TemplatePanelContainer_default = /*#__PURE__*/__webpack_require__.n(template_panel_container_TemplatePanelContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/template-panel-container/TemplatePanelContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





















class TemplatePanelContainer_TemplatePanelContainer extends react["Component"] {
    constructor(props) {
        super(props);
        this.handleStockLink = this.handleStockLink.bind(this);
        this.handleContributorLink = this.handleContributorLink.bind(this);
        this.closePreviewButton = react_default.a.createRef();
    }
    componentDidMount() {
        if (this.previewButtonTitleId === 'close_preview') {
            this.closePreviewButton.current && this.closePreviewButton.current.focus();
        }
    }
    get showAttribution() {
        const { store } = this.props;
        const { activeDocumentTemplate } = store;
        if (activeDocumentTemplate) {
            const activeTemplate = activeDocumentTemplate;
            return (activeTemplate.contributor_name &&
                activeTemplate.contributor_name !== '' &&
                activeTemplate.contributor_url &&
                activeTemplate.contributor_url !== '');
        }
        return false;
    }
    getAttribution(activeTemplate) {
        const contributorLinkClasses = classnames_default()(TemplatePanelContainer_default.a['cmdn-TemplatePanel-actionLink'], TemplatePanelContainer_default.a['cmdn-TemplatePanel-contributorLink']);
        return (this.showAttribution && (react_default.a.createElement("div", { id: CMDN_SIDEBAR_TEMPLATE_ATTRIBUTION, className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-attribution'] },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "by" }),
            react_default.a.createElement("a", { className: contributorLinkClasses, tabIndex: 0, onClick: this.handleContributorLink, onKeyDown: this.handleContributorLink },
                react_default.a.createElement("span", null, activeTemplate.contributor_name)))));
    }
    get previewButtonTitleId() {
        return this.props.isPreview ? 'close_preview' : 'newdoc_button_preview';
    }
    get previewButtonId() {
        return this.props.isPreview ? CMDN_SIDEBAR_CLOSE_PREVIEW_BUTTON : CMDN_SIDEBAR_SEE_PREVIEW_BUTTON;
    }
    togglePreview(event) {
        this.props.isPreview ? this.hidePreview() : this.showPreview();
    }
    showPreview() {
        this.props.history.push('/template-preview');
        const { analytics, activeDocumentTemplate, activeView } = this.props.store;
        analytics.logFNFTActionClickedEvent('preview', { ...activeDocumentTemplate, activeFilter: activeView });
    }
    hidePreview() {
        this.props.history.goBack();
        this.props.store.forceFocus = true;
        const { analytics, activeDocumentTemplate, activeView } = this.props.store;
        analytics.logFNFTActionClickedEvent('preview-close', { ...activeDocumentTemplate, activeFilter: activeView });
    }
    /**
     * Single point of truth for close action, currently called only by click. (This is because 'Escape' presses must
     * propagate and kill both CmdN and HS, but we're implementing it the same way to preserve symmetry.).
     *
     * @param event
     */
    onClose(event) {
        this.props.store.closeApp(DialogUtils["a" /* DialogCloseReason */].CLOSE);
    }
    onDownload(event) {
        Object(DocumentTemplateInteractionUtils["k" /* startDownload */])(this.props.store);
    }
    onOpen(event) {
        Object(DocumentTemplateInteractionUtils["a" /* createDocument */])(this.props.store);
    }
    get actionButton() {
        const { activeDocumentTemplate } = this.props.store;
        const activeTemplate = activeDocumentTemplate;
        if (activeTemplate.isLicensed && !activeTemplate.isDownloading) {
            return {
                onAction: event => this.onOpen(event),
                actionLabel: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "open" }),
            };
        }
        return {
            onAction: event => this.onDownload(event),
            actionLabel: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "download" }),
        };
    }
    /**
     * Handles event on the template sidebar product title. It also removes focus ring from the anchor.
     *
     * @param event The event to handle.
     */
    handleStockLink(event) {
        const { store } = this.props;
        const { activeView, analytics } = store;
        if (event.key === 'Enter' || event.key === ' ' || event.type === 'click') {
            const uri = StockUtil["b" /* default */].openStockLicense(analytics, store.appSettings);
            const ingestData = {
                actionURL: uri,
                activeFilter: activeView,
            };
            analytics.logFNFTActionClickedEvent('stock-sidebar', ingestData);
        }
    }
    /**
     * Handles event on the template sidebar contributor link.
     *
     * @param event The event to handle.
     */
    handleContributorLink(event) {
        const { store } = this.props;
        const { activeView, analytics, activeDocumentTemplate } = store;
        const contributorLink = activeDocumentTemplate ? activeDocumentTemplate.contributor_url : '';
        if (event.key === 'Enter' || event.key === ' ' || event.type === 'click') {
            const uri = StockUtil["b" /* default */].openStockContributorUrl(contributorLink, analytics, store.appSettings);
            const ingestData = {
                actionURL: uri,
                activeFilter: activeView,
            };
            analytics.logFNFTActionClickedEvent('contributor-sidebar', ingestData);
        }
    }
    render() {
        const { store, isPreview, id } = this.props;
        const { activeDocumentTemplate, isWindowsOS } = store;
        const { actionButton } = this;
        if (!activeDocumentTemplate) {
            return react_default.a.createElement(PanelGroup_PanelGroup, { className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-flexContainer'] });
        }
        const activeTemplate = activeDocumentTemplate;
        const stockSizeVisible = !!activeTemplate.size;
        const previewButtonVisible = activeTemplate.previews && activeTemplate.previews.length > 0;
        const priceVisible = !activeTemplate.isLicensed;
        const markedDescriptionHTML = marked_default()(activeTemplate.description || '');
        const price = typeof activeTemplate.price_prompt === 'string'
            ? activeTemplate.price_prompt.toUpperCase()
            : activeTemplate.price_prompt;
        const stockLinkClasses = classnames_default()(TemplatePanelContainer_default.a['cmdn-TemplatePanel-actionLink'], TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockLink']);
        return (react_default.a.createElement(FlexContainer_FlexContainer, { id: id, className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-flexContainer'] },
            react_default.a.createElement(components_flex_FlexItem, { className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-templateDetails'] },
                react_default.a.createElement(PanelGroup_PanelGroup, { title: react_default.a.createElement(FormattedUppercaseMessage_FormattedUppercaseMessage, { id: "newdoc_details_label_template_title" }) },
                    react_default.a.createElement(Panel_Panel, { className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-panelWrapper'] },
                        react_default.a.createElement("h6", { id: CMDN_SIDEBAR_TEMPLATE_TITLE, className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-title'] }, activeTemplate.title),
                        this.getAttribution(activeDocumentTemplate),
                        react_default.a.createElement("div", { id: CMDN_SIDEBAR_TEMPLATE_STOCK_LINK, className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockLink-wrapper'] },
                            react_default.a.createElement("img", { src: "cmdn-assets/images/products/st_appicon_256.svg", className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockLink-icon'] }),
                            react_default.a.createElement("a", { tabIndex: 0, className: stockLinkClasses, onClick: this.handleStockLink, onKeyDown: this.handleStockLink },
                                react_default.a.createElement("span", { className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockLink-label'] },
                                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "adobe_stock" })))),
                        react_default.a.createElement("div", { id: CMDN_SIDEBAR_TEMPLATE_STOCK_CONTENT, className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockContent'], 
                            // eslint-disable-next-line react/no-danger
                            dangerouslySetInnerHTML: { __html: markedDescriptionHTML } }),
                        priceVisible && (react_default.a.createElement("div", { id: CMDN_SIDEBAR_TEMPLATE_STOCK_PRICE, className: classnames_default()(TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockPrice'], {
                                [TemplatePanelContainer_default.a['cmdn-Component-marginBottom']]: !stockSizeVisible,
                            }) }, price)),
                        stockSizeVisible && (react_default.a.createElement("div", { id: CMDN_SIDEBAR_TEMPLATE_STOCK_INFO, className: classnames_default()(TemplatePanelContainer_default.a['cmdn-TemplatePanel-stockInfo'], TemplatePanelContainer_default.a['cmdn-Component-marginBottom']) },
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "listview_size_header" }),
                            react_default.a.createElement("span", { className: TemplatePanelContainer_default.a['cmdn-TemplatePanel-templateSize'] },
                                react_default.a.createElement(intl_FormattedFileSize, { value: activeTemplate.size })))),
                        previewButtonVisible && (react_default.a.createElement("div", null,
                            react_default.a.createElement(Button_default.a, { onClick: event => this.togglePreview(event), ref: this.closePreviewButton, id: this.previewButtonId },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: this.previewButtonTitleId }))))))),
            react_default.a.createElement(components_flex_FlexItem, null,
                react_default.a.createElement(ActionButtons_ActionButtons, { actionLabel: actionButton.actionLabel, closeLabel: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "close" }), disableClose: !!isPreview, shouldReverseButtons: isWindowsOS, onClose: event => this.onClose(event), onAction: actionButton.onAction }))));
    }
}
const DecoratedClass = Object(mobx_module["o" /* decorate */])(TemplatePanelContainer_TemplatePanelContainer, {
    actionButton: mobx_module["l" /* computed */],
});
const ObservedClass = withRouter(Object(AppStore["c" /* withStore */])(Object(index_es["g" /* injectIntl */])(Object(index_module["e" /* observer */])(DecoratedClass))));


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/FocusManager.js
var FocusManager = __webpack_require__("3C4i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/modal/Modal.css
var modal_Modal = __webpack_require__("bgk2");
var Modal_default = /*#__PURE__*/__webpack_require__.n(modal_Modal);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/modal/Modal.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




class Modal_Modal extends react["Component"] {
    constructor(props) {
        super(props);
        this.onKeyDownHandler = this.onKeyDownHandler.bind(this);
        this.onCancel = this.onCancel.bind(this);
        this.onFocus = this.onFocus.bind(this);
    }
    /**
     * Handles the cancelation event of the modal.
     */
    onCancel() {
        if (typeof this.props.onCancel === 'function') {
            this.props.onCancel();
        }
    }
    /**
     * Handles the focus event, making sure that the focus remains inside the Modal.
     *
     * @param event The event to handle.
     */
    onFocus(event) {
        Object(FocusManager["trapFocus"])(this, event);
    }
    /**
     * Handles key events, make sure the focus stays inside the modal.
     *
     * @param event The event to handle.
     */
    onKeyDownHandler(event) {
        if (event.key === 'Escape') {
            stopKeyEventPropagation(event);
            this.onCancel();
        }
        else {
            Object(FocusManager["trapFocus"])(this, event);
        }
    }
    render() {
        return (react_default.a.createElement("div", { ref: this._modalRef, className: Modal_default.a['cmdn-Modal'], defaultpreventedkeys: ['Escape'], onKeyDown: this.onKeyDownHandler, onFocus: this.onFocus, tabIndex: 0 }, this.props.children));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/modal-view-container/ModalViewContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class ModalViewContainer_ModalViewContainer extends react["Component"] {
    constructor(props) {
        super(props);
        this.onCancel = this.onCancel.bind(this);
    }
    /**
     * Handles the cancelation from inside the modal.
     */
    onCancel() {
        this.props.store.activeModalView = null;
    }
    render() {
        const { store } = this.props;
        const ActiveModalView = store.activeModalView;
        if (ActiveModalView) {
            return (react_default.a.createElement(Modal_Modal, { onCancel: this.onCancel },
                react_default.a.createElement(ActiveModalView, null)));
        }
        return null;
    }
}
const ModalViewContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(ModalViewContainer_ModalViewContainer, {});
const ModalViewContainer_ObservedClass = Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(ModalViewContainer_DecoratedClass));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/template-preview-container/TemplatePreviewContainer.css
var template_preview_container_TemplatePreviewContainer = __webpack_require__("H9Wh");
var TemplatePreviewContainer_default = /*#__PURE__*/__webpack_require__.n(template_preview_container_TemplatePreviewContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/template-preview-container/TemplatePreviewContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

















class TemplatePreviewContainer_TemplatePreviewContainer extends react["Component"] {
    componentDidMount() {
        const { analytics, activeDocumentTemplate, activeView } = this.props.store;
        analytics.logFNFTActionClickedEvent('render-preview', { ...activeDocumentTemplate, activeFilter: activeView });
    }
    goBack(event) {
        this.props.history.goBack();
        this.props.store.forceFocus = true;
        const { analytics, activeDocumentTemplate, activeView } = this.props.store;
        analytics.logFNFTActionClickedEvent('preview-back', { ...activeDocumentTemplate, activeFilter: activeView });
    }
    render() {
        const { store } = this.props;
        const { activeDocumentTemplate, activeModalView } = store;
        if (!activeDocumentTemplate) {
            return null;
        }
        const activeTemplate = activeDocumentTemplate;
        const { size, downloadStatus, downloadedSize, isLicensed, isDownloading } = activeTemplate;
        const downloadStatusMessage = downloadStatus && downloadStatus.downloadStatusMessage;
        // When the download modal is shown, the scrollbars are displayed on top of it
        // so we just hide them when the modal is visible
        const contentClasses = classnames_default()(TemplatePreviewContainer_default.a['cmdn-TemplatePreview-content'], {
            [TemplatePreviewContainer_default.a['cmdn-TemplatePreview-content-noScroll']]: activeModalView,
        });
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(FlexContainer_FlexContainer, { id: CMDN_SIDEBAR_PREVIEW_CONTAINER, className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-container'] },
                react_default.a.createElement(components_flex_FlexItem, null,
                    react_default.a.createElement(FlexContainer_FlexContainer, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-header'] },
                        react_default.a.createElement(components_flex_FlexItem, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-buttonContainer'] },
                            react_default.a.createElement(Button_default.a, { quiet: true, variant: "tool", id: CMDN_SIDEBAR_PREVIEW_BACK_BUTTON, icon: react_default.a.createElement(ChevronLeft_default.a, { size: "L" }), className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-button'], onClick: event => this.goBack(event) },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "back" }))),
                        react_default.a.createElement(components_flex_FlexItem, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-progressContainer'] }, isLicensed && isDownloading && (react_default.a.createElement("div", null,
                            !downloadStatusMessage && (react_default.a.createElement(components_file_download_progress_FileDownloadProgress, { size: size || 0, value: downloadedSize, labelPosition: FileDownloadProgressLabelPosition.LEFT })),
                            downloadStatusMessage && (react_default.a.createElement("div", { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-progress-error'] }, downloadStatusMessage))))))),
                react_default.a.createElement(components_flex_FlexItem, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-contentWrapper'] },
                    react_default.a.createElement(FlexContainer_FlexContainer, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-contentFlexWrapper'] },
                        react_default.a.createElement(components_flex_FlexItem, { className: contentClasses },
                            react_default.a.createElement(TemplatePreview_TemplatePreview, { template: activeTemplate })),
                        react_default.a.createElement(components_flex_FlexItem, { className: TemplatePreviewContainer_default.a['cmdn-TemplatePreview-sidebar'] },
                            react_default.a.createElement(ObservedClass, { isPreview: true }))))),
            react_default.a.createElement(ModalViewContainer_ObservedClass, null)));
    }
}
const TemplatePreviewContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(TemplatePreviewContainer_TemplatePreviewContainer, {});
const TemplatePreviewContainer_ObservedClass = withRouter(Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(TemplatePreviewContainer_DecoratedClass)));


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/TabView/index.js
var TabView = __webpack_require__("zcnm");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Add/index.js
var Add = __webpack_require__("63WY");
var Add_default = /*#__PURE__*/__webpack_require__.n(Add);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/GridUtils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const RESIZE_BREAKPOINT = 1334; // --cmdn-breakpoint-resize-1
const CARD_WIDTH_SMALL = 168 + 13; // small card + small gutter -> --cmdn-template-grid-item-width + --cmdn-grid-gutter
const CARD_WIDTH_LARGE = 228 + 15; // large card + large gutter -> --cmdn-template-grid-item-width-large + --cmdn-grid-gutter-large
/**
 * Calculates the card width, based on the container size.
 *
 * @param containerSize Object describing the size of the container.
 * @returns Expected card with in pixels.
 */
function getCardWidth(containerSize) {
    const containerWidth = containerSize.width;
    return containerWidth && containerWidth > RESIZE_BREAKPOINT ? CARD_WIDTH_LARGE : CARD_WIDTH_SMALL;
}
/**
 * Whether the container is considered wide or not.
 *
 * @param containerSize Object describing the size of the container.
 * @returns <code>true</code> if the container is consider wide, otherwise <code>false</code>.
 */
function isWideScreen(containerSize) {
    const containerWidth = containerSize.width;
    return !!(containerWidth && containerWidth > RESIZE_BREAKPOINT);
}
/**
 * Returns the index of the selected item, if it's present in the given element list.
 * We use the item identifier for selection.
 *
 * @param elements Array of elements to look through.
 * @param element Element we're looking for.
 * @returns Index where the given element can be located.
 */
function findElementIndex(elements, element) {
    return element && elements ? elements.findIndex(it => it.identifier === element.identifier) : -1;
}
/**
 * Returns true if the given element is in the list.
 *
 * @param elements Array of elements to look through.
 * @param element Element we're looking for.
 * @returns <code>true</code> if the element can be found in the list, otherwise <code>false</code>.
 */
function isElementInList(elements, element) {
    return findElementIndex(elements, element) >= 0;
}
/**
 * Returns true if the given element is in the map.
 *
 * @param positionMap Map of elements to look through.
 * @param element Element we're looking for.
 * @returns <code>true</code> if the element can be found in the map, otherwise <code>false</code>.
 */
function isElementInMap(positionMap, element) {
    return !!(positionMap &&
        element &&
        element.identifier !== undefined &&
        positionMap[element.identifier] !== undefined);
}
/**
 * Computes the maximum number of cards displayable on a grid row.
 *
 * @param containerSize Object representing the size of the container.
 * @param wrapperRef Card wrapper reference (needed for measurement).
 * @param numCards Total number of cards in the grid.
 * @returns Number of cards to place per row.
 */
function computeMaxNumCardsOnRow(containerSize, wrapperRef, numCards) {
    // right now we only have one breakpoint for card widths, so we use that
    const cardWidth = getCardWidth(containerSize);
    // find the width of the card wrapper
    const wrapperElement = wrapperRef && wrapperRef.current;
    if (wrapperElement) {
        const wrapperWidth = wrapperElement.offsetWidth;
        // see how many cards fit on a wrapper row
        if (wrapperWidth > 0 && cardWidth > 0) {
            return Math.floor(wrapperWidth / cardWidth);
        }
    }
    // cannot compute, so we assume that all cards fit on the row
    return numCards;
}
/**
 * Test if an element is in a category.
 *
 * @param element Element to check.
 * @param category The category we are looking in.
 * @returns True if the element is in the given category.
 */
function isElementInCategory(element, category) {
    if (element) {
        if (element.kind === DocumentTemplateKind["a" /* default */].PRESET) {
            return element.category === category;
        }
        else {
            // if we're in the "Templates" collections tab
            // return `true` since it contains a collection of templates and not just a category of templates
            if (category === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES)
                return true;
            const template = element;
            const templateCategory = Object(mobx_module["F" /* toJS */])(template.template_category);
            if (templateCategory instanceof Array) {
                return templateCategory.map(x => x.toLowerCase()).indexOf(category) !== -1;
            }
            return false;
        }
    }
    return false;
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Delete/index.js
var Delete = __webpack_require__("5/H/");
var Delete_default = /*#__PURE__*/__webpack_require__.n(Delete);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CheckmarkCircle/index.js
var CheckmarkCircle = __webpack_require__("21yx");
var CheckmarkCircle_default = /*#__PURE__*/__webpack_require__.n(CheckmarkCircle);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/template-card/TemplateCard.css
var template_card_TemplateCard = __webpack_require__("CksP");
var TemplateCard_default = /*#__PURE__*/__webpack_require__.n(template_card_TemplateCard);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/grid-card/GridCard.css
var grid_card_GridCard = __webpack_require__("uT0p");
var GridCard_default = /*#__PURE__*/__webpack_require__.n(grid_card_GridCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/grid-view/GridView.ids.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_GRID_PRESETS = 'cmdn-grid-presets';
const CMDN_GRID_TEMPLATES = 'cmdn-grid-templates';
const CMDN_GRID_MIXED = 'cmdn-grid-mixed';
const CMDN_GRID_CARD_DELETE_ICON = 'cmdn-grid-card-delete-icon';
const CMDN_GRID_TITLE_COUNT = 'cmdn-grid-title-count';
const CMDN_GRID_CARD_TITLE = 'cmdn-grid-card-title';
const CMDN_GRID_CARD_INFO = 'cmdn-grid-card-info';
const CMDN_GRID_CARD_SUBTITLE = 'cmdn-grid-card-subtitle';
const CMDN_GRID_CARD_PRICE = 'cmdn-grid-card-price';
const CMDN_GRID_CARD_ICON = 'cmdn-grid-card-icon';
const CMDN_GRID_TITLE_ONLY = 'cmdn-grid-title-only';
const getGridTitle = (id) => `${id}-title`;
const getGridCards = (id) => `${id}-cards`;
const getGridExpandButton = (id) => `${id}-expand-button`;
const getGridCardId = (id, index) => `${id}-card-${index}`;
const getGridCardDeleteButtonId = (id, index) => `${id}-${CMDN_GRID_CARD_DELETE_ICON}-${index}`;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/template-card/TemplateCard.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_TEMPLATE_LICENSED_CHECKMARK = 'cmdn-TemplateLicensedCheckmark';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/template-card/TemplateCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/* eslint-disable @typescript-eslint/naming-convention */










/**
 * This component is only rendering a Preset Card. Will be instantiated by the Grid component and render the
 * information received as props.
 */
let TemplateCard_TemplateCard = class TemplateCard extends react["Component"] {
    render() {
        const { element, className, largeIcon } = this.props;
        const { title, price_prompt, thumbnail_url, size, downloadStatus, downloadedSize, isLicensed, isDownloading, } = element;
        const downloadStatusMessage = downloadStatus && downloadStatus.downloadStatusMessage;
        const classes = [TemplateCard_default.a['cmdn-TemplateCard'], TemplateCard_default.a['template-grid-item'], className];
        const thumbnailClasses = classnames_default()(TemplateCard_default.a['cmdn-TemplateCard-thumbnail'], {
            [TemplateCard_default.a['cmdn-TemplateCard-thumbnail--large']]: largeIcon,
        });
        return (react_default.a.createElement("div", { className: classnames_default()(classes) },
            react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_CARD_ICON, className: thumbnailClasses, style: { backgroundImage: `url("${Object(PlatformUtils["b" /* getFileUrl */])(thumbnail_url)}")` } }, isLicensed && isDownloading && (react_default.a.createElement("div", { className: TemplateCard_default.a['cmdn-TemplateCard-layoutContainer'] },
                !downloadStatusMessage && react_default.a.createElement(components_file_download_progress_FileDownloadProgress, { size: size || 0, value: downloadedSize }),
                downloadStatusMessage && (react_default.a.createElement("div", { className: TemplateCard_default.a['cmdn-TemplateCard-error'] }, downloadStatusMessage))))),
            react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_CARD_INFO, className: TemplateCard_default.a['cmdn-TemplateCard-info'], "data-qe-size": size },
                react_default.a.createElement("span", { "data-qe-id": CMDN_GRID_CARD_TITLE, className: classnames_default()(GridCard_default.a['cmdn-GridCard-title'], GridCard_default.a['cmdn-GridCard-truncateText'], TemplateCard_default.a['cmdn-TemplateCard-title'], isLicensed
                        ? TemplateCard_default.a['cmdn-TemplateCard-title-center']
                        : TemplateCard_default.a['cmdn-TemplateCard-title-left']) }, title),
                !isLicensed && (react_default.a.createElement("span", { "data-qe-id": CMDN_GRID_CARD_PRICE, className: TemplateCard_default.a['cmdn-TemplateCard-price'] }, price_prompt && price_prompt.toUpperCase()))),
            isLicensed && !isDownloading && (react_default.a.createElement("div", { className: TemplateCard_default.a['cmdn-TemplateCard-licensed'] },
                react_default.a.createElement("div", { className: TemplateCard_default.a['cmdn-TemplateCard-licensedBackground'] }),
                react_default.a.createElement(CheckmarkCircle_default.a, { "data-qe-id": CMDN_TEMPLATE_LICENSED_CHECKMARK, className: TemplateCard_default.a['cmdn-TemplateCard-licensedIcon'] })))));
    }
};
TemplateCard_TemplateCard = __decorate([
    index_module["e" /* observer */]
], TemplateCard_TemplateCard);
/* harmony default export */ var components_template_card_TemplateCard = (TemplateCard_TemplateCard);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-card/PresetCard.css
var preset_card_PresetCard = __webpack_require__("7D3O");
var PresetCard_default = /*#__PURE__*/__webpack_require__.n(preset_card_PresetCard);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/inversify.config.ts + 6 modules
var inversify_config = __webpack_require__("JscO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/types.ts
var types = __webpack_require__("ovpn");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-card/PresetCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var PresetCard_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};








const PresetCardProvider = inversify_config["a" /* iocContainer */].get(types["a" /* IOC_TYPES */].PresetCardProviderInterface);
/**
 * This component is only rendering a Preset Card.
 * Will be instantiated by the Grid component and render the information received as props.
 */
let PresetCard_PresetCard = class PresetCard extends react["Component"] {
    render() {
        const { element, className, largeIcon } = this.props;
        const { name, description } = element;
        const classes = [
            PresetCard_default.a['cmdn-PresetCard'],
            className,
            {
                [PresetCard_default.a['cmdn-PresetCard--retro']]: PresetCardProvider.shouldIncludeRetroStyle(),
            },
        ];
        return (react_default.a.createElement("div", { className: classnames_default()(classes) },
            react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_CARD_ICON, className: classnames_default()({ [PresetCard_default.a['cmdn-PresetCard-icon--large']]: largeIcon }, PresetCard_default.a['cmdn-PresetCard-icon']) }, PresetCardProvider.getCardIcon(element)),
            react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_CARD_TITLE, className: classnames_default()(GridCard_default.a['cmdn-GridCard-title'], GridCard_default.a['cmdn-GridCard-truncateText'], PresetCard_default.a['cmdn-PresetCard-Title']) }, name),
            react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_CARD_SUBTITLE, className: PresetCard_default.a['cmdn-PresetCard-subtitle'] }, description)));
    }
};
PresetCard_PresetCard = PresetCard_decorate([
    index_module["e" /* observer */]
], PresetCard_PresetCard);
/* harmony default export */ var components_preset_card_PresetCard = (PresetCard_PresetCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/grid-card/GridCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var GridCard_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};











/**
 * GridCard component, to be used inside a ccx-cdo GridView.
 */
let GridCard_GridCard = class GridCard extends react["Component"] {
    constructor(props) {
        super(props);
        this.clickCount = 0;
        this.onCardClick = this.onCardClick.bind(this);
        this.onItemDoubleClick = this.onItemDoubleClick.bind(this);
        this.onDeleteClick = this.onDeleteClick.bind(this);
        this.handleDeleteAction = this.handleDeleteAction.bind(this);
        this.updateSelection = this.updateSelection.bind(this);
        this.getCardComponent = this.getCardComponent.bind(this);
    }
    componentDidMount() {
        const { element, onDocMounted } = this.props;
        onDocMounted && onDocMounted(element);
    }
    componentWillUnmount() {
        const { element, onDocUnmounted } = this.props;
        onDocUnmounted && onDocUnmounted(element);
    }
    /**
     * Handles the GridCard click event.
     */
    onCardClick() {
        this.updateSelection();
    }
    /**
     * Handles document creation, triggered with a double click or by hitting Enter.
     */
    onItemDoubleClick() {
        this.props.onItemDoubleClick && this.props.onItemDoubleClick();
    }
    /**
     * Handles the delete button click.
     */
    onDeleteClick() {
        this.handleDeleteAction();
    }
    /**
     * Deletes the item.
     */
    handleDeleteAction() {
        const { element, onItemDeleted } = this.props;
        onItemDeleted && onItemDeleted(element);
    }
    /**
     * Card selection handler, which calls the onItemSelected handler passed by the parent grid.
     */
    updateSelection() {
        const { element, onItemSelected } = this.props;
        onItemSelected && onItemSelected(element);
    }
    /**
     * Gets the card component based on the element kind.
     *
     * @param kind
     * @param props
     */
    getCardComponent(kind, props) {
        if (kind === DocumentTemplateKind["a" /* default */].PRESET) {
            return react_default.a.createElement(components_preset_card_PresetCard, Object.assign({ key: kind }, props));
        }
        else if (kind === DocumentTemplateKind["a" /* default */].TEMPLATE) {
            return react_default.a.createElement(components_template_card_TemplateCard, Object.assign({ key: kind }, props));
        }
        return undefined;
    }
    render() {
        const { element = {}, id, isSelected, isDeletable, className, tallCard, wideCard, boundariesElement, } = this.props;
        // when the screen is wide, but we're not in Recents or Saved, the cards are only wide.
        // Otherwise, they're large squares
        const classes = [
            GridCard_default.a['cmdn-GridCard'],
            className,
            {
                [GridCard_default.a['is-selected']]: isSelected,
                [GridCard_default.a['cmdn-GridCard--wide']]: wideCard,
                [GridCard_default.a['cmdn-GridCard--tall']]: tallCard,
                'is-licensed': element.isLicensed,
            },
        ];
        const child = this.getCardComponent(element && element.kind, {
            element: element,
            largeIcon: wideCard && tallCard,
        });
        const gridOverlay = (react_default.a.createElement("div", { className: "cmdn-GridCard-overlay" }, isSelected && isDeletable && (react_default.a.createElement(Button_default.a, { className: classnames_default()(GridCard_default.a['cmdn-GridCard-deleteButton']), variant: "tool", id: this.props.deleteButtonId, icon: react_default.a.createElement(Delete_default.a, { size: "S" }), quiet: true, onClick: this.onDeleteClick }))));
        return (react_default.a.createElement("div", { id: id, className: classnames_default()(classes), onClick: this.onCardClick, onDoubleClick: this.onItemDoubleClick, tabIndex: isSelected ? 0 : -1, key: element.name },
            child,
            element.tip ? (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "bottom", boundariesElement: () => boundariesElement, delayShow: 800 },
                gridOverlay,
                react_default.a.createElement(Tooltip_default.a, { variant: "inspect" }, element.tip))) : (gridOverlay)));
    }
};
GridCard_GridCard = GridCard_decorate([
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], GridCard_GridCard);
/* harmony default export */ var components_grid_card_GridCard = (GridCard_GridCard);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/grid-view/GridView.css
var grid_view_GridView = __webpack_require__("SoI9");
var GridView_default = /*#__PURE__*/__webpack_require__.n(grid_view_GridView);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/grid-view/GridView.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/













/**
 * Check if the element is in the container viewport
 *
 */
const isElementInViewport = (element, container) => {
    if (!element || !container)
        return false;
    const elementBounds = element.getBoundingClientRect();
    // we need to get the container distance from the top of the modal
    // since it’s affected by the Navigation menu
    const containerBounds = container.getBoundingClientRect();
    return elementBounds.top >= containerBounds.top;
};
/**
 * Wrapper component for a collection of cards. Each GridView will display multiple cards (templates or presets),
 * a title, and will optionally be collapsible.
 */
class GridView_GridView extends react["Component"] {
    constructor(props) {
        super(props);
        /**
         * Reference Object used to calculate measurements during expand / collapose so that we can count the number of
         * visible cards.
         */
        this.gridWrapperRef = react_default.a.createRef();
        this.gridContainerRef = react_default.a.createRef();
        this.oldContainerSize = {
            width: 0,
            height: 0,
        };
        this.positionMap = {};
        this._resetOutOfViewSelected = false;
        this.state = {
            collapsed: this.props.collapsible ? this.props.collapsed : false,
            collapsible: this.props.collapsible,
            numCards: 0,
            shouldRecomputeNumCards: true,
        };
        this.onNextItem = this.onNextItem.bind(this);
        this.onPreviousItem = this.onPreviousItem.bind(this);
        this.onNextRow = this.onNextRow.bind(this);
        this.onPreviousRow = this.onPreviousRow.bind(this);
        this.onViewAllToggle = this.onViewAllToggle.bind(this);
        this.onKeyDown = this.onKeyDown.bind(this);
        this.focusSelectedElement = this.focusSelectedElement.bind(this);
        this.windowResizeHandler = this.windowResizeHandler.bind(this);
        this.resizeHandlerRef = lodash_debounce_default()(this.windowResizeHandler, 60);
        this.handleGridFocus = this.handleGridFocus.bind(this);
        this.getPosition = this.getPosition.bind(this);
    }
    componentDidMount() {
        this.initDisplayPositions();
        this.recomputeNumCards(true);
        window.addEventListener('resize', this.resizeHandlerRef);
    }
    componentDidUpdate(prevProps) {
        const currentElements = this.props.elements;
        const currentSelected = this.props.selectedItem;
        const prevSelected = prevProps.selectedItem;
        const viewId = this.props.store.activeView;
        if (currentElements !== prevProps.elements) {
            this.initDisplayPositions();
        }
        // if the elements changed, or the shouldRecomputeNumCards flag is set, recompute the # of visible cards
        this.recomputeNumCards(currentElements !== prevProps.elements);
        // When we jump from one grid to another using the arrow keys (templates to presets and vice-versa), we need to auto-focus the selected item.
        // The two items should be of a different kind, and the current element list should not contain both of them.
        // We also check the grid ID because when the tab is switched we don't want to auto-focus and steal focus from the tab
        if (currentSelected &&
            prevSelected &&
            (prevSelected.kind !== currentSelected.kind || viewId === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES) &&
            isElementInCategory(prevSelected, viewId) &&
            isElementInCategory(currentSelected, viewId) &&
            isElementInMap(this.positionMap, currentSelected) &&
            !isElementInMap(this.positionMap, prevSelected)) {
            // We can end up in this situation when we navigate with an up arrow from the templates grid.
            // In this case, auto-select the last visible element
            const visibleElements = this.visibleElements;
            const index = this.getPosition(currentSelected);
            if (this.props.collapsed &&
                visibleElements &&
                visibleElements.length > 0 &&
                index >= visibleElements.length) {
                this.onItemSelected(visibleElements[visibleElements.length - 1]);
            }
            else {
                this.focusSelectedElement(currentSelected);
            }
        }
        else if (this.props.store.forceFocus) {
            requestAnimationFrame(() => {
                this.focusSelectedElement(currentSelected);
            });
        }
    }
    initDisplayPositions() {
        if (this.props.elements) {
            this.positionMap = this.props.elements.reduce((acc, element, index) => {
                if (element.identifier) {
                    acc[element.identifier] = index;
                }
                return acc;
            }, {});
        }
    }
    /**
     * Gets the position of the given element in the grid.
     *
     * @param element Element to check.
     * @returns The index at which the given element is displayed in the grid.
     */
    getPosition(element) {
        return (element && element.identifier !== undefined && this.positionMap[element.identifier]) || 0;
    }
    componentWillUnmount() {
        window.removeEventListener('resize', this.resizeHandlerRef);
    }
    /**
     * Window resize handler, should send an event to Ingest and re-calculate the container's size.
     */
    windowResizeHandler() {
        const containerSize = this.props.containerSize;
        // changes in container's size must recompute the number of cards
        const containerSizeChanged = this.oldContainerSize.width !== containerSize.width ||
            this.oldContainerSize.height !== containerSize.height;
        if (containerSizeChanged &&
            this.gridWrapperRef &&
            this.gridWrapperRef.current &&
            this.gridWrapperRef.current.offsetWidth > 0) {
            const cardsOnRow = computeMaxNumCardsOnRow(containerSize, this.gridWrapperRef, this.allElementsCount);
            // If the old size is 0, then this resize event is triggered by a tab change.
            // If it's not, it's a legit window resize and we want to refocus the card after the row recomputation
            if (this.oldContainerSize.width > 0 && this.oldContainerSize.height > 0) {
                this.props.store.forceFocus = true;
                // If the Grid is Collapsed and after the resize the selected element will be out of view,
                // reset the selection - the first element will be selected.
                this._resetOutOfViewSelected = true;
            }
            this.setState({
                cardsOnRow: cardsOnRow,
                shouldRecomputeNumCards: true,
            });
            this.oldContainerSize = containerSize;
        }
    }
    /**
     * Handles selection action on an item.
     *
     * @param element The item to select.
     */
    onItemSelected(element) {
        // apply selection only if the given element is in the current grid.
        // We have different grids for templates and presets, so the selected element could be in the other grid
        if (isElementInMap(this.positionMap, element)) {
            if (!this.props.selectedItem || this.props.selectedItem.identifier !== element.identifier) {
                // call the selection handler provided by the parent
                this.props.onItemSelected && this.props.onItemSelected(element);
            }
            // auto-focus the newly selected item.
            this.focusSelectedElement(element);
        }
    }
    /**
     * Handles double click action on an item.
     *
     * @param element The item that was double clicked.
     */
    onItemDoubleClick(element) {
        this.props.onItemDoubleClick && this.props.onItemDoubleClick(element);
        // auto-focus the newly selected item.
        this.focusSelectedElement(element);
    }
    /**
     * Item deletion handler.
     *
     * @param element The element to be deleted.
     */
    onItemDeleted(element) {
        // call the deletion handler provided by the parent; after deletion is done, auto-focus the selected item
        this.props.onItemDeleted &&
            this.props
                .onItemDeleted(element)
                .then(() => this.props.selectedItem && this.focusSelectedElement(this.props.selectedItem));
    }
    /**
     * Gives the focus to the selected grid card.
     *
     * @param element The element to check.
     */
    focusSelectedElement(element) {
        var _a, _b, _c, _d, _e, _f;
        let { cardsOnRow = 0, collapsed } = this.state;
        const visibleElements = this.visibleElements;
        // focus only if the given element is in the current grid.
        if (element && isElementInMap(this.positionMap, element) && this.props.store.isDialogVisible) {
            // focus the card that we clicked on programmatically, to increase accessibility
            const cards = this.gridWrapperRef.current &&
                this.gridWrapperRef.current.getElementsByClassName(GridCard_default.a['cmdn-GridCard']);
            if (cards) {
                const index = this.getPosition(element);
                if (index < cards.length) {
                    // if the gridView is expanded
                    // or visibleElements <= cardsOnRow
                    // and index < cardsOnRow
                    // and the gridView title is not in view
                    if (((!collapsed || visibleElements.length <= cardsOnRow) &&
                        index < cardsOnRow &&
                        !isElementInViewport((_a = this.gridContainerRef) === null || _a === void 0 ? void 0 : _a.current, this.props.store.boundariesElement)) ||
                        this.props.store.isDeepLinkTemplate) {
                        // For the `Templates` tab, the `cardsOnRow` isn't done correctly and sometimes returns the number of visible elements
                        // instead of the actual cards on row. So before testing the condition below we want to make sure we have the correct number
                        // of `cardsOnRow`
                        if (this.props.store.isDeepLinkTemplate) {
                            cardsOnRow = computeMaxNumCardsOnRow(this.props.containerSize, this.gridWrapperRef, this.allElementsCount);
                        }
                        if (this.props.store.isDeepLinkTemplate && index >= cardsOnRow) {
                            const template = (_d = (_c = (_b = this.gridContainerRef) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.children[1]) === null || _d === void 0 ? void 0 : _d.children[index];
                            template === null || template === void 0 ? void 0 : template.scrollIntoView();
                        }
                        else {
                            (_f = (_e = this.gridContainerRef) === null || _e === void 0 ? void 0 : _e.current) === null || _f === void 0 ? void 0 : _f.scrollIntoView();
                        }
                        this.props.store.isDeepLinkTemplate = false;
                    }
                    cards[index].focus();
                    this.props.store.forceFocus = false;
                }
            }
        }
    }
    /**
     * Recomputes the number of cards to be displayed on the first row of the grid. This is meant to be used on resize
     * or on expand / collapse.
     *
     * @param forceRecompute True if we want to force a card recomputation even when shouldRecomputeNumCards is not set.
     * @param forceFocus True if we want to force focus on the selected card.
     */
    recomputeNumCards(forceRecompute = false, forceFocus = false) {
        if (forceRecompute || this.state.shouldRecomputeNumCards) {
            const newCardCount = this.numVisibleCards;
            // If the selected item is out of view, force toggle view all
            const selectedItem = this.props.selectedItem;
            if (selectedItem &&
                this.getPosition(selectedItem) >= newCardCount &&
                isElementInMap(this.positionMap, selectedItem) &&
                this.state.collapsed &&
                !this._resetOutOfViewSelected) {
                this.onViewAllToggle(true, false);
                // We also exit the function here because `onViewAllToggle` will `recomputeNumCards` again once it expands
                return;
            }
            // Remain collapsible if the container is collapsible, and it's not open already, and we're not already displaying all the cards.
            // Exceptional case: when we have a forced update (i.e. we switched tabs and we need the container to remain collapsible at least until the first size computation)
            const stayCollapsible = this.props.collapsible &&
                (forceRecompute ||
                    (this.state.collapsed ? this.props.elements && newCardCount < this.props.elements.length : true));
            this._resetOutOfViewSelected = false;
            this.setState({
                numCards: newCardCount,
                shouldRecomputeNumCards: false,
                collapsible: stayCollapsible,
            }, () => {
                // if the selected element is no longer visible, just select the first card in the grid
                const selectedItem = this.props.selectedItem;
                if ((!selectedItem || this.getPosition(selectedItem) >= this.state.numCards) &&
                    isElementInMap(this.positionMap, selectedItem)) {
                    // select the first element by default
                    this.onItemSelected(this.visibleElements[0]);
                }
                else {
                    // Just force focus on the selected item after a card recomputation
                    // We only do this when one of the flags are set: on dialog show or when the grid was expanded using down arrow
                    if (forceFocus || this.props.forceFocus) {
                        // I know this is not the best solution, but the tab focus-ring doesn't reset on Escape.
                        //  So we do it the hard way: remove the focus-ring directly if it's on a tab before the first show
                        if (this.props.forceFocus) {
                            const activeElement = document.activeElement;
                            if (activeElement &&
                                activeElement.classList &&
                                activeElement.classList.contains('spectrum-Tabs-item')) {
                                activeElement.classList.remove('focus-ring');
                            }
                        }
                        requestAnimationFrame(() => this.focusSelectedElement(selectedItem));
                    }
                }
            });
        }
    }
    /**
     * Next card selection handler.
     */
    onNextItem() {
        var _a, _b;
        const { elements, selectedItem } = this.props;
        if (elements && selectedItem) {
            const index = this.getPosition(selectedItem);
            let nextIndex = Math.min(index + 1, this.state.numCards - 1);
            // check if the currently selected element is the last of the visible cards in the grid
            if (index === nextIndex) {
                if (!this.state.collapsible || !this.state.collapsed) {
                    // the next jump would be out of the grid
                    return (_b = (_a = this.props).jumpToNextGrid) === null || _b === void 0 ? void 0 : _b.call(_a);
                }
                this.onViewAllToggle(true);
                nextIndex = index + 1;
            }
            if (nextIndex >= 0) {
                this.onItemSelected(elements[nextIndex]);
            }
        }
    }
    /**
     * Previous card selection handler.
     */
    onPreviousItem() {
        var _a, _b;
        const { elements, selectedItem } = this.props;
        if (elements && selectedItem) {
            const index = this.getPosition(selectedItem);
            const prevIndex = Math.max(0, index - 1);
            // check if the currently selected element is the first of the visible cards in the grid
            if (index === prevIndex) {
                // the next jump would be out of the grid
                return (_b = (_a = this.props).jumpToPreviousGrid) === null || _b === void 0 ? void 0 : _b.call(_a);
            }
            this.onItemSelected(elements[prevIndex]);
        }
    }
    /**
     * Next card row selection handler.
     */
    onNextRow() {
        const cardsOnRow = this.state.cardsOnRow;
        const { elements, selectedItem } = this.props;
        if (elements && selectedItem && cardsOnRow) {
            const allElementsCount = this.allElementsCount;
            let nextIndex = this.getPosition(selectedItem) + cardsOnRow;
            // 0-based rows
            const maxRows = Math.floor((allElementsCount - 1) / cardsOnRow);
            const nextRow = Math.floor(nextIndex / cardsOnRow);
            // if we didn't go past the last row of elements, select the element at nextIndex or the last element available on that row
            if (nextRow <= maxRows) {
                nextIndex = Math.min(nextIndex, allElementsCount - 1);
                this.onItemSelected(this.props.elements[nextIndex]);
            }
            else {
                // the next jump would be out of the grid
                this.props.jumpToNextGrid && this.props.jumpToNextGrid();
            }
        }
    }
    /**
     * Previous card row selection handler.
     */
    onPreviousRow() {
        const cardsOnRow = this.state.cardsOnRow;
        const { elements, selectedItem } = this.props;
        if (elements && selectedItem && cardsOnRow) {
            let prevIndex = this.getPosition(selectedItem) - cardsOnRow;
            // 0-based rows
            const prevRow = Math.floor(prevIndex / cardsOnRow);
            // if we didn't go further than row 0, select the element at prevIndext or the first element available on the row
            if (prevRow >= 0) {
                prevIndex = Math.max(0, prevIndex);
                this.onItemSelected(this.props.elements[prevIndex]);
            }
            else {
                // the next jump would be out of the grid
                this.props.jumpToPreviousGrid && this.props.jumpToPreviousGrid();
            }
        }
    }
    /**
     * Event handler for the card toggle button.
     *
     * @param [forceExpand=false] If true, open regardless of this.state.collapsed.
     * @param [logClickEvent=true] If true, click event will be logged
     */
    onViewAllToggle(forceExpand = false, logClickEvent = true) {
        this.setState({
            collapsed: !forceExpand && !this.state.collapsed,
        }, () => {
            // once collapsed is set on state, tell the grid to recompute and reset focus
            this.recomputeNumCards(true, true);
        });
        logClickEvent &&
            this.props.store.analytics.logFNFTActionClickedEvent('preset-viewmore', {
                activeFilter: this.props.store.activeView,
            });
    }
    /**
     * Computes the maximum number of cards that would fit on a grid row.
     *
     * @returns Amount of cards that fit in the grid row.
     */
    get numVisibleCards() {
        const allElementsCount = this.allElementsCount;
        // this.state.cardsOnRow hasn't been initialized, so we need to do an initial computation and keep it on the state.
        // From this point on, cardsOnRow will only change when we resize the window
        let cardsOnRow = this.state.cardsOnRow;
        if (cardsOnRow === undefined) {
            cardsOnRow = computeMaxNumCardsOnRow(this.props.containerSize, this.gridWrapperRef, allElementsCount);
            this.setState({
                cardsOnRow: cardsOnRow,
            });
        }
        // if the container is collapsed, then the next - prev selection needs to happen just on the visible row,
        // so we need to find out how many cards we have on a row
        if (this.state.collapsed) {
            return Math.min(cardsOnRow || allElementsCount, allElementsCount);
        }
        return allElementsCount;
    }
    /**
     * The elements that should be displayed, depending on the collapsed status of the container
     * and the available width of the screen.
     *
     * @returns Elements that are visible in the grid.
     */
    get visibleElements() {
        const elements = this.props.elements;
        const numCards = this.state.numCards;
        if (elements && this.state.collapsed && numCards >= 0 && numCards <= elements.length) {
            return elements.slice(0, numCards);
        }
        return elements;
    }
    /**
     * Handles the Grid keyDown event.
     *
     * @param event KeyDown event.
     */
    onKeyDown(event) {
        switch (event.key) {
            case 'ArrowLeft':
                this.onPreviousItem();
                break;
            case 'ArrowRight':
                this.onNextItem();
                break;
            case 'ArrowUp':
                this.onPreviousRow();
                break;
            case 'ArrowDown':
                // if it's collapsed, first expand the grid and then perform selection
                if (this.state.collapsible && this.state.collapsed) {
                    this.onViewAllToggle(true);
                }
                this.onNextRow();
                break;
            case 'Enter': {
                const target = event.target;
                const className = target.className || '';
                const targetIsSelectedCard = className.indexOf(GridCard_default.a['cmdn-GridCard']) !== -1 &&
                    className.indexOf(GridCard_default.a['is-selected']) !== -1;
                if (!targetIsSelectedCard) {
                    break; // only perform action if we're focused on the selected card
                }
                this.props.selectedItem && this.onItemDoubleClick(this.props.selectedItem);
                break;
            }
            case 'Delete':
            case 'Backspace':
                this.props.deletableItems &&
                    this.props.selectedItem &&
                    !this.props.selectedItem.hideDltBtn &&
                    this.onItemDeleted(this.props.selectedItem);
                break;
            default:
        }
    }
    /**
     * Gets the amount of elements in the list.
     *
     * @returns Amount of elements in the grid.
     */
    get allElementsCount() {
        return (this.props.elements && this.props.elements.length) || 0;
    }
    /**
     * Event handler for grid focus. The only reason why we need this is to not lose card selection
     * when we click in the blank space near the card.
     *
     * @param event The element to handle.
     */
    handleGridFocus(event) {
        const elements = this.props.elements;
        if (this.gridWrapperRef &&
            this.gridWrapperRef.current &&
            this.gridWrapperRef.current.classList === event.target.classList) {
            if (!isElementInMap(this.positionMap, this.props.selectedItem)) {
                elements && elements.length > 0 && this.onItemSelected(elements[0]);
            }
            else {
                this.focusSelectedElement(this.props.selectedItem);
            }
        }
    }
    render() {
        var _a;
        const { id, elements, title, titleIsAlreadyTranslated, selectedItem, tallCards, deletableItems, onlyTitle, limit, } = this.props;
        const { collapsible, collapsed } = this.state;
        const visibleElements = limit ? (_a = this.visibleElements) === null || _a === void 0 ? void 0 : _a.slice(0, limit) : this.visibleElements;
        const wrapperCollapsed = collapsible && collapsed;
        const wideScreen = isWideScreen(this.props.containerSize);
        const classes = [
            GridView_default.a['cmdn-GridView'],
            {
                [GridView_default.a['cmdn-GridView-wide']]: wideScreen,
            },
        ];
        return (react_default.a.createElement("div", { className: classnames_default()(classes) }, elements && elements.length > 0 && (react_default.a.createElement("div", { id: id, ref: this.gridContainerRef },
            onlyTitle ? (react_default.a.createElement("div", { id: getGridTitle(id), className: GridView_default.a['cmdn-GridView-Title'], "data-qe-id": CMDN_GRID_TITLE_ONLY }, titleIsAlreadyTranslated ? title : react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: title }))) : (react_default.a.createElement("div", { id: getGridTitle(id), className: GridView_default.a['cmdn-GridView-Title'] },
                title ? (titleIsAlreadyTranslated ? (react_default.a.createElement("span", null, title.toUpperCase())) : (react_default.a.createElement(FormattedUppercaseMessage_FormattedUppercaseMessage, { id: title }))) : (react_default.a.createElement(FormattedUppercaseMessage_FormattedUppercaseMessage, { id: "newdoc_blank_documents" })),
                react_default.a.createElement("div", { "data-qe-id": CMDN_GRID_TITLE_COUNT, className: GridView_default.a['cmdn-GridView-Count'] },
                    "(",
                    elements.length,
                    ")"))),
            react_default.a.createElement("div", { id: getGridCards(id), tabIndex: -1, onKeyDown: this.onKeyDown, ref: this.gridWrapperRef, className: classnames_default()(GridView_default.a['cmdn-GridView-GridWrapper'], {
                    [GridView_default.a['cmdn-GridView-GridWrapper-collapsed']]: wrapperCollapsed,
                }), onFocus: this.handleGridFocus }, visibleElements &&
                visibleElements.map((element, index) => (react_default.a.createElement(components_grid_card_GridCard, { boundariesElement: this.props.store.boundariesElement, id: getGridCardId(id, index), deleteButtonId: getGridCardDeleteButtonId(id, index), element: element, isDeletable: deletableItems && !element.hideDltBtn, isSelected: element.identifier === (selectedItem && selectedItem.identifier), key: element.identifier, onItemDeleted: () => this.onItemDeleted(element), onItemDoubleClick: () => this.onItemDoubleClick(element), onItemSelected: () => this.onItemSelected(element), tallCard: wideScreen && tallCards, wideCard: wideScreen })))),
            collapsible && collapsed && (react_default.a.createElement("div", { className: GridView_default.a['cmdn-GridView-Expander'] },
                react_default.a.createElement(Button_default.a, { id: getGridExpandButton(id), quiet: true, variant: "secondary", onClick: this.onViewAllToggle, "aria-label": react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_view_all" }) },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_view_all" }),
                    react_default.a.createElement(Add_default.a, { size: "XS", className: GridView_default.a['cmdn-GridView-Expander-Icon'] }))))))));
    }
}
/* harmony default export */ var components_grid_view_GridView = (Object(index_es["g" /* injectIntl */])(GridView_GridView, { withRef: true }));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/presets-grid-container/PresetsGridContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var PresetsGridContainer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};









let PresetsGridContainer_PresetsGridContainer = class PresetsGridContainer extends react["Component"] {
    componentDidMount() {
        const { store } = this.props;
        // Only set the default active template if it's blank (so the tab was switched)
        if (!store.activeDocumentTemplate) {
            this.props.store.setDefaultActiveDocumentTemplate();
        }
    }
    render() {
        const { store, viewId } = this.props;
        const presets = store.getPresetsByCategoryType(viewId);
        const templates = store.getTemplatesByCategoryType(viewId);
        const hasTemplates = !!(templates && templates.length > 0);
        const hasQuota = hosts["a" /* default */].userQuota > 0;
        const isRecent = viewId === DocumentTemplateCategoryTypes["a" /* default */].RECENT;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(components_grid_view_GridView, { id: CMDN_GRID_PRESETS, collapsed: true, collapsible: !isRecent && hasTemplates, containerSize: store.containerSize, elements: presets, onItemDoubleClick: (item) => Object(DocumentTemplateInteractionUtils["i" /* onPresetDoubleClick */])(store), onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), selectedItem: store.activeDocumentTemplate, jumpToNextGrid: () => Object(DocumentTemplateInteractionUtils["f" /* jumpToTemplateGrid */])(store, viewId), store: this.props.store, tallCards: false, title: isRecent ? 'newdoc_your_recent_items' : 'newdoc_blank_documents', forceFocus: store.forceFocus }),
            hasTemplates && hasQuota && (react_default.a.createElement(components_grid_view_GridView, { id: CMDN_GRID_TEMPLATES, collapsible: false, containerSize: store.containerSize, elements: templates, onItemDoubleClick: (item) => Object(DocumentTemplateInteractionUtils["j" /* onTemplateDoubleClick */])(store, item), onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), selectedItem: store.activeDocumentTemplate, jumpToPreviousGrid: () => Object(DocumentTemplateInteractionUtils["d" /* jumpToPresetGrid */])(store, viewId), store: this.props.store, tallCards: true, title: "listview_template_tab_label", forceFocus: store.forceFocus })),
            react_default.a.createElement(ModalViewContainer_ObservedClass, null)));
    }
};
PresetsGridContainer_PresetsGridContainer = PresetsGridContainer_decorate([
    index_module["e" /* observer */]
], PresetsGridContainer_PresetsGridContainer);
/* harmony default export */ var presets_grid_container_PresetsGridContainer = (Object(index_es["g" /* injectIntl */])(PresetsGridContainer_PresetsGridContainer));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/feature-flag/FeatureFlagProvider.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const FeatureFlagContext = react_default.a.createContext(undefined);
class FeatureFlagProvider_FeatureFlagProvider extends react["Component"] {
    render() {
        const { children, values } = this.props;
        return react_default.a.createElement(FeatureFlagContext.Provider, { value: values }, children);
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/feature-flag/FeatureFlagController.ts
var FeatureFlagController = __webpack_require__("zBY0");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/feature-flag/FeatureFlagRenderer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Component that decides to render based on the authorized flags.
 */
class FeatureFlagRenderer_FeatureFlagRenderer extends react["Component"] {
    render() {
        const { children, featureFlags, render, renderFallback } = this.props;
        return (react_default.a.createElement(FeatureFlagContext.Consumer, null, flags => FeatureFlagController["a" /* FeatureFlagController */].hasFeatureFlags(flags, featureFlags)
            ? children
                ? children
                : typeof render === 'function' && render()
            : typeof renderFallback === 'function' && renderFallback()));
    }
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Select/index.js
var Select = __webpack_require__("GfA4");
var Select_default = /*#__PURE__*/__webpack_require__.n(Select);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/background-contents-panel/BackgroundContentsPanel.css
var background_contents_panel_BackgroundContentsPanel = __webpack_require__("5RY0");
var BackgroundContentsPanel_default = /*#__PURE__*/__webpack_require__.n(background_contents_panel_BackgroundContentsPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/background-contents-panel/BackgroundContentsPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class BackgroundContentsPanel_BackgroundContentsPanel extends react["Component"] {
    constructor(props) {
        super(props);
        this.state = {};
        this.openPicker = this.openPicker.bind(this);
        this.onFillChange = this.onFillChange.bind(this);
        this.onKeyDown = this.onKeyDown.bind(this);
    }
    async openPicker(defaultCustomColor) {
        if (this.props.onOpenPicker) {
            const { intl, analytics } = this.props;
            const { formatMessage } = intl;
            analytics.logPresetDetailsInteraction('background-contents-color-picker');
            // the PS openPicker API expects the color as a JSON string
            const colorObject = await this.props.onOpenPicker(defaultCustomColor || this.props.customColor, formatMessage({ id: 'newdoc_color-picker_context' }));
            colorObject && this.onFillChange(colorObject);
        }
    }
    onFillChange(value) {
        if (value === 'custom') {
            // if we switched to custom, we should open the picker to let the user select a new color
            this.openPicker(this.props.defaultValue);
        }
        else if (typeof this.props.onFillChange === 'function') {
            this.props.onFillChange(value);
        }
    }
    onKeyDown(event) {
        if (event.key === ' ') {
            this.openPicker();
        }
    }
    render() {
        const { value, values, intl, customColorRgbString, analytics } = this.props;
        const options = values &&
            values.map(value => ({
                label: intl.formatMessage({ id: `newdoc_details_backgroundcolor_${value}` }),
                value,
            }));
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_background" }) },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: BackgroundContentsPanel_default.a['cmdn-BackgroundContents-color'] },
                    react_default.a.createElement(Select_default.a, { id: CMDN_SIDEBAR_BACKGROUND_CONTENTS_DROPDOWN, className: BackgroundContentsPanel_default.a['cmdn-BackgroundContents-dropdown'], value: value, defaultValue: "white", options: options, onOpen: () => analytics.logPresetDetailsInteraction('background-contents-select'), onChange: this.onFillChange, placeholder: intl.formatMessage({ id: 'select_placeholder' }) })),
                react_default.a.createElement(components_flex_FlexItem, { className: BackgroundContentsPanel_default.a['cmdn-BackgroundContents-pickerItem'] },
                    react_default.a.createElement("div", { id: CMDN_SIDEBAR_BACKGROUND_CONTENTS_COLOR_PICKER, tabIndex: 0, className: BackgroundContentsPanel_default.a['cmdn-BackgroundContents-colorPicker'], onClick: () => this.openPicker(), style: customColorRgbString ? { backgroundColor: customColorRgbString } : {}, onKeyDown: this.onKeyDown })))));
    }
}
/* harmony default export */ var components_background_contents_panel_BackgroundContentsPanel = (Object(index_es["g" /* injectIntl */])(BackgroundContentsPanel_BackgroundContentsPanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/color-mode-panel/ColorModePanel.css
var color_mode_panel_ColorModePanel = __webpack_require__("nGeh");
var ColorModePanel_default = /*#__PURE__*/__webpack_require__.n(color_mode_panel_ColorModePanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/color-mode-panel/ColorModePanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class ColorModePanel_ColorModePanel extends react["Component"] {
    render() {
        const { id, defaultValue, depth, hasDepth, value, defaultDepth, colorModes, intl, onChange, onEncodingChange, titleClassName, analytics, } = this.props;
        const options = colorModes &&
            colorModes.map(colorMode => ({
                label: intl.formatMessage({ id: `newdoc_details_colormode_${colorMode.mode}` }),
                value: colorMode.mode,
            }));
        const encoding = colorModes && colorModes.find(colorMode => colorMode.mode === value);
        let encodingOptions = [];
        if (encoding && encoding.values) {
            encodingOptions = encoding.values.map(value => ({ label: `${value} bit`, value }));
        }
        const colorModeClass = [ColorModePanel_default.a['cmdn-ColorModePanel-mode']];
        if (hasDepth) {
            colorModeClass.push(ColorModePanel_default.a['cmdn-ColorModePanel-hasEncoding']);
        }
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_colormode" }), titleClassName: titleClassName, className: ColorModePanel_default.a['cmdn-ColorModePanel'] },
            react_default.a.createElement(FlexContainer_FlexContainer, { id: id },
                react_default.a.createElement("div", { className: classnames_default()(colorModeClass) },
                    react_default.a.createElement(Select_default.a, { id: CMDN_SIDEBAR_COLOR_MODE_PANEL, value: value, defaultValue: defaultValue, options: options, onOpen: () => analytics.logPresetDetailsInteraction('color-mode'), onChange: value => onChange(colorModes && colorModes.find(colorMode => colorMode.mode === value)), placeholder: intl.formatMessage({ id: 'select_placeholder' }) })),
                hasDepth && (react_default.a.createElement("div", { className: ColorModePanel_default.a['cmdn-ColorModePanel-encoding'] },
                    react_default.a.createElement(Select_default.a, { id: CMDN_SIDEBAR_COLOR_MODE_DEPTH_PANEL, value: depth, defaultValue: defaultDepth, options: encodingOptions, onOpen: () => analytics.logPresetDetailsInteraction('color-mode-bits'), onChange: value => onEncodingChange(value), placeholder: intl.formatMessage({ id: 'select_placeholder' }) }))))));
    }
}
/* harmony default export */ var components_color_mode_panel_ColorModePanel = (Object(index_es["g" /* injectIntl */])(ColorModePanel_ColorModePanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/color-profile-panel/ColorProfilePanel.css
var color_profile_panel_ColorProfilePanel = __webpack_require__("QvCo");
var ColorProfilePanel_default = /*#__PURE__*/__webpack_require__.n(color_profile_panel_ColorProfilePanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/color-profile-panel/ColorProfilePanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






class ColorProfilePanel_ColorProfilePanel extends react["Component"] {
    render() {
        const { values, value, defaultValue, intl, onChange, analytics } = this.props;
        // For now we reduce to one list. When using grouping here we should just map.
        const options = values &&
            values.reduce((acc, list) => acc.concat(list.map(item => {
                let label = item;
                let value = item;
                if (typeof item === 'object' && item !== null) {
                    label = item.label || item.value;
                    value = item.value;
                }
                switch (label) {
                    case 'none':
                        return {
                            value,
                            label: intl.formatMessage({ id: 'newdoc_details_label_noColorManage' }),
                        };
                    case 'default':
                        return {
                            value,
                            label: intl.formatMessage({ id: 'newdoc_details_label_workingProfile' }),
                        };
                    default:
                        return { value, label };
                }
            })), []);
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_colorProfile" }) },
            react_default.a.createElement(Select_default.a, { id: CMDN_SIDEBAR_COLOR_PROFILE_SELECT, value: value, defaultValue: defaultValue, options: options, onOpen: () => analytics.logPresetDetailsInteraction('color-profile'), onChange: onChange, className: ColorProfilePanel_default.a['cmdn-colorSelect'], placeholder: intl.formatMessage({ id: 'select_placeholder' }) })));
    }
}
/* harmony default export */ var components_color_profile_panel_ColorProfilePanel = (Object(index_es["g" /* injectIntl */])(ColorProfilePanel_ColorProfilePanel));

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/number.js
var number = __webpack_require__("x1bj");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/filterDOMProps.js
var filterDOMProps = __webpack_require__("Cv/Q");
var filterDOMProps_default = /*#__PURE__*/__webpack_require__.n(filterDOMProps);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textfield/index.js
var Textfield = __webpack_require__("WgUl");
var Textfield_default = /*#__PURE__*/__webpack_require__.n(Textfield);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/InputGroup/index.js
var InputGroup = __webpack_require__("VDrw");
var InputGroup_default = /*#__PURE__*/__webpack_require__.n(InputGroup);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/core/ChevronDownSmall.js
var ChevronDownSmall = __webpack_require__("KHxb");
var ChevronDownSmall_default = /*#__PURE__*/__webpack_require__.n(ChevronDownSmall);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/core/ChevronUpSmall.js
var ChevronUpSmall = __webpack_require__("kgO+");
var ChevronUpSmall_default = /*#__PURE__*/__webpack_require__.n(ChevronUpSmall);

// EXTERNAL MODULE: ./node_modules/@adobe/spectrum-css/dist/components/stepper/index.css
var stepper = __webpack_require__("/+xs");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts + 1 modules
var MathUtils = __webpack_require__("AGvf");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/number-input/NumberInput.css
var number_input_NumberInput = __webpack_require__("8A1o");
var NumberInput_default = /*#__PURE__*/__webpack_require__.n(number_input_NumberInput);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/number-input/NumberInput.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/















var StepMode;
(function (StepMode) {
    StepMode[StepMode["NORMAL"] = 0] = "NORMAL";
    StepMode[StepMode["FAST"] = 1] = "FAST";
    StepMode[StepMode["SLOW"] = 2] = "SLOW";
})(StepMode || (StepMode = {}));
/** Regex used to determine the accepted input values. */
const NUMBER_INPUT_REGEX = new RegExp('[^0-9.,()*/+-]', 'g');
/** Regex used to determine the accepted input values including special chars such as arabic numbers, commas and full-width characters. */
const NUMBER_INPUT_SPECIAL_CHAR_REGEX = new RegExp('[^0-9٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹。.,*/+\\-\uff01-\uff5e"”\\s]', 'g');
class NumberInput_EditBuffer {
    constructor(_text, allowSpecialCharacters, _evaluateExpression) {
        this._text = _text;
        this._value = _evaluateExpression
            ? _evaluateExpression(_text)
            : allowSpecialCharacters
                ? Object(MathUtils["c" /* evaluateExpression */])(Object(JsUtils["k" /* replaceSpecialCharacters */])(_text))
                : Object(MathUtils["c" /* evaluateExpression */])(_text);
    }
    /**
     * Current value as a String. Mathematical expressions will not be evaluated.
     *
     * @returns Value represented by the buffer as a string.
     */
    get text() {
        return this._text;
    }
    /**
     * Current value as a number.
     *
     * @returns Value represented by the buffer as a number.
     */
    get value() {
        return this._value;
    }
}
class NumberInput_NumberInput extends react["Component"] {
    constructor(props) {
        super(props);
        this._lastBlurTimestamp = 0;
        const { id, validationRegex, allowSpecialCharacters } = props;
        // set initial state
        this.state = {
            inputId: id || createId_default()(),
            focused: false,
        };
        // init privates
        this._regex = validationRegex
            ? validationRegex
            : allowSpecialCharacters
                ? NUMBER_INPUT_SPECIAL_CHAR_REGEX
                : NUMBER_INPUT_REGEX;
        // bind the bunch
        this.handleBlur = this.handleBlur.bind(this);
        this.handleFocus = this.handleFocus.bind(this);
        this.handleInputChange = this.handleInputChange.bind(this);
        this.handleInputKeyDown = this.handleInputKeyDown.bind(this);
        this.handleInputScrollWheel = this.handleInputScrollWheel.bind(this);
        this.handleDecrementButtonClick = this.handleDecrementButtonClick.bind(this);
        this.handleIncrementButtonClick = this.handleIncrementButtonClick.bind(this);
    }
    /**
     * Actions to perform after mounting the component. Add event listeners on the child TextField control.
     */
    componentDidMount() {
        const node = react_dom_default.a.findDOMNode(this._textfield);
        if (node) {
            node.addEventListener('wheel', this.handleInputScrollWheel, {
                passive: false,
            });
        }
    }
    /**
     * Actions to perform after unmounting the component. Remove event listeners from the child TextField control.
     */
    componentWillUnmount() {
        const node = react_dom_default.a.findDOMNode(this._textfield);
        if (node) {
            node.removeEventListener('wheel', this.handleInputScrollWheel);
        }
    }
    /**
     * Provides a safe value for the fast step multiplier (active when holding 'Shift').
     *
     * @returns The multiplier if it exists and is greater than 0, otherwise 10.
     */
    get fastStepMultiplier() {
        const { fastStepMultiplier } = this.props;
        return fastStepMultiplier && window.isFinite(fastStepMultiplier) && fastStepMultiplier > 0
            ? fastStepMultiplier
            : 1;
    }
    /**
     * Provides a safe value for the slow step multiplier (active when holding 'Command').
     *
     * @returns The multiplier if it exists and is greater than 0, otherwise 1.
     */
    get slowStepMultiplier() {
        const { slowStepMultiplier } = this.props;
        return slowStepMultiplier && window.isFinite(slowStepMultiplier) && slowStepMultiplier > 0
            ? slowStepMultiplier
            : 1;
    }
    /**
     * Provides a safe value for the step.
     *
     * @returns The step if it exists and is greater than 0, otherwise 1.
     */
    get step() {
        const { step } = this.props;
        return step && window.isFinite(step) && step > 0 ? step : 1;
    }
    /**
     * Chooses between normal or fast step.
     *
     * @param stepMode The mode to use, which will select a specific multiplier.
     * @returns The step for the requested mode.
     */
    selectStep(stepMode) {
        const { step, fastStepMultiplier, slowStepMultiplier } = this;
        switch (stepMode) {
            case StepMode.FAST:
                return step * fastStepMultiplier;
            case StepMode.SLOW:
                return step * slowStepMultiplier;
            case StepMode.NORMAL:
            default:
                return step;
        }
    }
    /**
     * Validates user input for illegal characters. Input may only contain either only numbers and supported mathematical
     * operators for simple number inputs, or may also allow letters if an expression evaluation function was provided as parameter.
     * This does not validate the expression.
     *
     * @param inputValue Expression to validate.
     * @returns True if expression is made up of legal characters, false otherwise.
     */
    validateInput(inputValue) {
        return inputValue.match(this._regex) === null;
    }
    /**
     * Returns the proper value from the received component props.
     *
     * @returns The specified value, or the specified default value, or 0.
     */
    getPropsValue() {
        const { value, defaultValue } = this.props;
        return value && window.isFinite(value)
            ? value
            : defaultValue && window.isFinite(defaultValue)
                ? defaultValue
                : 0;
    }
    /**
     * Returns the step mode based on event props.
     *
     * @param event The event (KeyboardEvent/ WheelEvent/ MouseEvent).
     * @returns The step mode.
     */
    getStepMode(event) {
        return event.shiftKey ? StepMode.FAST : event.metaKey ? StepMode.SLOW : StepMode.NORMAL;
    }
    /**
     * Whether the fractional part of the incremented/decremented value needs to be a multiple of step based on event props.
     *
     * @param event The event (KeyboardEvent/ MouseEvent).
     * @returns True if the fractional part of the value needs to be a multiple of step, otherwise false.
     */
    snapToStep(event) {
        return event.shiftKey || !event.altKey;
    }
    /**
     * Gets the current props value as a localized string.
     *
     * @returns The current value as localized string.
     */
    getLocalizedValue() {
        const { userLocaleDecimal, valueFormatFn } = this.props;
        const valueString = valueFormatFn ? valueFormatFn(this.getPropsValue()) : this.getPropsValue().toString();
        return userLocaleDecimal ? valueString.replace('.', userLocaleDecimal) : valueString;
    }
    /**
     * Sanitizes a value to the required format (and bounds) before committing.
     *
     * @param rawValue The number to be sanitized.
     * @returns The sanitized number.
     */
    sanitizeValue(rawValue) {
        const { min, max } = this.props;
        const safeMin = typeof min === 'number' && window.isFinite(min) ? min : Number.NEGATIVE_INFINITY;
        const safeMax = typeof max === 'number' && window.isFinite(max) ? max : Number.POSITIVE_INFINITY;
        const clampedValue = Object(number["clamp"])(rawValue, safeMin, safeMax);
        return clampedValue;
    }
    /**
     * Commits the new value by invoking the callback requested by the caller using the new value. The value is
     * sanitized before being committed. The current editing buffer is also cleared.
     *
     * @param newValue The value to be committed.
     */
    commitNewValue(newValue) {
        const { onChange } = this.props;
        // propagate new value
        typeof onChange === 'function' && onChange(this.sanitizeValue(newValue));
        // discard buffer (do it at the end to avoid flickeriing)
        this.clearBuffer();
    }
    /**
     * Try to get the current value to operate on, either from the editing buffer or the props value. If buffer exists,
     * its numeric evaluation is returned, even if invalid. If there is no buffer, the props value is returned.
     *
     * @returns The current value to operate on.
     */
    get valueAsNumber() {
        const { editBuffer } = this.state;
        return editBuffer ? editBuffer.value : this.getPropsValue();
    }
    /**
     * Try to get the current display value, either from the editing buffer or the props value. If buffer exists, its
     * text is returned. If there is no buffer, the props value is localized and returned.
     *
     * @returns The current display value.
     */
    get valueAsString() {
        const { editBuffer } = this.state;
        return editBuffer ? editBuffer.text : this.getLocalizedValue();
    }
    /**
     * Flushes the current buffer (if valid) and commits it.
     */
    flushBuffer() {
        const { editBuffer } = this.state;
        // if we have a buffer with a valid value, commit it
        editBuffer && window.isFinite(editBuffer.value) && this.commitNewValue(editBuffer.value);
        // discard buffer (do it at the end to avoid flickeriing)
        this.clearBuffer();
    }
    /**
     * Discards the current buffer.
     */
    clearBuffer() {
        this.setState({ editBuffer: undefined });
    }
    /**
     * Handles the input focus. Makes the control active for keyboard and mouse input.
     */
    handleFocus() {
        this.setState({ focused: true });
        this.logFocusAnalytics();
    }
    logFocusAnalytics() {
        const { logAnalytics } = this.props;
        const justBlurred = Date.now() - this._lastBlurTimestamp < 150;
        if (!justBlurred) {
            logAnalytics === null || logAnalytics === void 0 ? void 0 : logAnalytics();
        }
    }
    /**
     * Handles the input blur. Automatically commits the buffer computed value if it exists and is valid, as well as cleaning the buffer.
     */
    handleBlur() {
        this.setState({ focused: false });
        this.flushBuffer();
        this._lastBlurTimestamp = Date.now();
    }
    /**
     * Handles keyboard presses.
     *
     * @param event The keyboard event.
     */
    handleInputKeyDown(event) {
        // If the input isn't supposed to receive input, do nothing.
        if (this.isInactive()) {
            return;
        }
        const isEditing = !window.isFinite(this.valueAsNumber);
        const stepMode = this.getStepMode(event);
        const snapToStep = this.snapToStep(event);
        switch (event.key) {
            case 'ArrowUp':
            case 'PageUp':
                if (isEditing) {
                    break;
                }
                event.preventDefault();
                this.stepUp(stepMode, snapToStep);
                break;
            case 'ArrowDown':
            case 'PageDown':
                if (isEditing) {
                    break;
                }
                event.preventDefault();
                this.stepDown(stepMode, snapToStep);
                break;
            case 'End':
                if (isEditing) {
                    break;
                }
                event.preventDefault();
                this.decrementToMinValue();
                break;
            case 'Home':
                if (isEditing) {
                    break;
                }
                event.preventDefault();
                this.incrementToMaxValue();
                break;
            case 'Escape':
                this.clearBuffer(); // Esc should discard changes
                this.handleBlur();
                break;
            case 'Enter':
                this.handleBlur();
                break;
            default:
            // do nothing
        }
    }
    /**
     * Handles the scrollwheel.
     *
     * @param event The scroll event.
     */
    handleInputScrollWheel(event) {
        // If the input isn't supposed to receive input, do nothing.
        if (this.isInactive()) {
            return;
        }
        const evt = event;
        evt.preventDefault();
        const stepMode = this.getStepMode(evt);
        if (evt.deltaY < 0) {
            this.stepUp(stepMode);
        }
        else {
            this.stepDown(stepMode);
        }
    }
    /**
     * Handles a scrubby value.
     *
     * @param direction Direction in which the mouse moved. Positive number indicates right and negative left.
     * @param fastModifier Whether the fast modifier has been pressed or not.
     * @param slowModifier Wheter the slow modifier has been pressed or not.
     */
    onScrubbyValue(direction, fastModifier, slowModifier) {
        const { disabled, readOnly } = this.props;
        // should not respond to value changes when the user cannot interact with it
        if (disabled || readOnly) {
            return;
        }
        const stepMode = fastModifier ? StepMode.FAST : slowModifier ? StepMode.SLOW : StepMode.NORMAL;
        if (direction > 0) {
            this.stepUp(stepMode);
        }
        else {
            this.stepDown(stepMode);
        }
    }
    /**
     * Handles typing new characters.
     *
     * @param inputText The text provided by the user (possibly locale specific).
     * @param event The Event that triggered the change.
     */
    handleInputChange(inputText, event) {
        event.stopPropagation();
        // if it's not junk characters, update the buffer
        this.validateInput(inputText) &&
            this.setState({
                editBuffer: new NumberInput_EditBuffer(inputText, this.props.allowSpecialCharacters, this.props.evaluateExpressionFn),
            });
    }
    /**
     * Returns true if the Textfield cannot receive any input.
     *
     * @returns If Textfield can receive input.
     */
    isInactive() {
        const { disabled, readOnly } = this.props;
        const { focused } = this.state;
        return disabled || readOnly || !focused;
    }
    /**
     * Determine if the current value is in-between steps,
     * so the next stepUp/Down will need snapping to the next/previous step or will be increased by a full step.
     * For example, if step is 0.1 and value is 12.325, the value will need snapping, so stepUp will update to
     * 12.4 or stepDown will update to 12.3.
     *
     * @param value The value that needs to be checked if in-between steps.
     * @param step The current step.
     * @returns If the current value is in-between steps, so the next stepUp/Down will need snapping
     * to the next/previous step or will be increased by a full step.
     */
    needsSnapToStep(value, step) {
        const modulus = Object(MathUtils["f" /* roundDecimal */])(value % step, this.props.decimalsUsedForSnaping || 0);
        const roundedStep = Object(MathUtils["f" /* roundDecimal */])(step, this.props.decimalsUsedForSnaping || 0);
        return modulus !== 0 && modulus !== roundedStep;
    }
    /**
     * Adds step number to the value number so long as it stays within min/max (if they are defined). If value is
     * undefined, sets it to the step.
     *
     * @param [stepMode=StepMode.NORMAL] A value from StepMode enum: NORMAL/FAST/SLOW.
     * @param snapToStep Whether the fractional part of the incremented value needs to be a multiple of step.
     */
    stepUp(stepMode = StepMode.NORMAL, snapToStep) {
        const valueAsNumber = this.valueAsNumber;
        if (!window.isFinite(valueAsNumber)) {
            return;
        }
        // if we're not editing a partial expression, increment the value
        const step = this.selectStep(stepMode);
        let newValue = valueAsNumber + step;
        const { needsSnapToStep } = this.props;
        if (snapToStep && needsSnapToStep && this.needsSnapToStep(valueAsNumber, step)) {
            newValue = this.ceilValueToStep(valueAsNumber, step);
        }
        if (this.needsCapToMaxValue(newValue)) {
            this.incrementToMaxValue();
            return;
        }
        this.commitNewValue(newValue);
    }
    /**
     * Calculate the value rounded to the next step.
     *
     * @param value The value to ceil to next step.
     * @param step The current step.
     * @returns The value rounded to the next step.
     */
    ceilValueToStep(value, step) {
        return Math.ceil(value / step) * step;
    }
    /**
     * If max is defined, determine if value is greater than the max value.
     *
     * @private
     * @param value The value to check if needs capping.
     * @returns If max defined and value is greater.
     */
    needsCapToMaxValue(value) {
        const { max } = this.props;
        // if there is a finite max, check if value is greater and needs capping
        return typeof max === 'number' && window.isFinite(max) && value > max;
    }
    /**
     * If max is defined, sets value to the max value.
     */
    incrementToMaxValue() {
        const { max } = this.props;
        // if there is a finite max, jump to it
        typeof max === 'number' && window.isFinite(max) && this.commitNewValue(max);
    }
    /**
     * Subtracts step number from the value number so long as it stays within min/max (if they are defined). If value
     * is undefined, sets it to the step.
     *
     * @param [stepMode=StepMode.NORMAL] A value from StepMode enum: NORMAL/FAST/SLOW.
     * @param snapToStep Whether the fractional part of the incremented value needs to be a multiple of step.
     */
    stepDown(stepMode = StepMode.NORMAL, snapToStep) {
        const valueAsNumber = this.valueAsNumber;
        if (!window.isFinite(valueAsNumber)) {
            return;
        }
        // if we're editing not a partial expression, decrement the value
        const step = this.selectStep(stepMode);
        let newValue = valueAsNumber - step;
        const { needsSnapToStep } = this.props;
        if (snapToStep && needsSnapToStep && this.needsSnapToStep(valueAsNumber, step)) {
            newValue = this.floorValueToStep(valueAsNumber, step);
        }
        if (this.needsCapToMinValue(newValue)) {
            this.decrementToMinValue();
            return;
        }
        this.commitNewValue(newValue);
    }
    /**
     * Calculate the value rounded to the previous step.
     *
     * @param value The value to floor to previous step.
     * @param step The current step.
     * @returns The value rounded to the previous step.
     */
    floorValueToStep(value, step) {
        return Math.floor(value / step) * step;
    }
    /**
     * If min is defined, determine if value is lower than the min value.
     *
     * @param value The value to check if needs capping.
     * @returns If min defined and value is lower.
     */
    needsCapToMinValue(value) {
        const { min } = this.props;
        // if there is a finite min, check if value is lower and needs capping
        return typeof min === 'number' && window.isFinite(min) && value < min;
    }
    /**
     * If min is defined, sets value to the max value.
     */
    decrementToMinValue() {
        const { min } = this.props;
        // if there is a finite min, jump to it
        typeof min === 'number' && window.isFinite(min) && this.commitNewValue(min);
    }
    /**
     * Handles the decrement button click.
     *
     * @param event The button event.
     */
    handleDecrementButtonClick(event) {
        event.preventDefault();
        this.stepDown(this.getStepMode(event), this.snapToStep(event));
    }
    /**
     * Handles the increment button click.
     *
     * @param event The button event.
     */
    handleIncrementButtonClick(event) {
        event.preventDefault();
        this.stepUp(this.getStepMode(event), this.snapToStep(event));
    }
    /**
     * Returns whether a value is valid, i.e. A numeric expression evaluating to a result within the specified bounds.
     *
     * @param value The value to validate.
     * @returns Whether the value is valid.
     */
    validateNumericValue(value) {
        const { min, max } = this.props;
        return window.isFinite(value) && Object(MathUtils["e" /* inRange */])(value, min, max);
    }
    /**
     * Renders the component.
     *
     * @returns Node to render.
     */
    render() {
        const { id, defaultValue, min, max, step, invalid, disabled, quiet, className, readOnly, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, useSimpleInvalidIndicator, wide, hasArrows, ...otherProps } = this.props;
        const { focused, inputId } = this.state;
        const valueAsNumber = this.valueAsNumber;
        const valueAsString = this.valueAsString;
        const isValidNumber = this.validateNumericValue(valueAsNumber);
        const showInvalidState = invalid || !isValidNumber;
        const classes = [
            className,
            {
                [NumberInput_default.a['cmdn-NumberInput--narrowPadding']]: wide,
                [NumberInput_default.a['cmdn-NumberInput-forceFocus']]: focused && !showInvalidState,
                [NumberInput_default.a['cmdn-NumberInput-simpleInvalidIndicator']]: useSimpleInvalidIndicator,
                'spectrum-Stepper-input': hasArrows,
            },
        ];
        const textField = (react_default.a.createElement(Textfield_default.a, Object.assign({}, filterDOMProps_default()(otherProps), { focused: focused, ref: t => (this._textfield = t), className: classnames_default()(classes), id: inputId, value: valueAsString, role: "spinbutton", type: "text", autoComplete: "off", "aria-label": ariaLabel || null, "aria-labelledby": ariaLabelledBy || null, "aria-valuetext": isValidNumber ? valueAsNumber : null, "aria-valuemin": min, "aria-valuemax": max, validationState: showInvalidState ? 'invalid' : undefined, disabled: disabled, readOnly: readOnly, quiet: quiet, onKeyDown: this.handleInputKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: this.handleInputChange })));
        const stepUpDisabled = disabled || (typeof max === 'number' && valueAsNumber >= max) || readOnly;
        const stepDownDisabled = disabled || (typeof min === 'number' && valueAsNumber <= min) || readOnly;
        return hasArrows ? (react_default.a.createElement(InputGroup_default.a, { focused: focused, invalid: showInvalidState, quiet: quiet, disabled: disabled, className: classnames_default()('spectrum-Stepper', 'react-spectrum-Stepper', { 'spectrum-Stepper--quiet': quiet }, className), role: "group", "aria-label": ariaLabel || null },
            textField,
            react_default.a.createElement("span", { className: "spectrum-Stepper-buttons" },
                react_default.a.createElement(Button_default.a, { className: classnames_default()({ [NumberInput_default.a['cmdn-NumberInput-forceFocus']]: focused && !showInvalidState }, 'spectrum-Stepper-stepUp', NumberInput_default.a['cmdn-NumberInput-Arrows']), type: "button", tabIndex: "-1", "aria-controls": inputId, variant: "action", quiet: quiet, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: stepUpDisabled, onClick: this.handleIncrementButtonClick },
                    react_default.a.createElement(ChevronUpSmall_default.a, { size: null, className: "spectrum-Stepper-stepUpIcon" })),
                react_default.a.createElement(Button_default.a, { className: classnames_default()({ [NumberInput_default.a['cmdn-NumberInput-forceFocus']]: focused && !showInvalidState }, 'spectrum-Stepper-stepDown', NumberInput_default.a['cmdn-NumberInput-Arrows']), type: "button", tabIndex: "-1", "aria-controls": inputId, variant: "action", quiet: quiet, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: stepDownDisabled, onClick: this.handleDecrementButtonClick },
                    react_default.a.createElement(ChevronDownSmall_default.a, { size: null, className: "spectrum-Stepper-stepDownIcon" }))))) : (textField);
    }
}
NumberInput_NumberInput.defaultProps = {
    quiet: false,
    invalid: false,
    disabled: false,
    readOnly: false,
    userLocaleDecimal: '.',
    useSimpleInvalidIndicator: false,
    hasArrows: false,
    allowSpecialCharacters: false,
};

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/height-panel/HeightPanel.css
var height_panel_HeightPanel = __webpack_require__("VPZk");
var HeightPanel_default = /*#__PURE__*/__webpack_require__.n(height_panel_HeightPanel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/HostUtils.ts
var HostUtils = __webpack_require__("BwkI");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/unit-number-input/UnitNumberInput.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const NUMBER = '[0-9.]+';
const UNIT = '[a-zA-Z"\'\uff01-\uff5e\u0400-\u04ff.]+';
const buildRegex = (allowed) => new RegExp(`^${allowed}$`);
const REGEX_NUMBER = buildRegex(NUMBER);
const REGEX_NUMBER_UNIT = buildRegex(`${NUMBER}${UNIT}`);
const REGEX_UNIT_NUMBER = buildRegex(`${UNIT}${NUMBER}`);
const REGEX_NUMBER_UNIT_NUMBER = buildRegex(`(${NUMBER})?${UNIT}${NUMBER}`);
const REGEX_NUMBER_UNIT_NUMBER_UNIT = buildRegex(`${NUMBER}${UNIT}${NUMBER}${UNIT}`);
const REGEX_NUMBERS_UNITS = buildRegex(`(${NUMBER}|${UNIT})+`);
/**
 * Given a numeric value and a string representation, it returns the value formatted accordign to the representation.
 *
 * @param value The value to be formatted.
 * @param representation The representation in which the value needs to be formatted.
 * @param unit The identifier of the unit - used to round the value accordingly.
 * @returns The value formatted according to the representation.
 */
function formatValue(value, representation, unit) {
    let output = representation;
    if (!output || !unit) {
        return '';
    }
    let pos = output.indexOf('^2');
    if (pos !== -1) {
        let fraction = value % 1;
        value = Math.floor(value);
        fraction = fraction * 12;
        fraction = Object(MathUtils["f" /* roundDecimal */])(fraction, Number(HostUtils["d" /* RoundingRules */][unit]));
        if (fraction === 12) {
            // This may happen because of rounding
            fraction = 0;
            value = value + 1;
        }
        const fractionOutput = Number(fraction).toString();
        output = output.replace('^2', fractionOutput);
    }
    else {
        value = Object(MathUtils["f" /* roundDecimal */])(value, Number(HostUtils["d" /* RoundingRules */][unit]));
    }
    pos = output.indexOf('^1');
    if (pos !== -1) {
        const numOutput = Number(value).toString();
        output = output.replace('^1', numOutput);
    }
    return output;
}
class UnitNumberInput_UnwrappedUnitNumberInput extends react["Component"] {
    constructor(props) {
        super(props);
        this.applyOperator = this.applyOperator.bind(this);
        this.getNumberExtent = this.getNumberExtent.bind(this);
        this.validateUnit = this.validateUnit.bind(this);
        this.getPossibleUnits = this.getPossibleUnits.bind(this);
        this.precedence = this.precedence.bind(this);
        this.isHigherPrecedent = this.isHigherPrecedent.bind(this);
        this.evaluateExpression = this.evaluateExpression.bind(this);
    }
    /**
     * Applies the operations defined by the operand and operator stacks.
     *
     * @param operandStack The stack of operands.
     * @param operatorStack The stack of operators.
     * @returns Whether the operations ended successfully.
     */
    applyOperator(operandStack, operatorStack) {
        let firstOperand;
        let secondOperand;
        let operator;
        let result;
        let error = false;
        secondOperand = operandStack.pop();
        firstOperand = operandStack.pop();
        if (firstOperand === undefined || secondOperand === undefined) {
            return false;
        }
        else {
            // alert('May need conversion if units are present or convert while processing unit.');
            operator = operatorStack.pop();
            switch (operator) {
                case '+':
                    result = firstOperand.value + secondOperand.value;
                    break;
                case '-':
                    result = firstOperand.value - secondOperand.value;
                    break;
                case '*':
                    if (firstOperand.explicitUnit && secondOperand.explicitUnit) {
                        error = true;
                    }
                    result = firstOperand.value * secondOperand.value;
                    break;
                case '/':
                    if ((firstOperand.explicitUnit && secondOperand.explicitUnit) || secondOperand.value === 0) {
                        error = true;
                    }
                    else {
                        result = firstOperand.value / secondOperand.value;
                    }
                    break;
            }
            if (error === true) {
                return false;
            }
            const explicitUnit = firstOperand.explicitUnit || secondOperand.explicitUnit;
            operandStack.push({ value: result, unit: this.props.unitsValue, explicitUnit });
            return true;
        }
    }
    /**
     * Given a string and an index, it returns the extent of the number at that index.
     * For example '233cm + 56cm' and index 8 (the '5'), it will return 10 (the position
     * of the first letter after the number -> 'c').
     *
     * @param expr The string containing the number.
     * @param initialLocation Index of first digit in the number.
     * @returns The index of the first non-numeric value or undefined if multiple decimals encountered.
     */
    getNumberExtent(expr, initialLocation) {
        let decimalEncountered = false;
        let j = initialLocation;
        while ((expr[j] >= '0' && expr[j] <= '9') || expr[j] === '.') {
            if (expr[j] === '.') {
                if (decimalEncountered === false) {
                    decimalEncountered = true;
                }
                else {
                    return; // Error: multiple decimals found.
                }
            }
            j += 1;
        }
        return j;
    }
    /**
     * Given a string and an index, it returns the extent of the unit starting at that index.
     * For example '233cm + 56centimeters + 2in' and index 10 (the 'c' in 'centimeters), it will return 21
     * (it tries to match the longest name of a unit starting at the given index).
     *
     * @param expr The string containing the unit.
     * @param initialLocation Index where it will start trying to match a unit name.
     * @returns The index of the first character that is not matched in any of the available units.
     */
    getUnitExtent(expr, initialLocation) {
        // create a list of possible units.
        const possibleUnits = this.getPossibleUnits();
        const exprLength = expr.length;
        // match the characters with the possible unit values, till they match.
        let j = initialLocation;
        let shouldBreak;
        do {
            const charIndex = j - initialLocation;
            let index;
            shouldBreak = false;
            for (index = possibleUnits.length - 1; index >= 0; index--) {
                if (possibleUnits[index][charIndex] !== expr[j]) {
                    possibleUnits.splice(index, 1);
                }
            }
            if (possibleUnits.length === 0) {
                shouldBreak = true;
                break;
            }
            j += 1;
        } while (!shouldBreak && j <= exprLength);
        return j;
    }
    /**
     * Given a string it finds the unit which it is a representation of. Each unit can be referred to by
     * several names. This function receives a name and returns the identifier (e.g. 'pixelsUnit') of the
     * represented unit. The currently selected unit has priority.
     *
     * @param input The string that needs to be matched to a unit identifier (e.g. 'inches', or '"', or 'inch'
     * all will be matched to 'inchesUnit').
     * @returns The identifier of the matched unit or undefined if none found.
     */
    validateUnit(input) {
        const unitInfo = this.props.unitInfo;
        // First check for the default unit. This is to bypass an issue with same abbreviation strings for Pica and Pixel in ru_RU.
        let unit;
        let i;
        unit = this.props.unitsValue === UnitsUtils["p" /* UnitId */].FEET_INCHES ? UnitsUtils["p" /* UnitId */].FEET : this.props.unitsValue;
        if (unitInfo[unit]) {
            for (i = 0; i < unitInfo[unit].unitStrings.length; ++i) {
                if (input === unitInfo[unit].unitStrings[i].toLowerCase()) {
                    return unit;
                }
            }
        }
        for (unit in unitInfo) {
            if (unitInfo[unit] && unit !== this.props.unitsValue) {
                for (i = 0; i < unitInfo[unit].unitStrings.length; ++i) {
                    if (input === unitInfo[unit].unitStrings[i].toLowerCase()) {
                        return unit;
                    }
                }
            }
        }
    }
    /**
     * Returns an array with all the possible representations of all the available units (each unit can be referred
     * by several names, e.g. 'inches', or '"', or 'inch').
     *
     * @returns All the possible representations of all the available units.
     */
    getPossibleUnits() {
        const unitInfo = this.props.unitInfo;
        let unit;
        let i;
        const unitsList = [];
        for (unit in unitInfo) {
            if (unitInfo[unit]) {
                for (i = 0; i < unitInfo[unit].unitStrings.length; ++i) {
                    unitsList.push(unitInfo[unit].unitStrings[i].toLowerCase());
                }
            }
        }
        return unitsList;
    }
    /**
     * Returns a map where the keys are representations of simple units (the 'xyz' in '^1 xyz') and
     * the values are the name of the simple unit (e.g. For '^1 cm' the key would be 'cm' and the value
     * 'centimetersUnit').
     *
     * @returns A map such as { cm: 'centimetersUnit', in: 'inchesUnit' } without ^2 in its representation or with
     * ^2 at the end (only one unit mentioned in the representation -> Picas will be included, Feet&inches not).
     *
     * We need this because the representation of units is not static, in Russian the unit representations are
     * different and contain Cyrillic characters. At the moment there is a conflict between Picas and Pixels in Russian,
     * but since this map is used for detecting the parts of a special unit (contains ^1 and ^2 in representation)
     * it is ok that only the first one in the unitInfo list will be included (Picas) as Pixels are not part of special unit.
     */
    getUnitShortToNameMap() {
        const unitInfo = this.props.unitInfo;
        let unit;
        const simpleUnitsMap = {};
        for (unit in unitInfo) {
            if (unitInfo[unit]) {
                const representation = unitInfo[unit].representation.replace(/\s+/g, '');
                if (representation.indexOf('^2') === -1 || representation.endsWith('^2')) {
                    const unitRepresentation = representation.replace('^1', '').replace('^2', '');
                    const parts = representation.split(/\^1|\^2/).filter(x => x);
                    if (!simpleUnitsMap[unitRepresentation] && parts.length === 1) {
                        simpleUnitsMap[unitRepresentation] = unit;
                    }
                }
            }
        }
        return simpleUnitsMap;
    }
    /**
     * Returns an array with an entry for each special unit (unit whose representation contains two parts,
     * (e.g. '^1ft ^2in' or '^1p^2'), containing the identifiers (e.g. 'pixelsUnit') of each part.
     * For example it will return [{ unit1: 'feetsUnit', unit2:'inchesUnit'}, { unit1: 'picasUnit', unit2: undefined }]
     * if the only special units available are feetInchesUnit and picasUnit with the ^1ft^2in and ^1p^2 representations
     * respectively.
     * It is used to check that invalid combinations such as '12ft3cm' or '45p5in' are not allowed.
     *
     * @returns An array with entries of format { unit1: string, unit2: string } for each unit with ^2 in
     * its representation.
     */
    getSpecialUnitsList() {
        const unitShortToMeasurement = this.getUnitShortToNameMap();
        const unitInfo = this.props.unitInfo;
        let unit;
        const specialUnitsList = [];
        for (unit in unitInfo) {
            if (unitInfo[unit]) {
                const representation = unitInfo[unit].representation.replace(/\s+/g, '');
                if (representation.indexOf('^2') !== -1) {
                    const units = representation.split(/\^1|\^2/).filter(x => x);
                    const unit1 = unitShortToMeasurement[units[0]];
                    const unit2 = unitShortToMeasurement[units[1]];
                    specialUnitsList.push({ unit1, unit2 });
                }
            }
        }
        return specialUnitsList;
    }
    /**
     * Returns the precedence of the given operator as an integer: 2 for '*' or '/', 1 otherwise.
     *
     * @param operator The operator whose precedence needs to be obtained.
     * @returns A number representing the precedence of the operator, 2 for '*' or '/', 1 otherwise.
     */
    precedence(operator) {
        if (operator === '*' || operator === '/') {
            return 2;
        }
        return 1;
    }
    /**
     * Checkes whether the first operator has greater precedence than the second one.
     *
     * @param operator1 The first operator.
     * @param operator2 The second operator.
     * @returns Whether the first operator has greater precedence than the second one.
     */
    isHigherPrecedent(operator1, operator2) {
        let precedence1;
        let precedence2;
        precedence1 = this.precedence(operator1);
        precedence2 = this.precedence(operator2);
        return precedence1 > precedence2;
    }
    /**
     * Returns the number starting at the given index, and the position of the next character.
     *
     * @param expr The string containing the number.
     * @param index Index of first digit in the number.
     * @returns An object of the following format: { value: number, nextIndex: number }.
     */
    getNumberFromIndex(expr, index) {
        const j = this.getNumberExtent(expr, index);
        if (j === undefined) {
            return undefined;
        }
        const value = Number(expr.substring(index, j));
        return { value, nextIndex: j };
    }
    /**
     * Returns the unit starting at the given index, and the position of the next character, or
     * undefined if no unit matched from the starting index.
     *
     * @param expr The string containing the unit.
     * @param index Index where it will start trying to match a unit name.
     * @returns An object of the following format: { unit: string, nextIndex: number }.
     */
    getUnitFromIndex(expr, index) {
        const k = this.getUnitExtent(expr, index);
        const temp = expr.substring(index, k);
        const unit = this.validateUnit(temp);
        if (unit === undefined) {
            return undefined;
        }
        return { unit, nextIndex: k };
    }
    /**
     * Receives a string representing an operand with numbers and units and extracts a single value and unit.
     *
     * @param expr A string representing an operand, with numbers and units.
     * @returns A result of the following format: { value: number, unit: string, explicitUnit: boolean }
     * where explicitBoolean flag marks if the user introduced an explicit unit for the operand, or it was defaulted
     * to the current unit.
     */
    evaluateOperand(expr) {
        let numExt;
        let unitExt;
        let value;
        let unit;
        const specialUnitsList = this.getSpecialUnitsList();
        if (expr.match(REGEX_NUMBER)) {
            // number without unit
            numExt = this.getNumberFromIndex(expr, 0);
            if (numExt === undefined) {
                return undefined;
            }
            value = numExt.value;
            unit = this.props.unitsValue;
            return { value, unit: this.props.unitsValue, explicitUnit: false };
        }
        if (expr.match(REGEX_NUMBER_UNIT)) {
            // number with unit
            numExt = this.getNumberFromIndex(expr, 0);
            if (numExt === undefined) {
                return undefined;
            }
            value = numExt.value;
            unitExt = this.getUnitFromIndex(expr, numExt.nextIndex);
            if (unitExt === undefined || unitExt.nextIndex !== expr.length + 1) {
                return undefined;
            }
            unit = unitExt.unit;
            return { value, unit, explicitUnit: true };
        }
        if (expr.match(REGEX_NUMBER_UNIT_NUMBER)) {
            // ^1[unit]^2
            if (expr.match(REGEX_UNIT_NUMBER)) {
                expr = `0${expr}`;
            }
            numExt = this.getNumberFromIndex(expr, 0);
            if (numExt === undefined) {
                return undefined;
            }
            value = numExt.value;
            unitExt = this.getUnitFromIndex(expr, numExt.nextIndex);
            if (unitExt === undefined) {
                return undefined;
            }
            unit = unitExt.unit;
            let specialUnit;
            for (let m = 0; m < specialUnitsList.length; m++) {
                if (specialUnitsList[m].unit1 === unit && !specialUnitsList[m].unit2) {
                    specialUnit = specialUnitsList[m];
                }
            }
            if (!specialUnit) {
                return undefined;
            }
            numExt = this.getNumberFromIndex(expr, unitExt.nextIndex);
            if (numExt === undefined) {
                return undefined;
            }
            value = value + numExt.value / 12;
            return { value, unit, explicitUnit: true };
        }
        if (expr.match(REGEX_NUMBER_UNIT_NUMBER_UNIT)) {
            // ^1[unit1]^2[unit2]
            let unit1;
            let unit2;
            numExt = this.getNumberFromIndex(expr, 0);
            if (numExt === undefined) {
                return undefined;
            }
            value = numExt.value;
            unitExt = this.getUnitFromIndex(expr, numExt.nextIndex);
            if (unitExt === undefined) {
                return undefined;
            }
            unit1 = unitExt.unit;
            numExt = this.getNumberFromIndex(expr, unitExt.nextIndex);
            if (numExt === undefined) {
                return undefined;
            }
            value = value + numExt.value / 12;
            unitExt = this.getUnitFromIndex(expr, numExt.nextIndex);
            if (unitExt === undefined || unitExt.nextIndex !== expr.length + 1) {
                return undefined;
            }
            unit2 = unitExt.unit;
            let specialUnit;
            for (let n = 0; n < specialUnitsList.length; n++) {
                if (specialUnitsList[n].unit1 === unit1 && specialUnitsList[n].unit2 === unit2) {
                    specialUnit = specialUnitsList[n];
                }
            }
            if (!specialUnit) {
                return undefined;
            }
            return { value, unit: unit1, explicitUnit: true };
        }
    }
    /**
     * Receives a string representing an expression with numbers, units and operands, and returns the result
     * of its evaluation, converted to the currently selected unit, or undefined if it is not valid.
     *
     * @param raw The string representing an expression with numbers, units and operators.
     * @returns The result of the expression evaluation in the currently selected unit, or undefined
     * if the expression string is not a valid expression.
     */
    evaluateExpression(raw) {
        let expr = Object(JsUtils["k" /* replaceSpecialCharacters */])(raw);
        const operandStack = [];
        const operatorStack = [];
        let i = 0;
        let operatorStackSize;
        if (expr[0] === '+' || expr[0] <= '-') {
            expr = `0${expr}`;
        }
        const expressionParts = expr.split(/(\+|-|\*|\/)/).filter(x => x);
        for (i = 0; i < expressionParts.length; i++) {
            if (i % 2 === 0) {
                // operand
                if (!expressionParts[i].match(REGEX_NUMBERS_UNITS)) {
                    return undefined;
                }
                const operand = this.evaluateOperand(expressionParts[i]);
                if (!operand) {
                    return undefined;
                }
                if (this.props.unitsValue && operand.unit !== this.props.unitsValue) {
                    operand.value = Object(UnitsUtils["r" /* convert */])(operand.value, UnitsUtils["q" /* UnitIdToMeasurement */][operand.unit], UnitsUtils["q" /* UnitIdToMeasurement */][this.props.unitsValue], this.props.unitConvertConfig);
                    operand.unit = this.props.unitsValue;
                }
                operandStack.push(operand);
            }
            else {
                // operator
                operatorStackSize = operatorStack.length;
                while (operatorStackSize !== 0 &&
                    !this.isHigherPrecedent(expressionParts[i], operatorStack[operatorStackSize - 1])) {
                    if (this.applyOperator(operandStack, operatorStack) === false) {
                        return undefined;
                    }
                    operatorStackSize -= 1;
                }
                operatorStack.push(expressionParts[i]);
            }
        }
        // Now consume the pending operators
        operatorStackSize = operatorStack.length;
        while (operatorStackSize !== 0) {
            if (this.applyOperator(operandStack, operatorStack) === false) {
                return undefined;
            }
            operatorStackSize -= 1;
        }
        if (operandStack.length === 1) {
            return operandStack[0].value;
        }
    }
    render() {
        const { unitInfo, unitsValue } = this.props;
        const unitRepresentation = unitInfo && unitInfo[unitsValue] && unitInfo[unitsValue].representation;
        const { forwardedRef, ...otherProps } = this.props;
        return (react_default.a.createElement(NumberInput_NumberInput, Object.assign({ decimalsUsedForSnaping: Number(HostUtils["d" /* RoundingRules */][unitsValue]) }, otherProps, { ref: forwardedRef, needsSnapToStep: unitsValue !== UnitsUtils["p" /* UnitId */].YARDS, valueFormatFn: value => formatValue(value, unitRepresentation, unitsValue), evaluateExpressionFn: this.evaluateExpression, validationRegex: HostUtils["c" /* NUMBER_LETTERS_REGEX */] })));
    }
}
const UnitNumberInput = react_default.a.forwardRef((props, ref) => (react_default.a.createElement(UnitNumberInput_UnwrappedUnitNumberInput, Object.assign({}, props, { forwardedRef: ref }))));
/* harmony default export */ var unit_number_input_UnitNumberInput = (UnitNumberInput);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/height-panel/HeightPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







/**
 * UI component for capturing height values.
 */
class HeightPanel_HeightPanel extends react["Component"] {
    constructor(props) {
        super(props);
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.numberInput = react_default.a.createRef();
        this.onScrubbyValue = this.onScrubbyValue.bind(this);
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValue(direction, fastModifier, slowModifier) {
        const numberInput = this.numberInput.current;
        if (numberInput) {
            numberInput.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    render() {
        const { id, value, min, max, step, fastStepMultiplier, slowStepMultiplier, userLocaleDecimal, defaultValue, onChange, wideNumberInputs, unitsValue, unitInfo, unitConvertConfig, hasArrows, className, analytics, } = this.props;
        const widePanelClass = { [HeightPanel_default.a['cmdn-HeightPanel--wide']]: wideNumberInputs };
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_height" }), onScrubbyValue: this.onScrubbyValue, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('height'), className: classnames_default()([HeightPanel_default.a['cmdn-HeightPanel'], widePanelClass, className]) },
            typeof unitInfo !== 'undefined' && typeof unitsValue !== 'undefined' && (react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id, className: HeightPanel_default.a['cmdn-HeightPanel-field'], ref: this.numberInput, value: value, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: hasArrows, logAnalytics: () => analytics.logPresetDetailsInteraction('height') })),
            (typeof unitInfo === 'undefined' || typeof unitsValue === 'undefined') && (react_default.a.createElement(NumberInput_NumberInput, { id: id, className: HeightPanel_default.a['cmdn-HeightPanel-field'], ref: this.numberInput, value: value, min: min, max: max, step: step, hasArrows: hasArrows, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, logAnalytics: () => analytics.logPresetDetailsInteraction('height') }))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/conditional-wrapper/ConditionalWrapper.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

class ConditionalWrapper_ConditionalWrapper extends react["Component"] {
    render() {
        const { condition, onTrue, onFalse, children } = this.props;
        return condition ? onTrue(children) : onFalse ? onFalse(children) : children;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/dimensions-block/DimensionsBlock.css
var DimensionsBlock = __webpack_require__("BqDQ");
var DimensionsBlock_default = /*#__PURE__*/__webpack_require__.n(DimensionsBlock);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/unit-panel/UnitPanel.css
var unit_panel_UnitPanel = __webpack_require__("g8b5");
var UnitPanel_default = /*#__PURE__*/__webpack_require__.n(unit_panel_UnitPanel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/height-row-panel/HeightRowPanel.css
var height_row_panel_HeightRowPanel = __webpack_require__("6Y0M");
var HeightRowPanel_default = /*#__PURE__*/__webpack_require__.n(height_row_panel_HeightRowPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/dimensions-block/DimensionsWidthHeight.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/













class DimensionsWidthHeight_DimensionsWidthHeight extends react["Component"] {
    constructor(props) {
        super(props);
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.numberInput = react_default.a.createRef();
        this.onScrubbyValue = this.onScrubbyValue.bind(this);
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValue(direction, fastModifier, slowModifier) {
        const numberInput = this.numberInput.current;
        if (numberInput) {
            numberInput.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    get dimensionComponent() {
        const { widthInput, analytics } = this.props;
        const { id, value, min, max, step, fastStepMultiplier, slowStepMultiplier, userLocaleDecimal, defaultValue, unitsValue, onChange, unitInfo, hasArrows, wideNumberInputs, unitConvertConfig, } = widthInput;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            unitInfo !== undefined && unitsValue !== undefined && (react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id, ref: this.numberInput, className: UnitPanel_default.a['cmdn-UnitPanel-field'], value: value, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, hasArrows: hasArrows, unitConvertConfig: unitConvertConfig, logAnalytics: () => analytics.logPresetDetailsInteraction('width') })),
            (unitInfo === undefined || unitsValue === undefined) && (react_default.a.createElement(NumberInput_NumberInput, { id: id, ref: this.numberInput, className: UnitPanel_default.a['cmdn-UnitPanel-field'], value: value, min: min, hasArrows: hasArrows, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, logAnalytics: () => analytics.logPresetDetailsInteraction('width') }))));
    }
    render() {
        const { widthInput, heightInput, analytics } = this.props;
        return (react_default.a.createElement(FlexContainer_FlexContainer, { className: DimensionsBlock_default.a['cmdn-DimensionsBlock-WidthHeight'] },
            react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: widthInput.unitsTitle, onTrue: children => react_default.a.createElement(Panel_Panel, null, children), onFalse: children => (react_default.a.createElement(Panel_Panel, { title: widthInput.title, onScrubbyValue: this.onScrubbyValue, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('width') }, children)) },
                react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()([
                        UnitPanel_default.a['cmdn-UnitPanel-value'],
                        {
                            [UnitPanel_default.a['cmdn-UnitPanel-value--wide']]: widthInput.wideNumberInputs,
                        },
                        widthInput.className,
                    ]) },
                    react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: widthInput.unitsTitle, onTrue: children => (react_default.a.createElement(Panel_Panel, { title: widthInput.title, className: UnitPanel_default.a['cmdn-UnitPanel-options'], onScrubbyValue: this.onScrubbyValue, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('width') }, children)) }, this.dimensionComponent))),
            react_default.a.createElement(Panel_Panel, { className: HeightRowPanel_default.a['cmdn-HeightRowPanel'] },
                react_default.a.createElement(FlexContainer_FlexContainer, null,
                    react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-HeightItem'] },
                        react_default.a.createElement(HeightPanel_HeightPanel, { id: heightInput.id, value: heightInput.value, min: heightInput.min, max: heightInput.max, className: heightInput.className, step: heightInput.step, fastStepMultiplier: heightInput.fastStepMultiplier, slowStepMultiplier: heightInput.slowStepMultiplier, defaultValue: heightInput.defaultValue, unitsValue: heightInput.unitsValue, hasArrows: heightInput.hasArrows, unitInfo: heightInput.unitInfo, unitConvertConfig: heightInput.unitConvertConfig, onChange: heightInput.onChange, wideNumberInputs: heightInput.wideNumberInputs, userLocaleDecimal: heightInput.userLocaleDecimal, analytics: analytics }))))));
    }
}
/* harmony default export */ var dimensions_block_DimensionsWidthHeight = (Object(index_es["g" /* injectIntl */])(DimensionsWidthHeight_DimensionsWidthHeight));

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Portrait/index.js
var Portrait = __webpack_require__("Z7ej");
var Portrait_default = /*#__PURE__*/__webpack_require__.n(Portrait);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Landscape/index.js
var Landscape = __webpack_require__("FocD");
var Landscape_default = /*#__PURE__*/__webpack_require__.n(Landscape);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DocumentTemplateModel.ts
var DocumentTemplateModel = __webpack_require__("CQbc");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/radio-buttons-panel/RadioButtonsPanel.css
var radio_buttons_panel_RadioButtonsPanel = __webpack_require__("x04s");
var RadioButtonsPanel_default = /*#__PURE__*/__webpack_require__.n(radio_buttons_panel_RadioButtonsPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/radio-buttons-panel/RadioButtonsPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class RadioButtonsPanel_RadioButtonsPanel extends react["Component"] {
    constructor() {
        super(...arguments);
        this.handleClick = (currentValue, newValue) => {
            const { onChange, logAnalytics } = this.props;
            onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
            if (currentValue !== newValue) {
                logAnalytics === null || logAnalytics === void 0 ? void 0 : logAnalytics();
            }
        };
    }
    render() {
        const { title, value, defaultValue, options, style, className } = this.props;
        const currentValue = value || defaultValue;
        return (react_default.a.createElement(Panel_Panel, { title: title, style: style, className: className },
            react_default.a.createElement("div", { className: RadioButtonsPanel_default.a['cmdn-RadioButtonsPanel-buttonsContainer'] }, options.map(option => {
                const isSelected = currentValue === option.value;
                const radioButton = (react_default.a.createElement(Button_default.a, { key: option.id, id: option.id, className: classnames_default()(RadioButtonsPanel_default.a['cmdn-RadioButtonsPanel-button'], option.tooltip && isSelected ? 'btn-selected' : ''), variant: "tool", value: option.value, "aria-label": option.value, selected: !option.tooltip && isSelected, onClick: () => this.handleClick(currentValue, option.value), icon: option.icon }));
                return option.tooltip ? (react_default.a.createElement(OverlayTrigger_default.a, { placement: "bottom", trigger: "hover", delayShow: 800 },
                    radioButton,
                    react_default.a.createElement(Tooltip_default.a, { variant: "inspect" }, option.tooltip))) : (radioButton);
            }))));
    }
}
/* harmony default export */ var components_radio_buttons_panel_RadioButtonsPanel = (Object(index_es["g" /* injectIntl */])(RadioButtonsPanel_RadioButtonsPanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/orientation-panel/OrientationPanel.css
var orientation_panel_OrientationPanel = __webpack_require__("S9f8");
var OrientationPanel_default = /*#__PURE__*/__webpack_require__.n(orientation_panel_OrientationPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/orientation-panel/OrientationPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









class OrientationPanel_OrientationPanel extends react["Component"] {
    render() {
        const { portraitTooltip, landscapeTooltip, analytics, ...rest } = this.props;
        const options = [
            {
                id: CMDN_SIDEBAR_PORTRAIT_ORIENTATION_PANEL,
                value: DocumentTemplateModel["c" /* Orientation */].PORTRAIT,
                icon: (react_default.a.createElement(Portrait_default.a, { className: portraitTooltip && OrientationPanel_default.a['cmdn-OrientationPanel-portraitIcon-withTooltip'], size: "L" })),
                tooltip: portraitTooltip,
            },
            {
                id: CMDN_SIDEBAR_LANDSCAPE_ORIENTATION_PANEL,
                value: DocumentTemplateModel["c" /* Orientation */].LANDSCAPE,
                icon: (react_default.a.createElement(Landscape_default.a, { className: classnames_default()(OrientationPanel_default.a['cmdn-OrientationPanel-landscapeIcon'], landscapeTooltip && OrientationPanel_default.a['cmdn-OrientationPanel-landscapeIcon-withTooltip']), size: "L" })),
                tooltip: landscapeTooltip,
            },
        ];
        return (react_default.a.createElement(components_radio_buttons_panel_RadioButtonsPanel, Object.assign({ title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_orientation" }), options: options, logAnalytics: () => analytics.logPresetDetailsInteraction('orientation') }, rest)));
    }
}
/* harmony default export */ var components_orientation_panel_OrientationPanel = (Object(index_es["g" /* injectIntl */])(OrientationPanel_OrientationPanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/artboards-number-panel/ArtboardsNumberPanel.css
var artboards_number_panel_ArtboardsNumberPanel = __webpack_require__("jv0R");
var ArtboardsNumberPanel_default = /*#__PURE__*/__webpack_require__.n(artboards_number_panel_ArtboardsNumberPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/artboards-number-panel/ArtboardsNumberPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






class ArtboardsNumberPanel_ArtboardsNumberPanel extends react["Component"] {
    /**
     * UXP currently deviates from the web api and sends only the event as the parameter. React spectrum checkbox sends
     * two events the boolean checked value and the event.
     *
     * @param value
     */
    onChange(value) {
        const { onChange } = this.props;
        if (!onChange || typeof onChange !== 'function') {
            return;
        }
        onChange(value);
    }
    render() {
        const { id, value, min, max, wideNumberInputs, fastStepMultiplier, analytics } = this.props;
        return (react_default.a.createElement(Panel_Panel, { className: classnames_default()(ArtboardsNumberPanel_default.a['cmdn-ArtboardsNumberPanel']), title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_artboards" }), titleClassName: ArtboardsNumberPanel_default.a['cmdn-ArtboardsNumberPanel-title'] },
            react_default.a.createElement(NumberInput_NumberInput, { id: id, className: ArtboardsNumberPanel_default.a['cmdn-ArtboardsNumberPanel-field'], value: value, min: min, useSimpleInvalidIndicator: true, max: max, step: 1, fastStepMultiplier: fastStepMultiplier, needsSnapToStep: true, wide: wideNumberInputs, onChange: value => this.onChange(value), logAnalytics: () => analytics.logPresetDetailsInteraction('artboards'), hasArrows: true })));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/binding-panel/BindingIcons.css
var BindingIcons = __webpack_require__("/kzR");
var BindingIcons_default = /*#__PURE__*/__webpack_require__.n(BindingIcons);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/binding-panel/BindingIcons.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const classNamesLTR = classnames_default()('spectrum-Icon spectrum-Icon--sizeL', BindingIcons_default.a['cmdn-BindingIcon-leftToRight-withTooltip']);
const classNamesRTL = classnames_default()('spectrum-Icon spectrum-Icon--sizeL', BindingIcons_default.a['cmdn-BindingIcon-rightToLeft-withTooltip']);
const LeftToRight = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "-50 -200 1200 1200", focusable: "false", "aria-hidden": "true", role: "img", className: classNamesLTR },
    react_default.a.createElement("g", { transform: "translate(0,850) scale(1,-1)" },
        react_default.a.createElement("path", { d: "M454.26 638.654l-4.028-10.761-71.144-175.864 132.912-29.547-55.034 209.439-2.706 6.734zM930.877 963.54h-773.311c-17.795 0-32.221-14.426-32.221-32.221v-843.554c0-0.002 0-0.005 0-0.007 0-15.515 10.964-28.468 25.567-31.533l580.193-116.034c1.937-0.413 4.163-0.651 6.444-0.651 17.795 0 32.221 14.426 32.221 32.221 0 0.002 0 0.005 0 0.007v89.575h161.106c17.795 0 32.221 14.426 32.221 32.221v837.754c0 17.795-14.426 32.221-32.221 32.221zM642.271 183.786c-3.354-3.574-8.107-5.8-13.38-5.8-0.008 0-0.017 0-0.025 0-0.019 0-0.043 0-0.067 0-1.471 0-2.904 0.164-4.282 0.476l-33.22 7.45c-8.499 2.374-15.017 9.042-17.138 17.457l-46.047 153.348-171.836 36.249-50.717-125.051c-2.693-7.269-9.566-12.355-17.628-12.355-1.473 0-2.906 0.17-4.281 0.49l-29.646 5.614c-6.793 1.748-12.27 6.339-15.18 12.396-1.967 3.686-3.086 7.901-3.086 12.377 0 3.592 0.722 7.016 2.028 10.135l183.308 426.501c3.052 8.14 10.767 13.83 19.811 13.83 1.705 0 3.362-0.202 4.949-0.583l37.877-8.541c9.867-2.824 17.432-10.562 19.965-20.327l143.653-500.306c0.685-2.148 1.081-4.617 1.081-7.18 0-6.22-2.328-11.896-6.161-16.206zM898.655 125.788h-128.885v697.075c0 0.002 0 0.005 0 0.007 0 15.515-10.964 28.468-25.567 31.533l-338.308 44.696h492.76v-773.311z" }))));
const RightToLeft = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "-50 -200 1200 1200", focusable: "false", "aria-hidden": "true", role: "img", className: classNamesRTL },
    react_default.a.createElement("g", { transform: "translate(0,850) scale(1,-1)" },
        react_default.a.createElement("path", { d: "M569.74 638.654l4.028-10.761 71.144-175.864-132.913-29.547 55.034 209.439 2.706 6.734zM60.901 931.321v-837.756c0-17.795 14.426-32.221 32.221-32.221h161.107v-89.576c0-0.002 0-0.005 0-0.007 0-17.795 14.426-32.221 32.221-32.221 2.281 0 4.507 0.237 6.654 0.688l579.775 115.96c14.812 3.103 25.778 16.056 25.778 31.571 0 0.002 0 0.005 0 0.007v843.555c0 17.795-14.426 32.221-32.221 32.221h-773.313c-17.795 0-32.221-14.426-32.221-32.221zM376.67 207.146l143.642 500.14c2.577 9.964 10.143 17.701 19.808 20.475l38.223 8.62c1.443 0.352 3.102 0.554 4.805 0.554 9.044 0 16.76-5.689 19.764-13.684l183.42-426.821c1.242-2.945 1.963-6.37 1.963-9.962 0-4.477-1.12-8.691-3.095-12.379-2.901-6.055-8.378-10.645-15.012-12.359l-29.933-5.674c-1.248-0.296-2.681-0.466-4.154-0.466-8.062 0-14.935 5.087-17.585 12.226l-50.759 125.18-171.869-36.281-46.012-153.277c-2.157-8.583-8.675-15.251-17.003-17.584l-33.52-7.516c-1.248-0.287-2.681-0.451-4.153-0.451-0.024 0-0.049 0-0.072 0-0.003 0-0.011 0-0.020 0-5.273 0-10.026 2.226-13.371 5.79-3.833 4.298-6.17 9.983-6.17 16.216 0 2.588 0.403 5.084 1.151 7.424zM125.344 899.099h492.761l-338.099-44.627c-14.812-3.103-25.778-16.056-25.778-31.571 0-0.002 0-0.005 0-0.007v-697.109h-128.886v773.313z" }))));
const RightToLeftJapan = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "-50 -200 1200 1200", focusable: "false", "aria-hidden": "true", role: "img", className: classNamesLTR },
    react_default.a.createElement("g", { transform: "translate(70,850) scale(1,-1)" },
        react_default.a.createElement("path", { d: "M866.435 963.541h-773.312c-17.795 0-32.221-14.426-32.221-32.221v-837.755c0-17.795 14.426-32.221 32.221-32.221h161.106v-89.576c0-0.002 0-0.005 0-0.007 0-17.795 14.426-32.221 32.221-32.221 2.281 0 4.507 0.237 6.654 0.688l579.774 115.959c14.812 3.103 25.778 16.056 25.778 31.571 0 0.002 0 0.005 0 0.007v843.554c0 17.795-14.426 32.221-32.221 32.221zM280.006 854.472c-14.812-3.103-25.778-16.056-25.778-31.571 0-0.002 0-0.005 0-0.007v-697.108h-128.886v773.312h492.761zM801.992 308.385l-161.106 139.615v-128.886l64.443 11.503v-64.443l-64.443-11.503v-64.443l-64.443-9.215v73.658l-64.443-11.503v64.443l64.443 11.503v128.886l-179.505-165.715-18.818 75.172 198.323 182.695v19.526l-193.328-47.237v64.443l193.328 49.492v79.393l-52.939-5.768 40.051 70.21h77.332v-132.333l156.499 11.503-1.16-59.835-155.339-17.27v-23.103l179.891-170.999z" }))));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/binding-panel/BindingPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class BindingPanel_BindingPanel extends react["Component"] {
    render() {
        const { leftToRightTooltip, rightToLeftTooltip, isJapaneseEnabled, ...otherProps } = this.props;
        const rtlIcon = isJapaneseEnabled ? RightToLeftJapan : RightToLeft;
        const options = [
            {
                id: CMDN_SIDEBAR_BINDING_PANEL_LEFT_TO_RIGHT,
                value: '0',
                icon: LeftToRight,
                tooltip: leftToRightTooltip,
            },
            {
                id: CMDN_SIDEBAR_BINDING_PANEL_RIGHT_TO_LEFT,
                value: '1',
                icon: rtlIcon,
                tooltip: rightToLeftTooltip,
            },
        ];
        return react_default.a.createElement(components_radio_buttons_panel_RadioButtonsPanel, Object.assign({ options: options }, otherProps));
    }
}
/* harmony default export */ var binding_panel_BindingPanel = (Object(index_es["g" /* injectIntl */])(BindingPanel_BindingPanel));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/dimensions-block/DimensionsOptionsOrientationArtboards.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
















class DimensionsOptionsOrientationArtboards_DimensionsOptionsOrientationArtboards extends react["Component"] {
    get unitsComponent() {
        const { intl, optionsInput, analytics } = this.props;
        const { id, defaultUnitsValue, onUnitChange, units, unitsValue } = optionsInput;
        const options = units === null || units === void 0 ? void 0 : units.map(unit => ({
            label: intl.formatMessage({ id: `newdoc_details_${unit}` }),
            value: unit,
        }));
        return (react_default.a.createElement(Select_default.a, { id: id + CMDN_SIDEBAR_UNITS_VALUE, value: unitsValue || defaultUnitsValue, defaultValue: defaultUnitsValue, options: options, onOpen: () => analytics.logPresetDetailsInteraction('dimensions-unit'), onChange: onUnitChange, placeholder: intl.formatMessage({ id: 'select_placeholder' }) }));
    }
    render() {
        const { optionsInput, orientationInputs, artboard, analytics } = this.props;
        const { unitsTitle } = optionsInput;
        const { isBindingEnabled, bindingTitle, binding, orientation, defaultOrientation, onOrientationChange, orientationPortraitTooltip, orientationLandscapeTooltip, defaultBinding, onBindingChange, isJapaneseEnabled, bindLeftToRight, bindRightToLeft, } = orientationInputs;
        const { artboardsCount, minArtboards, maxArtboards, stepArtboards, shiftMultiplierArtboards, defaultArtboardsCount, wideNumberInputs, onArtboardsChange, hasArtboards, defaultHasArtboards, } = artboard;
        const checkboxStyle = {
            marginBottom: '7px',
            marginTop: '6px',
        };
        return (react_default.a.createElement(FlexContainer_FlexContainer, { className: classnames_default()(DimensionsBlock_default.a['cmdn-DimensionsBlock-OptionsOrientationArtboards']) },
            react_default.a.createElement(components_flex_FlexItem, { className: UnitPanel_default.a['cmdn-UnitPanel-options'] },
                react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: unitsTitle, onTrue: children => (react_default.a.createElement(Panel_Panel, { title: unitsTitle, className: UnitPanel_default.a['cmdn-UnitPanel-options'] }, children)) }, this.unitsComponent)),
            react_default.a.createElement(FlexContainer_FlexContainer, { className: classnames_default()(HeightRowPanel_default.a['cmdn-HeightRowPanel'], DimensionsBlock_default.a['cmdn-DimensionsBlock-OrientationArtboards']) },
                !isBindingEnabled && (react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem'] },
                    react_default.a.createElement(components_orientation_panel_OrientationPanel, { value: orientation, defaultValue: defaultOrientation, onChange: onOrientationChange, portraitTooltip: orientationPortraitTooltip, landscapeTooltip: orientationLandscapeTooltip, className: DimensionsBlock_default.a['cmdn-DimensionsBlock-OptionsOrientationArtboards--Panel'], analytics: analytics }))),
                react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(HeightRowPanel_default.a['cmdn-ArtboardsItem'], DimensionsBlock_default.a['cmdn-DimensionsBlock-OptionsOrientationArtboards--ArtboardsItem']) },
                    artboardsCount !== undefined && (react_default.a.createElement(ArtboardsNumberPanel_ArtboardsNumberPanel, { id: CMDN_SIDEBAR_ARTBOARDS_NUMBER_PANEL, value: artboardsCount, min: minArtboards, max: maxArtboards, step: stepArtboards, fastStepMultiplier: shiftMultiplierArtboards, defaultValue: defaultArtboardsCount, wideNumberInputs: wideNumberInputs, onChange: onArtboardsChange, analytics: analytics })),
                    hasArtboards !== undefined && (react_default.a.createElement(CheckboxPanel_CheckboxPanel, { id: CMDN_SIDEBAR_ARTBOARDS_CHECKBOX_PANEL, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_artboards" }), value: hasArtboards, defaultValue: defaultHasArtboards, onChange: onArtboardsChange, className: DimensionsBlock_default.a['cmdn-DimensionsBlock-OptionsOrientationArtboards--Panel'], style: checkboxStyle })))),
            isBindingEnabled && (react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem--withBinding'] },
                    react_default.a.createElement(components_orientation_panel_OrientationPanel, { value: orientation, defaultValue: defaultOrientation, onChange: onOrientationChange, portraitTooltip: orientationPortraitTooltip, landscapeTooltip: orientationLandscapeTooltip, analytics: analytics })),
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem'] },
                    react_default.a.createElement(binding_panel_BindingPanel, { title: bindingTitle, value: binding, defaultValue: defaultBinding, onChange: onBindingChange, isJapaneseEnabled: isJapaneseEnabled, leftToRightTooltip: bindLeftToRight, rightToLeftTooltip: bindRightToLeft }))))));
    }
}
/* harmony default export */ var dimensions_block_DimensionsOptionsOrientationArtboards = (Object(index_es["g" /* injectIntl */])(DimensionsOptionsOrientationArtboards_DimensionsOptionsOrientationArtboards));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/pixel-aspect-ratio-panel/PixelAspectRatioPanel.css
var pixel_aspect_ratio_panel_PixelAspectRatioPanel = __webpack_require__("Ar3P");
var PixelAspectRatioPanel_default = /*#__PURE__*/__webpack_require__.n(pixel_aspect_ratio_panel_PixelAspectRatioPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/pixel-aspect-ratio-panel/PixelAspectRatioPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






class PixelAspectRatioPanel_PixelAspectRatioPanel extends react["Component"] {
    render() {
        const { values, value, defaultValue, onChange, intl, analytics } = this.props;
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_pixelScale" }) },
            react_default.a.createElement(Select_default.a, { id: CMDN_SIDEBAR_PIXEL_SCALE, value: value, defaultValue: defaultValue, options: values, onOpen: () => analytics.logPresetDetailsInteraction('pixel-aspect-ratio'), onChange: onChange, className: PixelAspectRatioPanel_default.a['pixelAspectRatioSelect'], placeholder: intl.formatMessage({ id: 'select_placeholder' }) })));
    }
}
/* harmony default export */ var components_pixel_aspect_ratio_panel_PixelAspectRatioPanel = (Object(index_es["g" /* injectIntl */])(PixelAspectRatioPanel_PixelAspectRatioPanel));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/unit-panel/UnitPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/












class UnitPanel_UnitPanel extends react["Component"] {
    constructor(props) {
        super(props);
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.numberInput = react_default.a.createRef();
        this.onScrubbyValue = this.onScrubbyValue.bind(this);
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValue(direction, fastModifier, slowModifier) {
        const numberInput = this.numberInput.current;
        if (numberInput) {
            numberInput.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    get unitsComponent() {
        const { logUnitsSelectAnalytics } = this.props;
        return (react_default.a.createElement(Select_default.a, { id: (this.props.dimensionsId || this.props.id) + CMDN_SIDEBAR_UNITS_VALUE, value: this.props.unitsValue || this.props.defaultUnitsValue, defaultValue: this.props.defaultUnitsValue, options: this.props.options, onOpen: logUnitsSelectAnalytics, onChange: this.props.onUnitChange, placeholder: this.props.intl.formatMessage({ id: 'select_placeholder' }) }));
    }
    get dimensionComponent() {
        const { id, defaultValue, max, min, step, fastStepMultiplier, slowStepMultiplier, onChange, unitsValue, unitInfo, unitConvertConfig, userLocaleDecimal, value, wideNumberInputs, hasArrows, logNumberInputAnalytics, } = this.props;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            typeof unitInfo !== 'undefined' && typeof unitsValue !== 'undefined' && (react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id, ref: this.numberInput, className: UnitPanel_default.a['cmdn-UnitPanel-field'], value: value, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, hasArrows: hasArrows, unitConvertConfig: unitConvertConfig, logAnalytics: logNumberInputAnalytics })),
            (typeof unitInfo === 'undefined' || typeof unitsValue === 'undefined') && (react_default.a.createElement(NumberInput_NumberInput, { id: id, ref: this.numberInput, className: UnitPanel_default.a['cmdn-UnitPanel-field'], value: value, min: min, hasArrows: hasArrows, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultValue, wide: wideNumberInputs, onChange: onChange, useSimpleInvalidIndicator: true, logAnalytics: logNumberInputAnalytics }))));
    }
    render() {
        const { title, unitsTitle, wideNumberInputs, dimensionClassName, logNumberInputAnalytics } = this.props;
        return (react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: unitsTitle, onTrue: children => react_default.a.createElement(Panel_Panel, null, children), onFalse: children => (react_default.a.createElement(Panel_Panel, { title: title, onScrubbyValue: this.onScrubbyValue, logScrubbyValueAnalytics: logNumberInputAnalytics }, children)) },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()([
                        UnitPanel_default.a['cmdn-UnitPanel-value'],
                        {
                            [UnitPanel_default.a['cmdn-UnitPanel-value--wide']]: wideNumberInputs,
                        },
                        dimensionClassName,
                    ]) },
                    react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: unitsTitle, onTrue: children => (react_default.a.createElement(Panel_Panel, { title: title, className: UnitPanel_default.a['cmdn-UnitPanel-options'], onScrubbyValue: this.onScrubbyValue, logScrubbyValueAnalytics: logNumberInputAnalytics }, children)) }, this.dimensionComponent)),
                react_default.a.createElement(components_flex_FlexItem, { className: UnitPanel_default.a['cmdn-UnitPanel-options'] },
                    react_default.a.createElement(ConditionalWrapper_ConditionalWrapper, { condition: unitsTitle, onTrue: children => (react_default.a.createElement(Panel_Panel, { title: unitsTitle, className: UnitPanel_default.a['cmdn-UnitPanel-options'] }, children)) }, this.unitsComponent)))));
    }
}
/* harmony default export */ var components_unit_panel_UnitPanel = (Object(index_es["g" /* injectIntl */])(UnitPanel_UnitPanel));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/resolution-panel/ResolutionPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class ResolutionPanel_ResolutionPanel extends react["Component"] {
    render() {
        const { id, defaultUnitsValue, defaultValue, intl, max, min, onChange, onUnitChange, step, fastStepMultiplier, units, userLocaleDecimal, unitsValue, value, analytics, } = this.props;
        const options = units &&
            units.map(unit => ({
                label: intl.formatMessage({ id: `newdoc_details_resolution_${unit}` }),
                value: unit,
            }));
        return (react_default.a.createElement(components_unit_panel_UnitPanel, { id: id, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_resolution" }), value: value, min: min, max: max, defaultValue: defaultValue, unitsValue: unitsValue, defaultUnitsValue: defaultUnitsValue, step: step, fastStepMultiplier: fastStepMultiplier, options: options, userLocaleDecimal: userLocaleDecimal, onUnitChange: onUnitChange, onChange: onChange, logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('resolution'), logUnitsSelectAnalytics: () => analytics.logPresetDetailsInteraction('resolution-unit') }));
    }
}
/* harmony default export */ var resolution_panel_ResolutionPanel = (Object(index_es["g" /* injectIntl */])(ResolutionPanel_ResolutionPanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetsController.ts + 8 modules
var PresetsController = __webpack_require__("+DHQ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-save-form/PresetSaveForm.css
var preset_save_form_PresetSaveForm = __webpack_require__("lrN5");
var PresetSaveForm_default = /*#__PURE__*/__webpack_require__.n(preset_save_form_PresetSaveForm);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-save-form/PresetSaveForm.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_PROPERTIES_SAVE_PRESET_NAME_TEXTFIELD = 'cmdn-preset-save-textfield';
const CMDN_PROPERTIES_CANCEL_SAVE_PRESET_BUTTON = 'cmdn-preset-cancel-save-button';
const CMDN_PROPERTIES_SAVE_PRESET_BUTTON = 'cmdn-preset-save-button';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-save-form/PresetSaveForm.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














/**
 * Component that renders a preset name, you have the option to change it and save a new preset.
 */
class PresetSaveForm_PresetSaveForm extends react["Component"] {
    constructor(props) {
        super(props);
        /** Reference to the Textfield to be able to assign focus when the component is shown. */
        this._textfieldRef = react_default.a.createRef();
        this.onValueChange = this.onValueChange.bind(this);
        this.onInputValidation = this.onInputValidation.bind(this);
        this.onKeyDownActionButtons = this.onKeyDownActionButtons.bind(this);
        this.state = {
            value: this.props.value || this.getDefaultPresetName(),
            isPresetNameInvalid: false,
        };
        this.onKeyDown = this.onKeyDown.bind(this);
        this.onSave = this.onSave.bind(this);
        this.onCancel = this.onCancel.bind(this);
    }
    componentDidMount() {
        // we need to manage the focus ourselves since using autoFocus causes the text to be selected producing
        // data loss; see UXP-10453
        // @todo: this violates internal implementation
        if (Object(PlatformUtils["f" /* isUXP */])()) {
            this._textfieldRef.current && this._textfieldRef.current.inputContainer.focus();
        }
        else {
            this._textfieldRef.current && this._textfieldRef.current.focus();
        }
    }
    /**
     * Generates the a valid default preset name based on the existing saved presets and the type of form.
     *
     * @returns The default preset name based on the locale.
     */
    getDefaultPresetName() {
        const title = this.props.intl.formatMessage({ id: 'newdoc_filter_saved' });
        return PresetsController["a" /* PresetsController */].generateNewPresetName(title, this.props.savedPresets);
    }
    /**
     * Single point of truth for save action, called by both click and keyboard events without any additional logic or parameters.
     */
    onSave() {
        this.savePreset(this.state.value);
    }
    /**
     * Single point of truth for cancel action, called by both click and keyboard events without any additional logic or parameters.
     */
    onCancel() {
        this.props.handleCancelAction && this.props.handleCancelAction();
    }
    /**
     * Saves preset with a given name. We created this method to make unit testing easier.
     *
     * @param value Name used to save the preset.
     */
    savePreset(value) {
        if (!PresetsController["a" /* PresetsController */].isPresetNameInvalid(value, this.props.savedPresets)) {
            this.props.handleSaveAction && this.props.handleSaveAction(value);
        }
    }
    /**
     * Handles the value change of the preset name as the user types it.
     *
     * @param newValue New preset name.
     */
    onValueChange(newValue) {
        this.setState({ value: newValue });
    }
    /**
     * Makes sure that the current preset name is valid.
     *
     * @param name The preset name that needs validation.
     */
    onInputValidation(name) {
        const presets = this.props.savedPresets;
        this.setState({
            isPresetNameInvalid: PresetsController["a" /* PresetsController */].isPresetNameInvalid(name, presets),
        });
    }
    /**
     * Handles esc key press in preset name field.
     *
     * @param event Keyboard event.
     */
    onKeyDown(event) {
        switch (event.key) {
            case 'Enter':
                // Pressing "Enter" should be the same as clicking "Save Preset"
                stopKeyEventPropagation(event);
                this.onSave();
                break;
            case 'Escape':
                // Pressing "Escape" should be the same as clicking "Cancel"
                stopKeyEventPropagation(event);
                this.onCancel();
                break;
            default:
            // do nothing
        }
    }
    onKeyDownActionButtons(event) {
        switch (event.key) {
            case 'Enter':
                stopKeyEventPropagation(event);
                break;
            default:
            // do nothing
        }
    }
    render() {
        const { shouldReverseButtons } = this.props;
        const { isPresetNameInvalid, value } = this.state;
        const classes = [PresetSaveForm_default.a['cmdn-PresetSaveForm']];
        let presetCollisionLabel = '';
        if (isPresetNameInvalid) {
            if (typeof value === 'undefined' || value.trim() === '') {
                presetCollisionLabel = 'new_preset_details_empty_title';
            }
            else {
                presetCollisionLabel = 'new_preset_details_collision_title';
            }
        }
        return (react_default.a.createElement(Panel_Panel, { className: classnames_default()(classes), onKeyDown: this.onKeyDown },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: PresetSaveForm_default.a['cmdn-PresetSaveForm-container'] },
                    react_default.a.createElement(Textfield_default.a, { id: CMDN_PROPERTIES_SAVE_PRESET_NAME_TEXTFIELD, ref: this._textfieldRef, defaultpreventedkeys: ['Escape'], className: PresetSaveForm_default.a['cmdn-PresetSaveForm-field'], value: value, onChange: this.onValueChange, onInput: (event) => this.onInputValidation(event.target.value), validationState: isPresetNameInvalid ? 'invalid' : null, quiet: true }),
                    react_default.a.createElement("div", { className: PresetSaveForm_default.a['cmdn-PresetSaveForm-errorMessage'] }, isPresetNameInvalid && react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: presetCollisionLabel })))),
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { onKeyDown: this.onKeyDownActionButtons, className: PresetSaveForm_default.a['cmdn-PresetSaveForm-buttonContainer'] }, Object(JsUtils["l" /* reverseIf */])(shouldReverseButtons, [
                    react_default.a.createElement(Button_default.a, { className: PresetSaveForm_default.a['cmdn-PresetSaveForm-button'], defaultpreventedkeys: ['Escape'], key: "cancel", id: CMDN_PROPERTIES_CANCEL_SAVE_PRESET_BUTTON, variant: "primary", onClick: this.onCancel },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "cancel" })),
                    react_default.a.createElement(Button_default.a, { className: PresetSaveForm_default.a['cmdn-PresetSaveForm-button'], defaultpreventedkeys: ['Escape'], key: "save", variant: "cta", id: CMDN_PROPERTIES_SAVE_PRESET_BUTTON, disabled: isPresetNameInvalid, onClick: this.onSave },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_save_preset" })),
                ])))));
    }
}
/* harmony default export */ var components_preset_save_form_PresetSaveForm = (Object(index_es["g" /* injectIntl */])(PresetSaveForm_PresetSaveForm));

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/SaveTo/index.js
var SaveTo = __webpack_require__("ztOJ");
var SaveTo_default = /*#__PURE__*/__webpack_require__.n(SaveTo);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/document-name-form/DocumentNameForm.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_PROPERTIES_PRESET_NAME_TEXTFIELD = 'cmdn-preset-name-textfield';
const CMDN_PROPERTIES_SAVE_ICON = 'cmdn-preset-save-icon';

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/document-name-form/DocumentNameForm.css
var document_name_form_DocumentNameForm = __webpack_require__("NXik");
var DocumentNameForm_default = /*#__PURE__*/__webpack_require__.n(document_name_form_DocumentNameForm);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/document-name-form/DocumentNameForm.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/












/**
 * Component that renders a preset name, you have the option to change it and save a new preset.
 */
class DocumentNameForm_DocumentNameForm extends react["Component"] {
    constructor(props) {
        super(props);
        this.onValueChange = this.onValueChange.bind(this);
        this.savePresetBtnRef = react_default.a.createRef();
        this.onKeyDownActionButtons = this.onKeyDownActionButtons.bind(this);
    }
    onKeyDownActionButtons(event) {
        stopKeyEventPropagation(event);
    }
    /**
     * Handles the change of value.
     *
     * @param value New value.
     * @param event Event that triggered the change.
     */
    onValueChange(value, event) {
        if (typeof this.props.onChange === 'function') {
            this.props.onChange(value, event);
        }
    }
    componentDidMount() {
        if (this.props.focusSavePresetButton) {
            this.savePresetBtnRef.current && this.savePresetBtnRef.current.focus();
        }
    }
    render() {
        const { handleAction, value, savePresetButtonTooltip, analytics } = this.props;
        const saveButton = (react_default.a.createElement(Button_default.a, { ref: this.savePresetBtnRef, className: DocumentNameForm_default.a['cmdn-DocumentNameForm-button'], variant: "tool", id: CMDN_PROPERTIES_SAVE_ICON, icon: react_default.a.createElement(SaveTo_default.a, { size: "M", className: savePresetButtonTooltip && DocumentNameForm_default.a['cmdn-DocumentNameForm-button-withTooltip'] }), onClick: () => {
                handleAction === null || handleAction === void 0 ? void 0 : handleAction();
                analytics.logPresetDetailsInteraction('save-icon-button');
            }, quiet: true }));
        return (react_default.a.createElement(Panel_Panel, { className: DocumentNameForm_default.a['cmdn-DocumentNameForm'] },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: DocumentNameForm_default.a['cmdn-DocumentNameForm-titleContainer'] },
                    react_default.a.createElement(Textfield_default.a, { id: CMDN_PROPERTIES_PRESET_NAME_TEXTFIELD, className: DocumentNameForm_default.a['cmdn-DocumentNameForm-field'], value: value, onFocus: () => analytics.logPresetDetailsInteraction('name'), onChange: this.onValueChange, quiet: true })),
                handleAction && (react_default.a.createElement(components_flex_FlexItem, { onKeyDown: this.onKeyDownActionButtons, className: DocumentNameForm_default.a['cmdn-DocumentNameForm-buttonContainer'] }, !savePresetButtonTooltip ? (saveButton) : (react_default.a.createElement(OverlayTrigger_default.a, { placement: "left", trigger: "hover", delayShow: 800 },
                    saveButton,
                    react_default.a.createElement(Tooltip_default.a, { variant: "inspect" }, savePresetButtonTooltip))))))));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/properties-panel-container-base/PropertiesPanelContainerBase.css
var properties_panel_container_base_PropertiesPanelContainerBase = __webpack_require__("c8hs");
var PropertiesPanelContainerBase_default = /*#__PURE__*/__webpack_require__.n(properties_panel_container_base_PropertiesPanelContainerBase);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/properties-panel-container-base/PropertiesPanelContainerBase.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




















class PropertiesPanelContainerBase_PropertiesPanelContainerBase extends react["Component"] {
    constructor(props) {
        super(props);
        this.focusSavePresetButton = false;
        this.toggleSavePreset = this.toggleSavePreset.bind(this);
        this.onKeyDown = this.onKeyDown.bind(this);
        this.onCreate = this.onCreate.bind(this);
        this.onClose = this.onClose.bind(this);
    }
    /**
     * Toggles the save preset dialog. If the <code>force</code> parameter is true, the save preset dialog will be
     * shown.
     *
     * @param [force] Forces the preset dialog to be shown.
     */
    toggleSavePreset(force) {
        const { store } = this.props;
        store.saveFormVisible = force || !store.saveFormVisible;
        this.focusSavePresetButton = !force;
    }
    get panelGroupTitle() {
        const { store } = this.props;
        return store.saveFormVisible ? 'new_preset_details_label_title' : 'newdoc_details_label_title';
    }
    /**
     * Single point of truth for create action, called by both click and keyboard events without any additional logic or parameters.
     *
     * @param isSecondaryAction As two actions can be present at once, determine if this is the secondary one.
     */
    async onCreate(isSecondaryAction) {
        const { store, onCreate } = this.props;
        onCreate && (await onCreate(isSecondaryAction));
        await Object(DocumentTemplateInteractionUtils["a" /* createDocument */])(store, Object(DocumentTemplateInteractionUtils["b" /* getDefaultDocumentName */])(store));
    }
    /**
     * Single point of truth for close action, currently called only by click.
     * (This is because 'Escape' presses must propagate and kill both CmdN and HS,
     * but we're implementing it the same way to preserve symmetry.).
     */
    onClose() {
        this.props.store.closeApp(DialogUtils["a" /* DialogCloseReason */].CLOSE);
    }
    async handleSaveAction(presetName) {
        const { store } = this.props;
        const { analytics } = store;
        // clones the original model, since the JSON returned by mobx is read-only
        const clonedModel = JSON.parse(JSON.stringify(store.activeDocumentTemplate &&
            store.activeDocumentTemplate.toJSON &&
            store.activeDocumentTemplate.toJSON()));
        clonedModel[this.props.presetNameField] = presetName;
        // store the Ingest event
        const ingestData = {
            settings: {},
        };
        Object.assign(ingestData, store.originalPreset);
        Object.assign(ingestData.settings, clonedModel);
        analytics.logFNFTActionClickedEvent('preset-save', ingestData);
        analytics.flushEvent();
        await store.createPreset(JSON.stringify(clonedModel));
        // reloads the presets, so that the new Saved preset is shown to the user
        await store.updatePresetCategory(DocumentTemplateCategoryTypes["a" /* default */].SAVED);
        // and forces the view to be Saved so the user sees what he just created
        store.switchToSavedView(presetName);
    }
    onKeyDown(event) {
        switch (event.key) {
            case 'Enter':
                // Pressing "Enter" should be the same as clicking "Create"
                stopKeyEventPropagation(event);
                this.onCreate();
                break;
            default:
            // do nothing
        }
    }
    render() {
        const { store, id, content, footerWarning, hasSavePreset, docPresetTooltip, savePresetButtonTooltip, previewModeEnabled, previewLabel, previewChangeHandler, documentNameChangeHandler, hasSecondAction, highlightSecondAction, actionLabel, secondActionLabel, smallActionFont, } = this.props;
        const { activeDocumentTemplate, isWindowsOS, documentName, saveFormVisible, analytics } = store;
        let savedPresets = [];
        const defaultDocumentNameChangeHandler = (value) => {
            store.documentName = Object(PlatformUtils["i" /* sanitizeDocumentName */])(value);
        };
        let documentNameProps = {
            analytics,
            value: documentName,
            onChange: documentNameChangeHandler || defaultDocumentNameChangeHandler,
        };
        if (hasSavePreset) {
            savedPresets = store.getPresetsByCategoryType(DocumentTemplateCategoryTypes["a" /* default */].SAVED);
            documentNameProps = {
                ...documentNameProps,
                handleAction: (presetName) => {
                    this.toggleSavePreset(true);
                },
                focusSavePresetButton: this.focusSavePresetButton,
                savePresetButtonTooltip: savePresetButtonTooltip,
            };
        }
        const titleClass = [
            PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-Title'],
            { [PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-Title-Save-visible']]: saveFormVisible },
        ];
        const presetSavePanelClass = [
            PropertiesPanelContainerBase_default.a['cmdn-PresetSavePanel-panelGroup'],
            { [PropertiesPanelContainerBase_default.a['is-visible']]: saveFormVisible },
        ];
        const propertiesPanelClass = [
            PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel'],
            { [PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-Save-visible']]: saveFormVisible },
        ];
        return (react_default.a.createElement(FlexContainer_FlexContainer, { id: id, onKeyDown: this.onKeyDown, className: PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-FlexContainer'] },
            activeDocumentTemplate && (react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(components_flex_FlexItem, null,
                    react_default.a.createElement(PanelGroup_PanelGroup, { headerId: CMDN_SIDEBAR_PANEL_TITLE, titleTooltip: docPresetTooltip, title: react_default.a.createElement(FormattedUppercaseMessage_FormattedUppercaseMessage, { id: this.panelGroupTitle }), titleClassName: classnames_default()(titleClass), className: classnames_default()(presetSavePanelClass) }, hasSavePreset && saveFormVisible && (react_default.a.createElement(components_preset_save_form_PresetSaveForm, { handleSaveAction: (presetName) => {
                            this.toggleSavePreset();
                            this.focusSavePresetButton = false;
                            this.handleSaveAction(presetName);
                        }, savedPresets: savedPresets, handleCancelAction: () => this.toggleSavePreset(), shouldReverseButtons: isWindowsOS })))),
                react_default.a.createElement(components_flex_FlexItem, { className: PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-FlexItem-PresetDetails'] },
                    react_default.a.createElement(PanelGroup_PanelGroup, { className: classnames_default()(propertiesPanelClass) },
                        (!hasSavePreset || (hasSavePreset && !saveFormVisible)) && (react_default.a.createElement(DocumentNameForm_DocumentNameForm, Object.assign({}, documentNameProps))),
                        content)))),
            !activeDocumentTemplate && (react_default.a.createElement(components_flex_FlexItem, { className: PropertiesPanelContainerBase_default.a['cmdn-PropertiesPanel-FlexItem--empty'] })),
            react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()({
                    'cmdn-u-hidden': saveFormVisible,
                }) },
                react_default.a.createElement(ActionButtons_ActionButtons, { actionLabel: actionLabel || react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "create" }), closeLabel: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "close" }), disableAction: !activeDocumentTemplate, shouldReverseButtons: isWindowsOS && !hasSecondAction, onClose: this.onClose, onAction: this.onCreate, warning: footerWarning, previewLabel: previewLabel, previewModeEnabled: previewModeEnabled, previewChangeHandler: previewChangeHandler, hasSecondAction: hasSecondAction, highlightSecondAction: highlightSecondAction, secondActionLabel: secondActionLabel, smallActionFont: smallActionFont }))));
    }
}
PropertiesPanelContainerBase_PropertiesPanelContainerBase.defaultProps = {
    presetNameField: 'name',
};
const PropertiesPanelContainerBase_DecoratedClass = Object(mobx_module["o" /* decorate */])(PropertiesPanelContainerBase_PropertiesPanelContainerBase, {});
const PropertiesPanelContainerBase_ObservedClass = Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(PropertiesPanelContainerBase_DecoratedClass)));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/variables.css
var variables = __webpack_require__("yix/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/AppStorageController.ts + 2 modules
var AppStorageController = __webpack_require__("tr1J");

// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
var inversify = __webpack_require__("4cb6");

// EXTERNAL MODULE: ./node_modules/reflect-metadata/Reflect.js
var reflect_metadata_Reflect = __webpack_require__("mNvP");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/SidebarCollapsiblePanelController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var SidebarCollapsiblePanelController_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var SidebarCollapsiblePanelController_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};





let SidebarCollapsiblePanelController_SidebarCollapsiblePanelController = class SidebarCollapsiblePanelController {
    constructor() {
        /** Controller used to persist data. */
        this._advancedSettingsCollapsed = false;
        /** Controller used to persist data. */
        this._marginsCollapsed = false;
        /** Controller used to persist data. */
        this._bleedAndSlugCollapsed = false;
        this._appStorageController = hosts["a" /* default */].appStorageController;
        this._advancedSettingsCollapsed = this._appStorageController.getCollapsedValue(AppStorageController["a" /* StorageKeys */].ADVANCED_SETTINGS_COLLAPSED);
        this._marginsCollapsed = this._appStorageController.getCollapsedValue(AppStorageController["a" /* StorageKeys */].MARGINS_COLLAPSED);
        this._bleedAndSlugCollapsed = this._appStorageController.getCollapsedValue(AppStorageController["a" /* StorageKeys */].BLEED_AND_SLUG_COLLAPSED);
    }
    /**
     * Determines if the advanced settings Collapsible is collapsed. If the value has not been initialized, it will default to
     * <code>false</code>.
     *
     * @returns Whether the advanced settings Collapsible is collapsed or not.
     */
    get advancedSettingsCollapsed() {
        return this._advancedSettingsCollapsed;
    }
    /**
     * Sets whether the advanced settings Collapsible is collapsed or not.
     *
     * @param value Whether the advanced settings Collapsible is collapsed or not.
     */
    set advancedSettingsCollapsed(value) {
        if (this._appStorageController) {
            this._appStorageController.setCollapsedValue(AppStorageController["a" /* StorageKeys */].ADVANCED_SETTINGS_COLLAPSED, value);
        }
        this._advancedSettingsCollapsed = value;
    }
    /**
     * Determines if the InDesign margins Collapsible is collapsed. If the value has not been initialized, it will default to
     * <code>false</code>.
     *
     * @returns Whether the InDesign margins Collapsible is collapsed or not.
     */
    get marginsCollapsed() {
        return this._marginsCollapsed;
    }
    /**
     * Sets whether the InDesign margins Collapsible is collapsed or not.
     *
     * @param value Whether the InDesign margins Collapsible is collapsed or not.
     */
    set marginsCollapsed(value) {
        if (this._appStorageController) {
            this._appStorageController.setCollapsedValue(AppStorageController["a" /* StorageKeys */].MARGINS_COLLAPSED, value);
        }
        this._marginsCollapsed = value;
    }
    /**
     * Determines if the InDesign bleed and slug Collapsible is collapsed. If the value has not been initialized, it will default to
     * <code>false</code>.
     *
     * @returns Whether the InDesign bleed and slug Collapsible is collapsed or not.
     */
    get bleedAndSlugCollapsed() {
        return this._bleedAndSlugCollapsed;
    }
    /**
     * Sets whether the InDesign bleed and slug Collapsible is collapsed or not.
     *
     * @param value Whether the InDesign margins Collapsible is collapsed or not.
     */
    set bleedAndSlugCollapsed(value) {
        if (this._appStorageController) {
            this._appStorageController.setCollapsedValue(AppStorageController["a" /* StorageKeys */].BLEED_AND_SLUG_COLLAPSED, value);
        }
        this._bleedAndSlugCollapsed = value;
    }
};
SidebarCollapsiblePanelController_decorate([
    mobx_module["z" /* observable */],
    SidebarCollapsiblePanelController_metadata("design:type", Boolean)
], SidebarCollapsiblePanelController_SidebarCollapsiblePanelController.prototype, "_advancedSettingsCollapsed", void 0);
SidebarCollapsiblePanelController_decorate([
    mobx_module["z" /* observable */],
    SidebarCollapsiblePanelController_metadata("design:type", Boolean)
], SidebarCollapsiblePanelController_SidebarCollapsiblePanelController.prototype, "_marginsCollapsed", void 0);
SidebarCollapsiblePanelController_decorate([
    mobx_module["z" /* observable */],
    SidebarCollapsiblePanelController_metadata("design:type", Boolean)
], SidebarCollapsiblePanelController_SidebarCollapsiblePanelController.prototype, "_bleedAndSlugCollapsed", void 0);
SidebarCollapsiblePanelController_SidebarCollapsiblePanelController = SidebarCollapsiblePanelController_decorate([
    Object(inversify["injectable"])(),
    SidebarCollapsiblePanelController_metadata("design:paramtypes", [])
], SidebarCollapsiblePanelController_SidebarCollapsiblePanelController);
/* harmony default export */ var controllers_SidebarCollapsiblePanelController = (SidebarCollapsiblePanelController_SidebarCollapsiblePanelController);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/ps-properties-panel-container/PsPropertiesPanelContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




















/**
 * Decorator for the Properties Panel container.
 */
class PsPropertiesPanelContainer_PsPropertiesPanelContainer extends react["Component"] {
    constructor(props) {
        super(props);
        this.focusSavePresetButton = false;
        this._collapsibleController = new controllers_SidebarCollapsiblePanelController();
        this.toggleAdvancedSettings = this.toggleAdvancedSettings.bind(this);
    }
    toggleAdvancedSettings() {
        const { store } = this.props;
        this._collapsibleController.advancedSettingsCollapsed = !this._collapsibleController.advancedSettingsCollapsed;
        const { analytics } = store;
        const originalPreset = store.originalPreset || {};
        // we know the activeDocumentTemplate is a model, so get a snapshot before using it
        const activeDocumentTemplate = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(store.activeDocumentTemplate)
            ? Object(mobx_state_tree_module["f" /* getSnapshot */])(store.activeDocumentTemplate)
            : store.activeDocumentTemplate;
        // store the Ingest event
        const ingestData = {
            advancedSettingsCollapsed: this._collapsibleController.advancedSettingsCollapsed,
            settings: {},
        };
        Object.assign(ingestData, originalPreset);
        Object.assign(ingestData.settings, activeDocumentTemplate);
        analytics.logFNFTActionClickedEvent('more-options', ingestData);
    }
    get content() {
        var _a;
        const { store } = this.props;
        const { activeDocumentTemplate, defaultSettings, openColorPicker, analytics } = store;
        const userLocaleDecimal = (defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.userLocaleDecimal) || '.';
        const { displayWidth, displayHeight, displayMaxDocWidth, displayMaxDocHeight, displayMinDocWidth, displayMinDocHeight, displayResolution, displayMaxResolution, displayMinResolution, docStep, fastStepMultiplier, slowStepMultiplier, units, resolutionUnits, displayBackgroundValues, displayColorMode, displayColorDepth, displayColorProfileLists, profile, scale, orientation, hasArtboards, updateDimensionUnit, updateWidth, updateHeight, updateResolution, toggleOrientation, updateArtboards, updateResolutionUnit, updateColorMode, updateEncoding, updateColorProfile, updateAspectRatio, updateFill, displayBackground, defaultCustomColor, displayCustomColor, displayCustomColorRgbString, displayColorModes, } = activeDocumentTemplate || {};
        const defaultPresetSettings = defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.defaultPresetSettings;
        const widthTitle = react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_width" });
        const filteredUnits = (_a = defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.units) === null || _a === void 0 ? void 0 : _a.filter(unit => unit !== 'columnsUnit');
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(FlexContainer_FlexContainer, { className: DimensionsBlock_default.a['cmdn-DimensionsBlock'] },
                react_default.a.createElement(dimensions_block_DimensionsWidthHeight, { widthInput: {
                        id: CMDN_SIDEBAR_WIDTH_PANEL,
                        title: widthTitle,
                        value: displayWidth,
                        min: displayMinDocWidth,
                        max: displayMaxDocWidth,
                        step: docStep,
                        fastStepMultiplier: fastStepMultiplier,
                        slowStepMultiplier: slowStepMultiplier,
                        userLocaleDecimal: userLocaleDecimal,
                        defaultValue: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.width,
                        unitsValue: units,
                        units: filteredUnits,
                        defaultUnitsValue: defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.defaultUnits,
                        onUnitChange: newUnit => updateDimensionUnit(newUnit),
                        onChange: value => updateWidth(value),
                    }, heightInput: {
                        id: CMDN_SIDEBAR_HEIGHT_ROW_PANEL,
                        value: displayHeight,
                        min: displayMinDocHeight,
                        max: displayMaxDocHeight,
                        step: docStep,
                        fastStepMultiplier: fastStepMultiplier,
                        slowStepMultiplier: slowStepMultiplier,
                        userLocaleDecimal: userLocaleDecimal,
                        defaultValue: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.height,
                        unitsValue: units,
                        units: filteredUnits,
                        onUnitChange: newUnit => updateDimensionUnit(newUnit),
                        onChange: value => updateHeight(value),
                    }, analytics: analytics }),
                react_default.a.createElement(dimensions_block_DimensionsOptionsOrientationArtboards, { optionsInput: {
                        id: CMDN_SIDEBAR_DOCUMENT_DIMENSIONS,
                        defaultUnitsValue: defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.defaultUnits,
                        defaultValue: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.width,
                        onUnitChange: newUnit => updateDimensionUnit(newUnit),
                        onChange: value => updateWidth(value),
                        unitsValue: units,
                        units: filteredUnits,
                    }, orientationInputs: {
                        orientation: orientation,
                        defaultOrientation: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.orientation,
                        onOrientationChange: value => toggleOrientation(value),
                    }, artboard: {
                        hasArtboards: hasArtboards,
                        defaultHasArtboards: !!(defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.artboards),
                        onArtboardsChange: value => {
                            updateArtboards(value);
                            analytics.logPresetDetailsInteraction('artboards');
                        },
                    }, analytics: analytics })),
            react_default.a.createElement(resolution_panel_ResolutionPanel, { id: CMDN_SIDEBAR_RESOLUTION_PANEL, value: displayResolution, step: 0.1, fastStepMultiplier: 10, min: displayMinResolution, max: displayMaxResolution, userLocaleDecimal: userLocaleDecimal, defaultValue: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.resolution, unitsValue: resolutionUnits, units: defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.resolutionUnits, defaultUnitsValue: defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.defaultResolutionUnits, onUnitChange: unit => updateResolutionUnit(unit), onChange: value => updateResolution(value), analytics: analytics }),
            react_default.a.createElement(components_color_mode_panel_ColorModePanel, { value: displayColorMode, defaultValue: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.mode, hasDepth: true, depth: displayColorDepth, defaultDepth: defaultPresetSettings === null || defaultPresetSettings === void 0 ? void 0 : defaultPresetSettings.depth, onChange: value => updateColorMode(value), onEncodingChange: value => updateEncoding(value), colorModes: displayColorModes, analytics: analytics }),
            react_default.a.createElement(components_background_contents_panel_BackgroundContentsPanel, { value: displayBackground, defaultValue: defaultCustomColor, values: displayBackgroundValues, customColor: displayCustomColor, customColorRgbString: displayCustomColorRgbString, onOpenPicker: openColorPicker, onFillChange: value => updateFill(value, defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.backgroundColor), analytics: analytics }),
            react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_button_customize" }), headerId: CMDN_SIDEBAR_ADVANCED_SETTINGS, collapsible: true, open: !this._collapsibleController.advancedSettingsCollapsed, onToggle: this.toggleAdvancedSettings },
                react_default.a.createElement(components_color_profile_panel_ColorProfilePanel, { values: displayColorProfileLists, value: profile, onChange: value => updateColorProfile(value), analytics: analytics }),
                react_default.a.createElement(components_pixel_aspect_ratio_panel_PixelAspectRatioPanel, { values: defaultSettings === null || defaultSettings === void 0 ? void 0 : defaultSettings.pixelAspectRatios, value: scale, onChange: value => updateAspectRatio(value), analytics: analytics }))));
    }
    render() {
        return react_default.a.createElement(PropertiesPanelContainerBase_ObservedClass, Object.assign({}, this.props, { content: this.content, hasSavePreset: true }));
    }
}
const PsPropertiesPanelContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(PsPropertiesPanelContainer_PsPropertiesPanelContainer, {});
const PsPropertiesPanelContainer_ObservedClass = Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(PsPropertiesPanelContainer_DecoratedClass)));


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Link/index.js
var Link = __webpack_require__("v7z/");
var Link_default = /*#__PURE__*/__webpack_require__.n(Link);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Link/index.js
var dist_Link = __webpack_require__("QsLt");
var dist_Link_default = /*#__PURE__*/__webpack_require__.n(dist_Link);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/LinkOff/index.js
var LinkOff = __webpack_require__("nvTU");
var LinkOff_default = /*#__PURE__*/__webpack_require__.n(LinkOff);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/linked-number-inputs/LinkedNumberInputs.css
var linked_number_inputs_LinkedNumberInputs = __webpack_require__("AYj6");
var LinkedNumberInputs_default = /*#__PURE__*/__webpack_require__.n(linked_number_inputs_LinkedNumberInputs);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/linked-number-inputs/LinkedNumberInputs.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LinkedNumberInputs_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var LinkedNumberInputs_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};















/**
 * UI component for capturing the specific linked values.
 */
const INDEX_LEFT = 0;
const INDEX_TOP = 1;
const INDEX_RIGHT = 2;
const INDEX_BOTTOM = 3;
let LinkedNumberInputs_LinkedNumberInputs = class LinkedNumberInputs extends react["Component"] {
    constructor(props) {
        super(props);
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.topLeftNumberInput = react_default.a.createRef();
        this.topRightNumberInput = react_default.a.createRef();
        this.bottomLeftNumberInput = react_default.a.createRef();
        this.bottomRightNumberInput = react_default.a.createRef();
        this.lastTouched = INDEX_TOP;
        this.updateValues = this.updateValues.bind(this);
        this.toggleLock = this.toggleLock.bind(this);
    }
    getScrubbyFn(numberInputRef) {
        return (direction, fastModifier, slowModifier) => {
            const numberInput = numberInputRef.current;
            if (numberInput) {
                numberInput.onScrubbyValue(direction, fastModifier, slowModifier);
            }
        };
    }
    updateValues(index, value) {
        const { values, onUpdate, lock } = this.props;
        const [left, top, right, bottom] = values;
        this.lastTouched = index;
        if (lock) {
            return typeof onUpdate === 'function' && onUpdate([value, value, value, value]);
        }
        const newValues = [left, top, right, bottom];
        newValues[index] = value;
        typeof onUpdate === 'function' && onUpdate(newValues);
    }
    toggleLock() {
        const { values, onUpdate, onLockClick, lock } = this.props;
        const [left, top, right, bottom] = values;
        const newLock = !lock;
        if (newLock) {
            const value = [left, top, right, bottom][this.lastTouched];
            typeof onUpdate === 'function' && onUpdate([value, value, value, value]);
        }
        typeof onLockClick === 'function' && onLockClick(newLock);
    }
    render() {
        const { id, title, panelGroupTitleTooltip, linkButtonTooltip, labelTopLeft, labelTopRight, labelBottomLeft, labelBottomRight, values, lock, userLocaleDecimal, step, min, max, fastStepMultiplier, slowStepMultiplier, wideNumberInputs, unitsValue, unitInfo, unitConvertConfig, numberInputClassName, logNumberInputAnalytics, logLinkInputsButtonAnalytics, } = this.props;
        const [left, top, right, bottom] = values;
        const wideItemContainerClass = {
            [LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-itemInputs--wide']]: wideNumberInputs,
        };
        const linkedButton = (react_default.a.createElement(Button_default.a, { id: this.props.id + CMDN_SIDEBAR_LINK_BUTTON, className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-linkedButton'], {
                'btn-selected': lock,
            }), selected: lock, variant: "action", onClick: () => {
                var _a;
                (_a = this.toggleLock) === null || _a === void 0 ? void 0 : _a.call(this);
                logLinkInputsButtonAnalytics === null || logLinkInputsButtonAnalytics === void 0 ? void 0 : logLinkInputsButtonAnalytics();
            }, "aria-label": "Link", icon: lock ? react_default.a.createElement(dist_Link_default.a, { size: "S" }) : react_default.a.createElement(LinkOff_default.a, { size: "S" }) }));
        return (react_default.a.createElement(PanelGroup_PanelGroup, { titleTooltip: panelGroupTitleTooltip, title: title, className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panelGroup'], titleClassName: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-title'] },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()([
                        wideItemContainerClass,
                        LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-itemInputs'],
                    ]) },
                    react_default.a.createElement(FlexContainer_FlexContainer, null,
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()([
                                LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-item'],
                                LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-firstItem'],
                            ]) },
                            react_default.a.createElement(Panel_Panel, { title: labelTopLeft, onScrubbyValue: this.getScrubbyFn(this.topLeftNumberInput), logScrubbyValueAnalytics: logNumberInputAnalytics, className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panel'], titleClassName: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panelTitle'], headerId: id && getLinkedInputHeaderId(id, LinkedInputPositions.TOP) },
                                react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id && getLinkedInputTextfieldId(id, LinkedInputPositions.TOP), className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-input'], numberInputClassName), ref: this.topLeftNumberInput, value: top, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, wide: wideNumberInputs, onChange: value => this.updateValues(INDEX_TOP, value), useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: true, logAnalytics: logNumberInputAnalytics }))),
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-item'], LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-secondItem']) },
                            react_default.a.createElement(Panel_Panel, { title: labelTopRight, onScrubbyValue: this.getScrubbyFn(this.topRightNumberInput), logScrubbyValueAnalytics: logNumberInputAnalytics, className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panel'], titleClassName: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panelTitle'], headerId: id && getLinkedInputHeaderId(id, LinkedInputPositions.BOTTOM) },
                                react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id && getLinkedInputTextfieldId(id, LinkedInputPositions.BOTTOM), className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-input'], numberInputClassName), ref: this.topRightNumberInput, value: bottom, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, wide: wideNumberInputs, onChange: value => this.updateValues(INDEX_BOTTOM, value), useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: true, logAnalytics: logNumberInputAnalytics })))),
                    react_default.a.createElement(FlexContainer_FlexContainer, { className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-second-container'] },
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()([
                                LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-item'],
                                LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-firstItem'],
                            ]) },
                            react_default.a.createElement(Panel_Panel, { title: labelBottomLeft, onScrubbyValue: this.getScrubbyFn(this.bottomLeftNumberInput), logScrubbyValueAnalytics: logNumberInputAnalytics, className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panel'], titleClassName: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panelTitle'], headerId: id && getLinkedInputHeaderId(id, LinkedInputPositions.LEFT) },
                                react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id && getLinkedInputTextfieldId(id, LinkedInputPositions.LEFT), className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-input'], numberInputClassName), ref: this.bottomLeftNumberInput, value: left, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, wide: wideNumberInputs, onChange: value => this.updateValues(INDEX_LEFT, value), useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: true, logAnalytics: logNumberInputAnalytics }))),
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-item'], LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-secondItem']) },
                            react_default.a.createElement(Panel_Panel, { title: labelBottomRight, onScrubbyValue: this.getScrubbyFn(this.bottomRightNumberInput), logScrubbyValueAnalytics: logNumberInputAnalytics, className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panel'], titleClassName: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-panelTitle'], headerId: id && getLinkedInputHeaderId(id, LinkedInputPositions.RIGHT) },
                                react_default.a.createElement(unit_number_input_UnitNumberInput, { id: id && getLinkedInputTextfieldId(id, LinkedInputPositions.RIGHT), className: classnames_default()(LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-input'], numberInputClassName), ref: this.bottomRightNumberInput, value: right, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, wide: wideNumberInputs, onChange: value => this.updateValues(INDEX_RIGHT, value), useSimpleInvalidIndicator: true, unitsValue: unitsValue, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: true, logAnalytics: logNumberInputAnalytics }))))),
                react_default.a.createElement(components_flex_FlexItem, null,
                    react_default.a.createElement(FlexContainer_FlexContainer, { className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-containerLink'] },
                        react_default.a.createElement(components_flex_FlexItem, { className: LinkedNumberInputs_default.a['cmdn-LinkedNumberInputs-linkIcon'] }, !linkButtonTooltip ? (linkedButton) : (react_default.a.createElement(OverlayTrigger_default.a, { placement: "left", trigger: "hover", delayShow: 800 },
                            linkedButton,
                            react_default.a.createElement(Tooltip_default.a, { variant: "inspect" }, linkButtonTooltip)))))))));
    }
};
LinkedNumberInputs_LinkedNumberInputs.defaultProps = {
    values: [0.0, 0.0, 0.0, 0.0],
    lock: true,
};
LinkedNumberInputs_LinkedNumberInputs = LinkedNumberInputs_decorate([
    index_module["e" /* observer */],
    LinkedNumberInputs_metadata("design:paramtypes", [Object])
], LinkedNumberInputs_LinkedNumberInputs);
/* harmony default export */ var components_linked_number_inputs_LinkedNumberInputs = (LinkedNumberInputs_LinkedNumberInputs);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/select-option-panel/SelectOptionPanel.css
var select_option_panel_SelectOptionPanel = __webpack_require__("2KrX");
var SelectOptionPanel_default = /*#__PURE__*/__webpack_require__.n(select_option_panel_SelectOptionPanel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/select-option-panel/SelectOptionPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






class SelectOptionPanel_SelectOptionPanel extends react["Component"] {
    render() {
        const { defaultValue, value, optionsData, label, titleLabel, onChange, intl, className, id, logAnalytics, } = this.props;
        const options = optionsData &&
            optionsData.map(data => ({
                label: intl.formatMessage({ id: `${label}_${data.mode}` }),
                value: data.value,
            }));
        const panelClasses = [SelectOptionPanel_default.a['cmdn-SelectOptionPanel'], className];
        return (react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: titleLabel }), className: classnames_default()(panelClasses) },
            react_default.a.createElement(Select_default.a, { id: id, value: value, defaultValue: defaultValue, options: options, onChange: value => {
                    onChange(optionsData && optionsData.find(data => data.value === value));
                }, onOpen: logAnalytics, placeholder: intl.formatMessage({ id: 'select_placeholder' }) })));
    }
}
/* harmony default export */ var components_select_option_panel_SelectOptionPanel = (Object(index_es["g" /* injectIntl */])(SelectOptionPanel_SelectOptionPanel));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/height-row-panel/HeightRowPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/












/**
 * UI component used to layout the input row for capturing Height, Orientation and Artboards.
 */
class HeightRowPanel_HeightRowPanel extends react["Component"] {
    render() {
        const { id, value, min, max, step, fastStepMultiplier, slowStepMultiplier, shiftMultiplierArtboards, defaultValue, orientation, defaultOrientation, artboardsCount, hasArtboards, defaultHasArtboards, minArtboards, maxArtboards, stepArtboards, defaultArtboardsCount, onOrientationChange, onArtboardsChange, onChange, userLocaleDecimal, wideNumberInputs, unitsValue, heightClassName, unitInfo, unitConvertConfig, hasArrows, isBindingEnabled, isJapaneseEnabled, bindingTitle, binding, defaultBinding, onBindingChange, orientationLandscapeTooltip, orientationPortraitTooltip, bindLeftToRight, bindRightToLeft, analytics, } = this.props;
        return (react_default.a.createElement(Panel_Panel, { className: HeightRowPanel_default.a['cmdn-HeightRowPanel'] },
            react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-HeightItem'] },
                    react_default.a.createElement(HeightPanel_HeightPanel, { id: id, value: value, min: min, max: max, className: heightClassName, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, defaultValue: defaultValue, unitsValue: unitsValue, hasArrows: hasArrows, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, onChange: onChange, wideNumberInputs: wideNumberInputs, userLocaleDecimal: userLocaleDecimal, analytics: analytics })),
                !isBindingEnabled && (react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem'] },
                    react_default.a.createElement(components_orientation_panel_OrientationPanel, { value: orientation, defaultValue: defaultOrientation, onChange: onOrientationChange, portraitTooltip: orientationPortraitTooltip, landscapeTooltip: orientationLandscapeTooltip, analytics: analytics }))),
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-ArtboardsItem'] },
                    typeof artboardsCount !== 'undefined' && (react_default.a.createElement(ArtboardsNumberPanel_ArtboardsNumberPanel, { id: CMDN_SIDEBAR_ARTBOARDS_NUMBER_PANEL, value: artboardsCount, min: minArtboards, max: maxArtboards, step: stepArtboards, fastStepMultiplier: shiftMultiplierArtboards, defaultValue: defaultArtboardsCount, wideNumberInputs: wideNumberInputs, onChange: onArtboardsChange, analytics: analytics })),
                    typeof hasArtboards !== 'undefined' && (react_default.a.createElement(CheckboxPanel_CheckboxPanel, { id: CMDN_SIDEBAR_ARTBOARDS_CHECKBOX_PANEL, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_artboards" }), value: hasArtboards, defaultValue: defaultHasArtboards, onChange: onArtboardsChange })))),
            isBindingEnabled && (react_default.a.createElement(FlexContainer_FlexContainer, null,
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem--withBinding'] },
                    react_default.a.createElement(components_orientation_panel_OrientationPanel, { value: orientation, defaultValue: defaultOrientation, onChange: onOrientationChange, portraitTooltip: orientationPortraitTooltip, landscapeTooltip: orientationLandscapeTooltip, analytics: analytics })),
                react_default.a.createElement(components_flex_FlexItem, { className: HeightRowPanel_default.a['cmdn-OrientationItem'] },
                    react_default.a.createElement(binding_panel_BindingPanel, { title: bindingTitle, value: binding, defaultValue: defaultBinding, onChange: onBindingChange, isJapaneseEnabled: isJapaneseEnabled, leftToRightTooltip: bindLeftToRight, rightToLeftTooltip: bindRightToLeft }))))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/width-panel/WidthPanel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class WidthPanel_WidthPanel extends react["Component"] {
    render() {
        const { id, dimensionsId, defaultUnitsValue, defaultValue, intl, max, min, onChange, onUnitChange, step, fastStepMultiplier, slowStepMultiplier, units, unitsValue, userLocaleDecimal, wideNumberInputs, value, unitInfo, widthClassName, unitsTitle, unitConvertConfig, hasArrows, analytics, } = this.props;
        const { formatMessage } = intl;
        const options = units && units.map(unit => ({ label: formatMessage({ id: `newdoc_details_${unit}` }), value: unit }));
        // Note: can't use <FormattedMessage/> in "options" because Torq Native
        // does not convert the label values to string and they only show as
        // object [Object]
        return (react_default.a.createElement(components_unit_panel_UnitPanel, { id: id, dimensionsId: dimensionsId, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_width" }), value: value, min: min, max: max, step: step, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, defaultValue: defaultValue, unitsValue: unitsValue, defaultUnitsValue: defaultUnitsValue, options: options, dimensionClassName: widthClassName, unitsTitle: unitsTitle, userLocaleDecimal: userLocaleDecimal, wideNumberInputs: wideNumberInputs, onUnitChange: onUnitChange, onChange: onChange, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, hasArrows: hasArrows, logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('width'), logUnitsSelectAnalytics: () => analytics.logPresetDetailsInteraction('dimensions-unit') }));
        /* Also saw in the host "columnsUnit" */
    }
}
/* harmony default export */ var width_panel_WidthPanel = (Object(index_es["g" /* injectIntl */])(WidthPanel_WidthPanel));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/ai-properties-panel-container/AiPropertiesPanelContainer.css
var ai_properties_panel_container_AiPropertiesPanelContainer = __webpack_require__("ylvC");
var AiPropertiesPanelContainer_default = /*#__PURE__*/__webpack_require__.n(ai_properties_panel_container_AiPropertiesPanelContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/ai-properties-panel-container/AiPropertiesPanelContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



























/**
 * Decorator for the Properties Panel container.
 */
class AiPropertiesPanelContainer_AiPropertiesPanelContainer extends react["Component"] {
    constructor(props) {
        super(props);
        this._collapsibleController = new controllers_SidebarCollapsiblePanelController();
        this.toggleAdvancedSettings = this.toggleAdvancedSettings.bind(this);
        this.openMoreSettings = this.openMoreSettings.bind(this);
    }
    toggleAdvancedSettings() {
        const { store } = this.props;
        this._collapsibleController.advancedSettingsCollapsed = !this._collapsibleController.advancedSettingsCollapsed;
        const { analytics } = store;
        const originalPreset = store.originalPreset || {};
        const activeDocumentTemplate = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(store.activeDocumentTemplate)
            ? Object(mobx_state_tree_module["f" /* getSnapshot */])(store.activeDocumentTemplate)
            : store.activeDocumentTemplate;
        // store the Ingest event
        const ingestData = {
            advancedSettingsCollapsed: this._collapsibleController.advancedSettingsCollapsed,
            settings: {},
        };
        Object.assign(ingestData, originalPreset);
        Object.assign(ingestData.settings, activeDocumentTemplate);
        analytics.logFNFTActionClickedEvent('more-options', ingestData);
    }
    onKeyDownMoreSettings(event) {
        switch (event.key) {
            case 'Enter':
                stopKeyEventPropagation(event);
                this.openMoreSettings();
                break;
            default:
            // do nothing
        }
    }
    async openMoreSettings() {
        const { store } = this.props;
        if (store.activeDocumentTemplate) {
            await Object(DocumentTemplateInteractionUtils["a" /* createDocument */])(store, Object(DocumentTemplateInteractionUtils["b" /* getDefaultDocumentName */])(store), true);
        }
    }
    get content() {
        const { store } = this.props;
        const { activeDocumentTemplate, defaultSettings, analytics } = store;
        const userLocaleDecimal = defaultSettings && defaultSettings.userLocaleDecimal ? defaultSettings.userLocaleDecimal : '.';
        const { width, height, displayMaxDocWidth, displayMaxDocHeight, displayMinDocWidth, displayMinDocHeight, displayRasterEffectList, displayPreviewModes, docStep, fastStepMultiplier, slowStepMultiplier, units, unitInfo, displayColorMode, displaycolorModeWarning, displayRasterEffect, displayPreviewMode, displayColorDepth, orientation, numArtboards, minArtboards, maxArtboards, updateDimensionUnit, updateWidth, updateHeight, toggleOrientation, updateArtboards, updateColorMode, updateEncoding, displayColorModes, bleedValues, lockBleed, updateBleedValues, updateBleedLock, updateRasterEffects, updatePreviewModes, minBleed, maxBleed, stepBleed, shiftMultiplierBleed, shiftMultiplierArtboards, secondaryMultiplierBleed, pointsPerInch, picasPerInch, } = activeDocumentTemplate || {};
        const advancedOptionsPanelClass = [
            {
                [AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsPanel']]: !this
                    ._collapsibleController.advancedSettingsCollapsed,
            },
        ];
        const advancedOptionsSummaryClass = AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsSummary'];
        const advancedOptionsSummarySpanClass = AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsSummary-span'];
        const moreSettingsPanelClass = AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-moreSettingsPanel'];
        const moreSettingsButtonClass = AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-moreSettingsPanel-button'];
        const defaults = (defaultSettings && defaultSettings.defaultPresetSettings) || {};
        const unitConvertConfig = {
            pointsPerInch,
            picasPerInch,
        };
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(width_panel_WidthPanel, { id: CMDN_SIDEBAR_WIDTH_PANEL, dimensionsId: CMDN_SIDEBAR_DOCUMENT_DIMENSIONS, value: width, min: displayMinDocWidth, max: displayMaxDocWidth, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaults.width, unitsValue: units, units: defaultSettings &&
                    defaultSettings.units &&
                    defaultSettings.units.filter(unit => unit !== 'columnsUnit'), unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, wideNumberInputs: true, defaultUnitsValue: defaultSettings && defaultSettings.defaultUnits, onUnitChange: newUnit => updateDimensionUnit(newUnit), onChange: value => updateWidth(value), analytics: analytics }),
            react_default.a.createElement(HeightRowPanel_HeightRowPanel, { id: CMDN_SIDEBAR_HEIGHT_ROW_PANEL, value: height, min: displayMinDocHeight, max: displayMaxDocHeight, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaults.height, orientation: orientation, defaultOrientation: defaults.orientation, artboardsCount: numArtboards, minArtboards: minArtboards, maxArtboards: maxArtboards, stepArtboards: 1, shiftMultiplierArtboards: shiftMultiplierArtboards, defaultArtboardsCount: 1, wideNumberInputs: true, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, onOrientationChange: value => toggleOrientation(value), onArtboardsChange: value => updateArtboards(value), onChange: value => updateHeight(value), analytics: analytics }),
            react_default.a.createElement(components_linked_number_inputs_LinkedNumberInputs, { id: CMDN_SIDEBAR_BLEED_PANEL, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bleed" }), labelTopLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_top" }), labelTopRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bottom" }), labelBottomLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_left" }), labelBottomRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_right" }), lock: lockBleed, values: bleedValues, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, min: minBleed, max: maxBleed, step: stepBleed, fastStepMultiplier: shiftMultiplierBleed, slowStepMultiplier: secondaryMultiplierBleed, wideNumberInputs: true, onUpdate: updateBleedValues, onLockClick: updateBleedLock, logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('bleed'), logLinkInputsButtonAnalytics: () => analytics.logPresetDetailsInteraction('bleed-link-inputs') }),
            react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_button_customize" }), headerId: CMDN_SIDEBAR_ADVANCED_SETTINGS, titleClassName: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsPanel-title'], collapsible: true, open: !this._collapsibleController.advancedSettingsCollapsed, onToggle: this.toggleAdvancedSettings, className: classnames_default()(advancedOptionsPanelClass) },
                react_default.a.createElement(components_flex_FlexItem, { className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsPanel-ColorModePanel-container'] },
                    react_default.a.createElement("div", { className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-FlexItem-ColorModePanel-component'] },
                        react_default.a.createElement(components_color_mode_panel_ColorModePanel, { value: displayColorMode, defaultValue: defaults.mode, hasDepth: false, titleClassName: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-FlexItem-ColorModePanel-title'], depth: displayColorDepth, defaultDepth: defaults.depth, onChange: value => {
                                updateColorMode(value.mode);
                            }, onEncodingChange: value => updateEncoding(value), colorModes: displayColorModes, analytics: analytics })),
                    displaycolorModeWarning && (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "left", delayShow: 800 },
                        react_default.a.createElement("div", { className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-FlexItem-ColorModelPanel-warning-wrapper'] },
                            react_default.a.createElement(Alert_default.a, { id: CMDN_SIDEBAR_WARNING_COLOR_MODE })),
                        react_default.a.createElement(Tooltip_default.a, { variant: "inspect" },
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_ai_colormode_warning" }))))),
                react_default.a.createElement(components_select_option_panel_SelectOptionPanel, { id: CMDN_SIDEBAR_RASTER_EFFECTS_PANEL, value: displayRasterEffect, defaultValue: defaults.rasterEffectSettings, label: "newdoc_details_rastermode", className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsPanel-item'], titleLabel: "newdoc_details_label_rasterEffects", onChange: value => updateRasterEffects(value.value), optionsData: displayRasterEffectList, logAnalytics: () => analytics.logPresetDetailsInteraction('raster-effects') }),
                react_default.a.createElement(components_select_option_panel_SelectOptionPanel, { id: CMDN_SIDEBAR_PREVIEW_MODE_SELECT, value: displayPreviewMode, defaultValue: defaults.previewMode, label: "newdoc_details_previewmode", titleLabel: "newdoc_details_label_previewMode", className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-advancedOptionsPanel-item'], onChange: value => updatePreviewModes(value.value), optionsData: displayPreviewModes, logAnalytics: () => analytics.logPresetDetailsInteraction('preview-mode') })),
            this._collapsibleController.advancedSettingsCollapsed && (react_default.a.createElement(Panel_Panel, { className: classnames_default()(advancedOptionsSummaryClass) },
                react_default.a.createElement(FlexContainer_FlexContainer, null,
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_colormode" }),
                    ":",
                    react_default.a.createElement("span", { className: classnames_default()(advancedOptionsSummarySpanClass) },
                        displayColorMode,
                        ","),
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_ppi" }),
                    react_default.a.createElement("span", { className: classnames_default()(advancedOptionsSummarySpanClass) }, displayRasterEffect)))),
            react_default.a.createElement(Panel_Panel, { className: classnames_default()(moreSettingsPanelClass), onKeyDown: this.onKeyDownMoreSettings },
                react_default.a.createElement(Button_default.a, { id: CMDN_SIDEBAR_MORE_SETTINGS_BUTTON, className: classnames_default()(moreSettingsButtonClass), key: "more", variant: "action", onClick: this.openMoreSettings },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_button_customize_ai" })))));
    }
    setupLearnMoreLinkLocale(language) {
        // languages that lead to 404 page so let them fallback to english
        const fallbackToEnglish = ['en', 'fi', 'nb'];
        // languages that uses the same url for all regions
        const omitRegion = ['es', 'fr'];
        const languageCode = language.substring(0, 2);
        if (fallbackToEnglish.indexOf(languageCode) !== -1) {
            return '';
        }
        if (omitRegion.indexOf(languageCode) !== -1) {
            return `_${languageCode}`;
        }
        return `_${language.substring(3, 5).toLowerCase()}`;
    }
    get footerWarning() {
        const { store } = this.props;
        const { activeDocumentTemplate, language } = store;
        const { fittingIsValid } = activeDocumentTemplate || {};
        let largeCanvasWarningText = 'newdoc_ai_largecanvas_warning';
        let warning;
        const learnMoreUrl = `https://adobe.com/go/ai_learn_more_large_canvas${this.setupLearnMoreLinkLocale(language)}`;
        if (!fittingIsValid) {
            const { layoutChangeCouldMakeFittingValid } = activeDocumentTemplate || {};
            if (layoutChangeCouldMakeFittingValid) {
                largeCanvasWarningText = 'newdoc_ai_layoutchange_warning';
            }
        }
        if (activeDocumentTemplate && !fittingIsValid) {
            warning = (react_default.a.createElement(FlexContainer_FlexContainer, { className: AiPropertiesPanelContainer_default.a['cmdn-AiPropertiesPanel-FlexItem-LargeCanvas-Text'] },
                react_default.a.createElement("span", null,
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: largeCanvasWarningText })),
                react_default.a.createElement("span", null,
                    react_default.a.createElement(Link_default.a, { href: learnMoreUrl, target: "_blank", variant: "quiet" },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_ai_largecanvas_learn_more" })))));
        }
        return warning;
    }
    render() {
        return (react_default.a.createElement(PropertiesPanelContainerBase_ObservedClass, Object.assign({}, this.props, { content: this.content, footerWarning: this.footerWarning })));
    }
}
const AiPropertiesPanelContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(AiPropertiesPanelContainer_AiPropertiesPanelContainer, {});
const AiPropertiesPanelContainer_ObservedClass = Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(AiPropertiesPanelContainer_DecoratedClass)));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/separator/Separator.css
var separator_Separator = __webpack_require__("jjTx");
var Separator_default = /*#__PURE__*/__webpack_require__.n(separator_Separator);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/separator/Separator.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class Separator_Separator extends react["Component"] {
    render() {
        return (react_default.a.createElement(Panel_Panel, { className: Separator_default.a['cmdn-Separator-Panel'] },
            react_default.a.createElement("div", { className: Separator_default.a['cmdn-Separator-line'] })));
    }
}
/* harmony default export */ var components_separator_Separator = (Separator_Separator);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/id-properties-panel-container/IdPropertiesPanelContainer.css
var id_properties_panel_container_IdPropertiesPanelContainer = __webpack_require__("bJhz");
var IdPropertiesPanelContainer_default = /*#__PURE__*/__webpack_require__.n(id_properties_panel_container_IdPropertiesPanelContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/id-properties-panel-container/IdPropertiesPanelContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
























/**
 * Decorator for the Properties Panel container.
 */
class IdPropertiesPanelContainer_IdPropertiesPanelContainer extends react["Component"] {
    constructor(props) {
        super(props);
        this._collapsibleController = new controllers_SidebarCollapsiblePanelController();
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.pagesNumberInput = react_default.a.createRef();
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.startNumberInput = react_default.a.createRef();
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.columnsInput = react_default.a.createRef();
        /** Reference to the underlying NumberInput, used to have access to the underlying API. */
        this.columnGutterInput = react_default.a.createRef();
        this.toggleBleedAndSlug = this.toggleBleedAndSlug.bind(this);
        this.togglePreviewModeFlag = this.togglePreviewModeFlag.bind(this);
        this.toggleMargins = this.toggleMargins.bind(this);
        this.onScrubbyValuesStart = this.onScrubbyValuesStart.bind(this);
        this.onScrubbyValuePages = this.onScrubbyValuePages.bind(this);
        this.onScrubbyValuesColumns = this.onScrubbyValuesColumns.bind(this);
        this.onScrubbyValuesColumnGutter = this.onScrubbyValuesColumnGutter.bind(this);
        this.onCreate = this.onCreate.bind(this);
        this.updatePreviewDoc = this.updatePreviewDoc.bind(this);
        this.updateDocumentName = this.updateDocumentName.bind(this);
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValuePages(direction, fastModifier, slowModifier) {
        if (this.pagesNumberInput.current) {
            this.pagesNumberInput.current.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValuesStart(direction, fastModifier, slowModifier) {
        if (this.startNumberInput.current) {
            this.startNumberInput.current.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValuesColumns(direction, fastModifier, slowModifier) {
        if (this.columnsInput.current) {
            this.columnsInput.current.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    /**
     * Handles the scrubby value. It increase or decreases the value based on the direction of the movement.
     *
     * @param direction Direction of the movement. A positive number indicates an increase, a negative number a decrease, and 0 no change.
     * @param fastModifier Whether the fast modifier has been pressed.
     * @param slowModifier Whether the slow modifier has been pressed.
     */
    onScrubbyValuesColumnGutter(direction, fastModifier, slowModifier) {
        if (this.columnGutterInput.current) {
            this.columnGutterInput.current.onScrubbyValue(direction, fastModifier, slowModifier);
        }
    }
    /**
     * Toggles PreviewModeEnable feature flag.
     */
    async togglePreviewModeFlag() {
        const { store } = this.props;
        const { analytics, previewModeEnabled, activeDocumentTemplate } = store;
        const newPreviewValue = !previewModeEnabled;
        // set current checkbox value for immediate responsivness
        store.updatePreviewModeEnabled(newPreviewValue);
        // make request to update previewModeEnabled
        await hosts["a" /* default */].updateIsPreviewEnabled(newPreviewValue);
        // reload checkbox state in the sidebar
        await store.getPreviewModeEnabledFromHost();
        // update value into the model
        activeDocumentTemplate && activeDocumentTemplate.updatePreviewModeEnabled(newPreviewValue);
        // store the Ingest event
        const ingestData = {
            previewModeEnabled: newPreviewValue,
            settings: {},
        };
        analytics.logFNFTActionClickedEvent('preview-mode-flag', ingestData);
    }
    /**
     * Toggles toggleBleedAndSlug.
     */
    toggleBleedAndSlug() {
        const { store } = this.props;
        const { analytics } = store;
        if (this._collapsibleController) {
            this._collapsibleController.bleedAndSlugCollapsed = !this._collapsibleController.bleedAndSlugCollapsed;
        }
        const originalPreset = store.originalPreset || {};
        // snap the original model, since the JSON returned by mobx is read-only
        const activeDocumentTemplate = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(store.activeDocumentTemplate)
            ? Object(mobx_state_tree_module["f" /* getSnapshot */])(store.activeDocumentTemplate)
            : store.activeDocumentTemplate;
        if (this._collapsibleController) {
            // store the Ingest event
            const ingestData = {
                bleedAndSlugCollapsed: this._collapsibleController.bleedAndSlugCollapsed,
                settings: {},
            };
            Object.assign(ingestData, originalPreset);
            Object.assign(ingestData.settings, activeDocumentTemplate);
            analytics.logFNFTActionClickedEvent('bleed-and-slug', ingestData);
        }
    }
    toggleMargins() {
        const { store } = this.props;
        const { analytics } = store;
        if (this._collapsibleController) {
            this._collapsibleController.marginsCollapsed = !this._collapsibleController.marginsCollapsed;
        }
        const originalPreset = store.originalPreset || {};
        // snap the original model, since the JSON returned by mobx is read-only
        const activeDocumentTemplate = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(store.activeDocumentTemplate)
            ? Object(mobx_state_tree_module["f" /* getSnapshot */])(store.activeDocumentTemplate)
            : store.activeDocumentTemplate;
        if (this._collapsibleController) {
            // store the Ingest event
            const ingestData = {
                marginsCollapsed: this._collapsibleController.marginsCollapsed,
                settings: {},
            };
            Object.assign(ingestData, originalPreset);
            Object.assign(ingestData.settings, activeDocumentTemplate);
            analytics.logFNFTActionClickedEvent('margins', ingestData);
        }
    }
    updateDocumentName(value) {
        const { store } = this.props;
        store.documentName = Object(PlatformUtils["i" /* sanitizeDocumentName */])(value);
    }
    async updatePreviewDoc() {
        const { store } = this.props;
        const { previewModeEnabled } = store;
        previewModeEnabled && (await store.updatePreviewDocSettings());
    }
    updatePreviewableProperty(updateFn) {
        const { store } = this.props;
        return async (...params) => {
            await updateFn(...params);
            const { previewModeEnabled } = store;
            previewModeEnabled && (await this.updatePreviewDoc());
        };
    }
    get content() {
        const { store } = this.props;
        const { activeDocumentTemplate, defaultSettings, isJapaneseEnabled, isBindingEnabled, analytics } = store;
        const userLocaleDecimal = defaultSettings && defaultSettings.userLocaleDecimal ? defaultSettings.userLocaleDecimal : '.';
        const { width, height, displayMaxDocWidth, displayMaxDocHeight, displayMinDocWidth, displayMinDocHeight, docStep, fastStepMultiplier, slowStepMultiplier, units, unitInfo, orientation, updateWidth, updateHeight, updateDimensionUnit, toggleOrientation, bleedValues, slugValues, lockBleed, lockSlug, updateBleedValues, updateSlugValues, updateBleedLock, updateSlugLock, minBleed, minSlug, maxBleed, maxSlug, pointsPerInch, picasPerInch, lockMargins, marginsValues, updateMarginsLock, updateMarginsValues, minMargins, maxMargins, facingPages, pageCount, numPagesBoundMin, numPagesBoundMax, updateNumPages, updateFacingPages, columns, colNumBoundMin, colNumBoundMax, updateColumns, gutter, minColGutter, colGutterBoundMax, updateGutter, startPageNum, startPageBoundMin, startPageBoundMax, updateStartPageNum, autoTextFrame, updateAutoTextFrame, pageBinding, updatePageBinding, dialogToolTips, } = activeDocumentTemplate || {};
        const { tipChainValues, tipBleed, tipSlug, bindingText, tipLandscape, tipPotrait, tipLeftToRight, tipRightToLeft, } = dialogToolTips || {};
        const defaults = (defaultSettings && defaultSettings.defaultPresetSettings) || {};
        const unitConvertConfig = {
            pointsPerInch,
            picasPerInch,
        };
        const labelBottomLeft = facingPages ? 'newdoc_details_label_inside' : 'newdoc_details_label_left';
        const labelBottomRight = facingPages ? 'newdoc_details_label_outside' : 'newdoc_details_label_right';
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(width_panel_WidthPanel, { id: CMDN_SIDEBAR_WIDTH_PANEL, dimensionsId: CMDN_SIDEBAR_DOCUMENT_DIMENSIONS, value: width, min: displayMinDocWidth, max: displayMaxDocWidth, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaults.width, unitsValue: units, units: defaultSettings &&
                    defaultSettings.units &&
                    defaultSettings.units.filter(unit => unit !== 'columnsUnit'), unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, wideNumberInputs: true, defaultUnitsValue: defaultSettings && defaultSettings.defaultUnits, onUnitChange: newUnit => this.updatePreviewableProperty(updateDimensionUnit)(newUnit), onChange: value => this.updatePreviewableProperty(updateWidth)(value), hasArrows: true, unitsTitle: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_unit" }), widthClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-WidthPanel-dimension'], analytics: analytics }),
            react_default.a.createElement(HeightRowPanel_HeightRowPanel, { id: CMDN_SIDEBAR_HEIGHT_ROW_PANEL, value: height, min: displayMinDocHeight, max: displayMaxDocHeight, step: docStep, heightClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, userLocaleDecimal: userLocaleDecimal, defaultValue: defaults.height, orientation: orientation, defaultOrientation: defaults.orientation, stepArtboards: 1, wideNumberInputs: true, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, isBindingEnabled: isBindingEnabled, isJapaneseEnabled: isJapaneseEnabled, binding: pageBinding, bindingTitle: bindingText, onBindingChange: updatePageBinding, onOrientationChange: value => this.updatePreviewableProperty(toggleOrientation)(value), onChange: value => this.updatePreviewableProperty(updateHeight)(value), orientationLandscapeTooltip: tipLandscape, orientationPortraitTooltip: tipPotrait, bindLeftToRight: tipLeftToRight, bindRightToLeft: tipRightToLeft, hasArrows: true, analytics: analytics }),
            react_default.a.createElement(Panel_Panel, null,
                react_default.a.createElement(FlexContainer_FlexContainer, null,
                    react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-FlexItem-first'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                        react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_pages" }), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-firstColumnTitle'], onScrubbyValue: this.onScrubbyValuePages, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('pages') },
                            react_default.a.createElement(NumberInput_NumberInput, { id: CMDN_SIDEBAR_PAGES, ref: this.pagesNumberInput, className: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], value: pageCount, min: numPagesBoundMin, max: numPagesBoundMax, step: 1, fastStepMultiplier: 10, needsSnapToStep: true, userLocaleDecimal: userLocaleDecimal, defaultValue: numPagesBoundMin, onChange: value => this.updatePreviewableProperty(updateNumPages)(value), wide: true, useSimpleInvalidIndicator: true, allowSpecialCharacters: true, logAnalytics: () => analytics.logPresetDetailsInteraction('pages') }))),
                    react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                        react_default.a.createElement(CheckboxPanel_CheckboxPanel, { id: CMDN_SIDEBAR_FACING_PAGES_CHECKBOX_PANEL, value: facingPages, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_Facing" }), defaultValue: false, titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-secondColumnTitle'], onChange: (...params) => {
                                const updateFunction = this.updatePreviewableProperty(updateFacingPages);
                                updateFunction(...params);
                                analytics.logPresetDetailsInteraction('facing-pages');
                            } })))),
            react_default.a.createElement(Panel_Panel, null,
                react_default.a.createElement(FlexContainer_FlexContainer, null,
                    react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-FlexItem-first'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                        react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_StartPage" }), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-firstColumnTitle'], onScrubbyValue: this.onScrubbyValuesStart, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('start-page') },
                            react_default.a.createElement(NumberInput_NumberInput, { id: CMDN_SIDEBAR_START, ref: this.startNumberInput, className: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], value: startPageNum, min: startPageBoundMin, max: startPageBoundMax, step: 1, fastStepMultiplier: 10, needsSnapToStep: true, userLocaleDecimal: userLocaleDecimal, defaultValue: startPageBoundMin, onChange: value => this.updatePreviewableProperty(updateStartPageNum)(value), wide: true, useSimpleInvalidIndicator: true, allowSpecialCharacters: true, logAnalytics: () => analytics.logPresetDetailsInteraction('start-page') }))),
                    react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                        react_default.a.createElement(CheckboxPanel_CheckboxPanel, { value: autoTextFrame, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_TextFrame" }), defaultValue: false, titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-secondColumnTitle'], onChange: (...params) => {
                                const updateFunction = this.updatePreviewableProperty(updateAutoTextFrame);
                                updateFunction(...params);
                                analytics.logPresetDetailsInteraction('primary-text-frame');
                            } })))),
            !isJapaneseEnabled && (react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(components_separator_Separator, null),
                react_default.a.createElement(Panel_Panel, null,
                    react_default.a.createElement(FlexContainer_FlexContainer, null,
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-FlexItem-first'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                            react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_ColNumber" }), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-firstColumnTitle'], onScrubbyValue: this.onScrubbyValuesColumns, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('columns') },
                                react_default.a.createElement(NumberInput_NumberInput, { id: CMDN_SIDEBAR_COLUMNS_PANEL, ref: this.columnsInput, className: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], value: columns, min: colNumBoundMin, max: colNumBoundMax, step: 1, fastStepMultiplier: 4, userLocaleDecimal: userLocaleDecimal, defaultValue: colNumBoundMin, onChange: value => this.updatePreviewableProperty(updateColumns)(value), wide: true, useSimpleInvalidIndicator: true, hasArrows: true, allowSpecialCharacters: true, logAnalytics: () => analytics.logPresetDetailsInteraction('columns') }))),
                        react_default.a.createElement(components_flex_FlexItem, { className: classnames_default()(IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-HeightPanel-dimension'], IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-justifyEnd']) },
                            react_default.a.createElement(Panel_Panel, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_ColGutter" }), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-firstColumnTitle'], onScrubbyValue: this.onScrubbyValuesColumnGutter, logScrubbyValueAnalytics: () => analytics.logPresetDetailsInteraction('column-gutter') },
                                react_default.a.createElement(unit_number_input_UnitNumberInput, { id: CMDN_SIDEBAR_COLUMNS_GUTTER_PANEL, ref: this.columnGutterInput, className: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], value: gutter, min: minColGutter, max: colGutterBoundMax, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, needsSnapToStep: true, userLocaleDecimal: userLocaleDecimal, defaultValue: minColGutter, onChange: value => this.updatePreviewableProperty(updateGutter)(value), wide: true, useSimpleInvalidIndicator: true, hasArrows: true, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, logAnalytics: () => analytics.logPresetDetailsInteraction('column-gutter') }))))),
                react_default.a.createElement(components_separator_Separator, null),
                react_default.a.createElement(Panel_Panel, { headerId: CMDN_SIDEBAR_MARGINS, className: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-marginsPanel'], title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_Margins" }), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-marginsPanel-title'], collapsible: true, open: this._collapsibleController ? !this._collapsibleController.marginsCollapsed : false, onToggle: this.toggleMargins },
                    react_default.a.createElement(components_linked_number_inputs_LinkedNumberInputs, { id: CMDN_SIDEBAR_MARGINS, linkButtonTooltip: tipChainValues, labelTopLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_top" }), labelTopRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bottom" }), labelBottomLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomLeft }), labelBottomRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomRight }), lock: lockMargins, userLocaleDecimal: userLocaleDecimal, values: marginsValues, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, min: minMargins, max: maxMargins, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, wideNumberInputs: true, onUpdate: this.updatePreviewableProperty(updateMarginsValues), onLockClick: this.updatePreviewableProperty(updateMarginsLock), numberInputClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('margin'), logLinkInputsButtonAnalytics: () => analytics.logPresetDetailsInteraction('margin-link-inputs') })))),
            react_default.a.createElement(components_separator_Separator, null),
            react_default.a.createElement(Panel_Panel, { headerId: CMDN_SIDEBAR_BLEED_AND_SLUG, className: classnames_default()([
                    IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-bleedAndSlugPanel'],
                    {
                        [IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-bleedAndSlugPanel-japanese']]: isJapaneseEnabled,
                    },
                ]), titleClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-bleedAndSlugPanel-title'], title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_button_customize_id" }), collapsible: true, open: this._collapsibleController ? !this._collapsibleController.bleedAndSlugCollapsed : false, onToggle: this.toggleBleedAndSlug },
                react_default.a.createElement(components_linked_number_inputs_LinkedNumberInputs, { id: CMDN_SIDEBAR_BLEED_PANEL, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bleed" }), linkButtonTooltip: tipChainValues, panelGroupTitleTooltip: tipBleed, labelTopLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_top" }), labelTopRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bottom" }), labelBottomLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomLeft }), labelBottomRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomRight }), lock: lockBleed, userLocaleDecimal: userLocaleDecimal, values: bleedValues, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, min: minBleed, max: maxBleed, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, wideNumberInputs: true, onUpdate: this.updatePreviewableProperty(updateBleedValues), onLockClick: this.updatePreviewableProperty(updateBleedLock), numberInputClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('bleed'), logLinkInputsButtonAnalytics: () => analytics.logPresetDetailsInteraction('bleed-link-inputs') }),
                react_default.a.createElement(components_linked_number_inputs_LinkedNumberInputs, { id: CMDN_SIDEBAR_SLUG_PANEL, title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_slug" }), linkButtonTooltip: tipChainValues, panelGroupTitleTooltip: tipSlug, labelTopLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_top" }), labelTopRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_details_label_bottom" }), labelBottomLeft: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomLeft }), labelBottomRight: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: labelBottomRight }), lock: lockSlug, userLocaleDecimal: userLocaleDecimal, values: slugValues, unitsValue: units, unitInfo: unitInfo, unitConvertConfig: unitConvertConfig, min: minSlug, max: maxSlug, step: docStep, fastStepMultiplier: fastStepMultiplier, slowStepMultiplier: slowStepMultiplier, wideNumberInputs: true, onUpdate: this.updatePreviewableProperty(updateSlugValues), onLockClick: this.updatePreviewableProperty(updateSlugLock), numberInputClassName: IdPropertiesPanelContainer_default.a['cmdn-IdPropertiesPanel-NumberInput'], logNumberInputAnalytics: () => analytics.logPresetDetailsInteraction('slug'), logLinkInputsButtonAnalytics: () => analytics.logPresetDetailsInteraction('slug-link-inputs') }))));
    }
    get docPresetTooltip() {
        const { store } = this.props;
        const { defaultSettings } = store;
        const dialogTooltips = defaultSettings && defaultSettings.dialogToolTips;
        const docPresetTips = dialogTooltips && dialogTooltips.tipDocPreset;
        return docPresetTips;
    }
    get savePresetButtonTooltip() {
        const { store } = this.props;
        const { defaultSettings } = store;
        const dialogTooltips = defaultSettings && defaultSettings.dialogToolTips;
        const docPresetTips = dialogTooltips && dialogTooltips.tipSavePreset;
        return docPresetTips;
    }
    /**
     * Adds custom behaviour onCreate, will be called before the common onCreate method is called. In this case, it will
     * update the active document jp_cod_type field if Japanese is enabled.
     *
     * @param isSecondaryAction Whether the create operation was called by activating the secondary action button or not.
     */
    async onCreate(isSecondaryAction) {
        const { store } = this.props;
        const { isJapaneseEnabled, activeDocumentTemplate } = store;
        const activeDocument = activeDocumentTemplate;
        if (isJapaneseEnabled) {
            if (isSecondaryAction) {
                activeDocument.updateJpDocType('margin');
            }
            else {
                activeDocument.updateJpDocType('layout');
            }
        }
    }
    render() {
        const { store } = this.props;
        const { previewModeEnabled, activeDocumentTemplate, isJapaneseEnabled, isWindowsOS, language } = store;
        const { dialogToolTips, jpLastDocType } = activeDocumentTemplate || {};
        const { layoutGridBtnText, marginBtnText, previewText } = dialogToolTips || {};
        // this is how it's made in CEP too, in english we get the data like this: "Preview"
        // this needs to be disable when isJapaneseEnabled is true
        const previewLabel = !isJapaneseEnabled && previewText && previewText.replace(/\s/g, '').replace('&', '');
        const isKoreanWin = isWindowsOS && language === 'ko-KR';
        return (react_default.a.createElement(PropertiesPanelContainerBase_ObservedClass, Object.assign({}, this.props, { content: this.content, hasSavePreset: true, savePresetButtonTooltip: this.savePresetButtonTooltip, presetNameField: "title", docPresetTooltip: this.docPresetTooltip, previewModeEnabled: previewModeEnabled, previewLabel: previewLabel, previewChangeHandler: async () => {
                await this.togglePreviewModeFlag();
                await this.updatePreviewDoc();
            }, documentNameChangeHandler: this.updatePreviewableProperty(this.updateDocumentName), hasSecondAction: isJapaneseEnabled, highlightSecondAction: jpLastDocType === 'margin', actionLabel: isJapaneseEnabled && react_default.a.createElement("span", null, layoutGridBtnText), secondActionLabel: isJapaneseEnabled && react_default.a.createElement("span", null, marginBtnText), smallActionFont: isKoreanWin, onCreate: this.onCreate })));
    }
}
const IdPropertiesPanelContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(IdPropertiesPanelContainer_IdPropertiesPanelContainer, {});
const IdPropertiesPanelContainer_ObservedClass = Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(IdPropertiesPanelContainer_DecoratedClass)));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/sidebar-container/SidebarContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/












class SidebarContainer_SidebarContainer extends react["Component"] {
    render() {
        const { store } = this.props;
        const { activeDocumentTemplate } = store;
        const hostName = Object(PlatformUtils["d" /* getHostName */])();
        const isIllustrator = hostName === HostNames["a" /* default */].ILLUSTRATOR;
        const isInDesign = hostName === HostNames["a" /* default */].INDESIGN;
        if (activeDocumentTemplate && activeDocumentTemplate.kind === DocumentTemplateKind["a" /* default */].TEMPLATE) {
            return react_default.a.createElement(ObservedClass, { id: CMDN_SIDEBAR_TEMPLATE_CONTAINER });
        }
        if (isIllustrator) {
            return react_default.a.createElement(AiPropertiesPanelContainer_ObservedClass, { id: CMDN_SIDEBAR_PROPERTIES_CONTAINER });
        }
        if (isInDesign) {
            return react_default.a.createElement(IdPropertiesPanelContainer_ObservedClass, { id: CMDN_SIDEBAR_PROPERTIES_CONTAINER });
        }
        return react_default.a.createElement(PsPropertiesPanelContainer_ObservedClass, { id: CMDN_SIDEBAR_PROPERTIES_CONTAINER });
    }
}
const SidebarContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(SidebarContainer_SidebarContainer, {});
const SidebarContainer_ObservedClass = Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(SidebarContainer_DecoratedClass));


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Search/index.js
var dist_Search = __webpack_require__("Q5XD");
var Search_default = /*#__PURE__*/__webpack_require__.n(dist_Search);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/search/SearchFlipped.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

// the React Spectrum Magnify icon, flipped horizontally, to match the one in AI Windows -> Color Themes -> Explore
function SearchFlipped({ id }) {
    return (react_default.a.createElement("svg", { id: id, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 36 36", focusable: "false", "aria-hidden": "true", role: "img", className: "spectrum-Icon spectrum-Icon--sizeS" },
        react_default.a.createElement("g", { transform: "translate(36, 0) scale(-1,1)" },
            react_default.a.createElement("path", { d: "M21 2a12.986 12.986 0 0 0-10.578 20.538L.662 32.3a2.066 2.066 0 0 0 .106 2.934 2.066 2.066 0 0 0 2.934.105l9.76-9.76A13 13 0 1 0 21 2zm0 22a9 9 0 1 1 9-9 9 9 0 0 1-9 9z" }))));
}
/* harmony default export */ var search_SearchFlipped = (SearchFlipped);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/search/Search.css
var search_Search = __webpack_require__("nguE");
var search_Search_default = /*#__PURE__*/__webpack_require__.n(search_Search);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/search/Search.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_STOCK_ICON = 'cmdn-stock-icon';
const CMDN_STOCK_INPUT = 'cmdn-stock-input';
const CMDN_STOCK_BUTTON = 'cmdn-stock-button';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/search/Search.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/











class Search_Search extends react["Component"] {
    constructor() {
        super(...arguments);
        this._textfieldRef = react_default.a.createRef();
    }
    /**
     * Handles the search action.
     *
     * @param event The event to handle.
     */
    onSearch(event) {
        this.props.onSearch && this.props.onSearch(this.props.value);
    }
    /**
     * Handles the change of value.
     *
     * @param value New value.
     * @param event Event that triggered the change.
     */
    onValueChange(value, event) {
        if (typeof this.props.onChange === 'function') {
            this.props.onChange(value, event);
        }
    }
    /**
     * Handles the Textfield keyDown event.
     *
     * @param event The keyboard event to handle.
     */
    onKeyDown(event) {
        if (event.key === 'Enter') {
            this.onSearch(event);
        }
        if (event.key === 'Escape') {
            // The result is that the first escape blurs the text input, the second closes the dialog
            // @todo: this violates internal implementation
            if (Object(PlatformUtils["f" /* isUXP */])()) {
                this._textfieldRef.current && this._textfieldRef.current.inputContainer.blur();
            }
            else {
                this._textfieldRef.current && this._textfieldRef.current.blur();
            }
        }
    }
    render() {
        const { quiet, placeholder, label, value, disableNativeControls } = this.props;
        const isIllustrator = Object(PlatformUtils["d" /* getHostName */])() === HostNames["a" /* default */].ILLUSTRATOR;
        const IconElement = isIllustrator ? search_SearchFlipped : Search_default.a;
        // At the time of writing only Illustrator Win supports this feature
        // Fixes this issue: https://jira.corp.adobe.com/browse/FMNEXT-1947
        const isFontSizeEditable = Object(PlatformUtils["g" /* isWindowsOS */])() && isIllustrator;
        const classes = classnames_default()(search_Search_default.a['cmdn-SearchField'], { [search_Search_default.a['cmdn-SearchField-AsSpan']]: disableNativeControls }, { [search_Search_default.a['cmdn-SearchField-AsSpan-wPlaceholder']]: disableNativeControls && !value });
        const searchInputClass = classnames_default()(search_Search_default.a['cmdn-SearchField'], {
            [search_Search_default.a['cmdn-SearchField-font-size-editable']]: isFontSizeEditable,
        });
        return (react_default.a.createElement(FlexContainer_FlexContainer, { className: search_Search_default.a['cmdn-SearchContainer'] },
            react_default.a.createElement(IconElement, { size: "S", id: CMDN_STOCK_ICON }),
            disableNativeControls ? (react_default.a.createElement("span", { className: classes }, value || placeholder)) : (react_default.a.createElement(Textfield_default.a, { id: CMDN_STOCK_INPUT, ref: this._textfieldRef, className: searchInputClass, defaultpreventedkeys: ['Escape'], quiet: quiet, value: value, onKeyDown: (event) => this.onKeyDown(event), onChange: (value, event) => this.onValueChange(value, event), placeholder: placeholder })),
            react_default.a.createElement(Button_default.a, { id: CMDN_STOCK_BUTTON, className: search_Search_default.a['cmdn-SearchAction'], onClick: (event) => this.onSearch(event) },
                react_default.a.createElement("span", null, label))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/search-container/SearchContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var SearchContainer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var SearchContainer_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};








let SearchContainer_SearchContainer = class SearchContainer extends react["Component"] {
    constructor() {
        super(...arguments);
        this.searchValue = '';
    }
    async onSearch() {
        const { activeView, analytics, searchBoxText } = this.props.store;
        const uri = await StockUtil["b" /* default */].openStockLink(hosts["a" /* default */].id, activeView, searchBoxText, analytics);
        const ingestData = {
            actionURL: uri,
            activeFilter: activeView,
            searchBoxText,
        };
        analytics.logFNFTActionClickedEvent('stock-search', ingestData);
    }
    render() {
        const { intl } = this.props;
        return (react_default.a.createElement(Search_Search, { label: intl.formatMessage({ id: 'go' }), quiet: true, value: this.props.store.searchBoxText, onChange: (value) => {
                this.props.store.searchBoxText = value;
            }, onSearch: () => this.onSearch(), placeholder: intl.formatMessage({ id: 'adobe_stock_find_more' }), disableNativeControls: this.props.store.disableNativeSearchBox }));
    }
};
SearchContainer_decorate([
    mobx_module["z" /* observable */],
    SearchContainer_metadata("design:type", Object)
], SearchContainer_SearchContainer.prototype, "searchValue", void 0);
SearchContainer_SearchContainer = SearchContainer_decorate([
    index_module["e" /* observer */]
], SearchContainer_SearchContainer);
/* harmony default export */ var search_container_SearchContainer = (Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(SearchContainer_SearchContainer)));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/Content.css
var src_Content = __webpack_require__("7cBP");
var Content_default = /*#__PURE__*/__webpack_require__.n(src_Content);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/Content.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Content_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};








let Content_Content = class Content extends react["Component"] {
    render() {
        const { children, store, ...rest } = this.props;
        const { activeModalView, isStockEnabled } = store;
        // When the download modal is shown, the scrollbars are displayed on top of it
        // so we just hide them when the modal is visible
        const contentClasses = classnames_default()(Content_default.a['cmdn-MainViewContainer'], {
            [Content_default.a['cmdn-MainViewContainer--noOverflow']]: activeModalView,
            [Content_default.a['cmdn-MainViewContainer--withSearch']]: isStockEnabled,
        });
        return (react_default.a.createElement("div", Object.assign({ className: Content_default.a['cmdn-MainViewWrapper'] }, rest),
            react_default.a.createElement("div", { className: classnames_default()([Content_default.a['cmdn-MainViewContent']], {
                    [Content_default.a['cmdn-MainViewContent-stockEnabled']]: isStockEnabled,
                }), ref: node => (this.props.store.boundariesElement = node) },
                react_default.a.createElement("div", { className: contentClasses }, children)),
            react_default.a.createElement("div", { className: Content_default.a['cmdn-MainViewSidebar'] },
                react_default.a.createElement(SidebarContainer_ObservedClass, null)),
            react_default.a.createElement(FeatureFlagRenderer_FeatureFlagRenderer, { featureFlags: [FeatureFlagController["b" /* FeatureFlags */].STOCK] },
                react_default.a.createElement(search_container_SearchContainer, null))));
    }
};
Content_Content = Content_decorate([
    index_module["e" /* observer */]
], Content_Content);


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Clock/index.js
var Clock = __webpack_require__("wWOq");
var Clock_default = /*#__PURE__*/__webpack_require__.n(Clock);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Close/index.js
var Close = __webpack_require__("eD7O");
var Close_default = /*#__PURE__*/__webpack_require__.n(Close);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/message-card/MessageCard.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_MESSAGE_CARD = 'cmdn-MessageCard';
const CMDN_MESSAGE_CARD_CLOSE = 'cmdn-MessageCard-Close';

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/message-card/MessageCard.css
var message_card_MessageCard = __webpack_require__("kGiI");
var MessageCard_default = /*#__PURE__*/__webpack_require__.n(message_card_MessageCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/message-card/MessageCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






class MessageCard_MessageCard extends react["Component"] {
    constructor(props) {
        super(props);
        this.state = {
            open: !!this.props.open,
        };
    }
    close() {
        this.setState({
            open: false,
        });
        this.props.onClose && this.props.onClose();
    }
    render() {
        if (!this.state.open) {
            return null;
        }
        const { title, children } = this.props;
        return (react_default.a.createElement("div", { className: MessageCard_default.a['cmdn-MessageCard'], id: CMDN_MESSAGE_CARD },
            react_default.a.createElement("div", { className: MessageCard_default.a['cmdn-MessageCard-Header'] },
                react_default.a.createElement(Button_default.a, { id: CMDN_MESSAGE_CARD_CLOSE, className: MessageCard_default.a['cmdn-MessageCard-Close'], icon: react_default.a.createElement(Close_default.a, { size: "S" }), quiet: true, variant: "action", onClick: () => this.close() })),
            react_default.a.createElement("div", { className: MessageCard_default.a['cmdn-MessageCard-Wrapper'] },
                react_default.a.createElement(Heading_default.a, { className: MessageCard_default.a['cmdn-MessageCard-Title'], variant: "pageTitle" }, title),
                react_default.a.createElement("div", { className: MessageCard_default.a['cmdn-MessageCard-Content'] }, children))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/message-card/MDMessageCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




class MDMessageCard_MDMessageCard extends react["Component"] {
    constructor(props) {
        super(props);
        this.handleAnchorKeyDown = this.handleAnchorKeyDown.bind(this);
    }
    handleAnchorClick(event) {
        if (event.target &&
            event.target.nodeName.toLowerCase() === 'a' &&
            event.target.hasAttribute('href') &&
            event.target.getAttribute('href').startsWith('#category=')) {
            const index = parseInt(event.target.getAttribute('href').replace('#category=', ''));
            if (index >= 0 && itemsOrder[index]) {
                event.preventDefault();
                event.stopPropagation();
                this.props.onViewChange && this.props.onViewChange(itemsOrder[index]);
            }
        }
    }
    handleAnchorKeyDown(event) {
        if (event.key === ' ' || event.key === 'Enter') {
            this.handleAnchorClick(event);
        }
    }
    render() {
        const { content, ...rest } = this.props;
        const messageHTML = marked_default()(content);
        return (react_default.a.createElement(MessageCard_MessageCard, Object.assign({}, rest),
            react_default.a.createElement("div", { 
                // eslint-disable-next-line react/no-danger
                dangerouslySetInnerHTML: { __html: messageHTML }, onClick: event => this.handleAnchorClick(event), onKeyDown: this.handleAnchorKeyDown })));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/recents-view-container/RecentsViewContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var RecentsViewContainer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};









let RecentsViewContainer_RecentsViewContainer = class RecentsViewContainer extends react["Component"] {
    componentDidMount() {
        const { store } = this.props;
        // Only set the default active template if it's blank (so the tab was switched)
        if (!store.activeDocumentTemplate) {
            store.setDefaultActiveDocumentTemplate();
        }
    }
    /**
     * Determines if the current view has templates.
     *
     * @returns True if the view has templates, otherwise false.
     */
    get hasTemplates() {
        const { store, viewId } = this.props;
        const templates = store.getTemplatesByCategoryType(viewId);
        return templates && templates.length > 0;
    }
    /**
     * The recents card message.
     *
     * @returns The element to render.
     */
    get recentsWelcome() {
        const id = this.hasTemplates
            ? 'newdoc_welcome_banner_content_recent_templates'
            : 'newdoc_welcome_banner_content_recent_no_templates';
        return (react_default.a.createElement(MDMessageCard_MDMessageCard, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_welcome_banner_recent_title" }), onClose: () => this.props.store.closeRecentsWelcome(), onViewChange: viewId => ((this.props.store.activeView = viewId), (this.props.store.forceFocus = true)), content: this.props.intl.formatMessage({ id }), open: true }));
    }
    render() {
        const { store, viewId, splitView, defaultPresetsCount, defaultTabTitleId } = this.props;
        // this array contains both templates and presets
        const items = store.getPresetsByCategoryType(viewId);
        const showDefaultTabTitle = !this.hasTemplates && items.length === defaultPresetsCount && !!defaultTabTitleId;
        const titleId = showDefaultTabTitle ? defaultTabTitleId : 'newdoc_your_recent_items';
        return (react_default.a.createElement(react_default.a.Fragment, null,
            store.shouldShowRecentsBanner && this.recentsWelcome,
            !splitView && (react_default.a.createElement(components_grid_view_GridView, { id: CMDN_GRID_MIXED, collapsible: false, containerSize: store.containerSize, elements: items, onItemDoubleClick: (item) => {
                    if (item.kind === DocumentTemplateKind["a" /* default */].TEMPLATE) {
                        Object(DocumentTemplateInteractionUtils["j" /* onTemplateDoubleClick */])(store, item);
                    }
                    else {
                        Object(DocumentTemplateInteractionUtils["i" /* onPresetDoubleClick */])(store);
                    }
                }, onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), selectedItem: store.activeDocumentTemplate, store: this.props.store, tallCards: true, title: titleId, onlyTitle: showDefaultTabTitle, forceFocus: store.forceFocus })),
            splitView && react_default.a.createElement(presets_grid_container_PresetsGridContainer, Object.assign({}, this.props))));
    }
};
RecentsViewContainer_RecentsViewContainer = RecentsViewContainer_decorate([
    index_module["e" /* observer */]
], RecentsViewContainer_RecentsViewContainer);
/* harmony default export */ var recents_view_container_RecentsViewContainer = (Object(index_es["g" /* injectIntl */])(RecentsViewContainer_RecentsViewContainer, { withRef: true }));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/saved-view-container/SavedViewContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var SavedViewContainer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};










let SavedViewContainer_SavedViewContainer = class SavedViewContainer extends react["Component"] {
    componentDidMount() {
        const { store } = this.props;
        // Only set the default active template if it's blank (so the tab was switched)
        if (!store.activeDocumentTemplate) {
            this.props.store.setDefaultActiveDocumentTemplate();
        }
    }
    /**
     * Determines if the current view has templates.
     *
     * @returns True if the view has templates, otherwise false.
     */
    get hasTemplates() {
        const { store, viewId } = this.props;
        const templates = store.getTemplatesByCategoryType(viewId);
        return !!(templates && templates.length > 0);
    }
    /**
     * Returns the message card. If the user has templates in the recents another message is shown.
     *
     * @returns The saved welcome banner to render.
     */
    get savedWelcome() {
        const hostName = Object(PlatformUtils["d" /* getHostName */])();
        let id;
        if (hostName === HostNames["a" /* default */].ILLUSTRATOR) {
            id = 'newdoc_welcome_banner_content_saved_templates_ai';
        }
        else {
            id = this.hasTemplates
                ? 'newdoc_welcome_banner_content_saved_templates'
                : 'newdoc_welcome_banner_content_saved_no_templates';
        }
        return (react_default.a.createElement(MDMessageCard_MDMessageCard, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_welcome_banner_saved_title" }), onClose: () => this.props.store.closeSavedWelcome(), onViewChange: viewId => ((this.props.store.activeView = viewId), (this.props.store.forceFocus = true)), content: this.props.intl.formatMessage({ id }), open: true }));
    }
    render() {
        const { store } = this.props;
        const viewId = store.activeView;
        const presets = store.getPresetsByCategoryType(viewId);
        const templates = store.getTemplatesByCategoryType(viewId);
        const hasTemplates = !!(templates && templates.length > 0);
        const hasPresets = !!(presets && presets.length > 0);
        const hasQuota = hosts["a" /* default */].userQuota > 0;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            store.shouldShowSavedBanner && !hasPresets && !hasTemplates && this.savedWelcome,
            hasPresets && (react_default.a.createElement(components_grid_view_GridView, { id: CMDN_GRID_PRESETS, 
                // TODO - revisit this - in theory it should be collapsible, but the behavior is weird when we're adding new saved items on the same tab
                collapsed: false, collapsible: hasTemplates, containerSize: store.containerSize, deletableItems: true, elements: presets, onItemDeleted: (item) => Object(DocumentTemplateInteractionUtils["h" /* onPresetDeleted */])(store, item), onItemDoubleClick: (item) => Object(DocumentTemplateInteractionUtils["i" /* onPresetDoubleClick */])(store), onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), selectedItem: store.activeDocumentTemplate, jumpToNextGrid: () => Object(DocumentTemplateInteractionUtils["f" /* jumpToTemplateGrid */])(store, viewId), store: this.props.store, tallCards: false, title: "newdoc_saved_blank_documents", forceFocus: store.forceFocus })),
            hasTemplates && hasQuota && (react_default.a.createElement(components_grid_view_GridView, { id: CMDN_GRID_TEMPLATES, collapsible: false, containerSize: store.containerSize, elements: templates, onItemDoubleClick: (item) => Object(DocumentTemplateInteractionUtils["j" /* onTemplateDoubleClick */])(store, item), onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), jumpToPreviousGrid: () => Object(DocumentTemplateInteractionUtils["d" /* jumpToPresetGrid */])(store, viewId), selectedItem: store.activeDocumentTemplate, store: this.props.store, tallCards: true, title: "listview_template_tab_label", forceFocus: store.forceFocus }))));
    }
};
SavedViewContainer_SavedViewContainer = SavedViewContainer_decorate([
    index_module["e" /* observer */]
], SavedViewContainer_SavedViewContainer);
/* harmony default export */ var saved_view_container_SavedViewContainer = (Object(index_es["g" /* injectIntl */])(SavedViewContainer_SavedViewContainer, { withRef: true }));

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/AppTabOrder.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const AppTabOrder = {
    [HostIds["a" /* default */].PHXS]: [
        DocumentTemplateCategoryTypes["a" /* default */].RECENT,
        DocumentTemplateCategoryTypes["a" /* default */].SAVED,
        DocumentTemplateCategoryTypes["a" /* default */].PHOTO,
        DocumentTemplateCategoryTypes["a" /* default */].PRINT,
        DocumentTemplateCategoryTypes["a" /* default */].ART,
        DocumentTemplateCategoryTypes["a" /* default */].WEB,
        DocumentTemplateCategoryTypes["a" /* default */].MOBILE,
        DocumentTemplateCategoryTypes["a" /* default */].FILM,
    ],
    [HostIds["a" /* default */].ILST]: [
        DocumentTemplateCategoryTypes["a" /* default */].RECENT,
        DocumentTemplateCategoryTypes["a" /* default */].SAVED,
        DocumentTemplateCategoryTypes["a" /* default */].MOBILE,
        DocumentTemplateCategoryTypes["a" /* default */].WEB,
        DocumentTemplateCategoryTypes["a" /* default */].PRINT,
        DocumentTemplateCategoryTypes["a" /* default */].FILM,
        DocumentTemplateCategoryTypes["a" /* default */].ART,
        DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES,
    ],
    [HostIds["a" /* default */].IDSN]: [
        DocumentTemplateCategoryTypes["a" /* default */].RECENT,
        DocumentTemplateCategoryTypes["a" /* default */].SAVED,
        DocumentTemplateCategoryTypes["a" /* default */].PRINT,
        DocumentTemplateCategoryTypes["a" /* default */].WEB,
        DocumentTemplateCategoryTypes["a" /* default */].MOBILE,
    ],
};

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/templates-grid-container/TemplatesGridContainer.css
var templates_grid_container_TemplatesGridContainer = __webpack_require__("F2DJ");
var TemplatesGridContainer_default = /*#__PURE__*/__webpack_require__.n(templates_grid_container_TemplatesGridContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/templates-grid-container/TemplatesGridContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var TemplatesGridContainer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};









let TemplatesGridContainer_TemplatesGridContainer = class TemplatesGridContainer extends react["Component"] {
    componentDidMount() {
        const { store } = this.props;
        // Only set the default active template if it's blank (so the tab was switched)
        if (!store.activeDocumentTemplate) {
            this.props.store.setDefaultActiveDocumentTemplate();
        }
    }
    getJumpNextGrid(index, length) {
        if (index === length - 1)
            return;
        const { store } = this.props;
        Object(DocumentTemplateInteractionUtils["c" /* jumpToNextCollectionGrid */])(store, index + 1);
    }
    getJumpPreviousGrid(index) {
        if (index === 0)
            return;
        const { store } = this.props;
        Object(DocumentTemplateInteractionUtils["e" /* jumpToPreviousCollectionGrid */])(store, index - 1);
    }
    render() {
        const { store } = this.props;
        const templateCollections = store.templateCollections;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            (templateCollections === null || templateCollections === void 0 ? void 0 : templateCollections.length) ? (templateCollections.map((collection, index) => (react_default.a.createElement(components_grid_view_GridView, { key: index, id: `${CMDN_GRID_TEMPLATES}-${index}`, collapsible: false, containerSize: store.containerSize, elements: collection.files, onItemDoubleClick: (item) => Object(DocumentTemplateInteractionUtils["j" /* onTemplateDoubleClick */])(store, item), onItemSelected: (item) => Object(DocumentTemplateInteractionUtils["g" /* onItemSelected */])(store, item), selectedItem: store.activeDocumentTemplate, jumpToNextGrid: () => this.getJumpNextGrid(index, templateCollections.length), jumpToPreviousGrid: () => this.getJumpPreviousGrid(index), store: this.props.store, tallCards: true, title: collection.title, titleIsAlreadyTranslated: true, forceFocus: store.forceFocus, limit: this.props.numberOfTemplatesLimit })))) : (react_default.a.createElement("div", { className: TemplatesGridContainer_default.a.statusContainer },
                react_default.a.createElement("div", { className: TemplatesGridContainer_default.a.statusTitle },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: store._failedTemplateCollectionsFetching
                            ? 'templates_fetch_error'
                            : 'templates_fetch_loading' })),
                !store._failedTemplateCollectionsFetching && react_default.a.createElement(Wait_default.a, { size: "L" }))),
            react_default.a.createElement(ModalViewContainer_ObservedClass, null)));
    }
};
TemplatesGridContainer_TemplatesGridContainer = TemplatesGridContainer_decorate([
    index_module["e" /* observer */]
], TemplatesGridContainer_TemplatesGridContainer);
/* harmony default export */ var containers_templates_grid_container_TemplatesGridContainer = (Object(index_es["g" /* injectIntl */])(TemplatesGridContainer_TemplatesGridContainer, { withRef: true }));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/Views.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









/* harmony default export */ var Views = ({
    items: {
        [DocumentTemplateCategoryTypes["a" /* default */].RECENT]: {
            label: 'newdoc_filter_recent',
            icon: {
                icon: Clock_default.a,
                size: 'S',
            },
            splitView: Object(HostUtils["e" /* splitRecentViewForHostId */])(hosts["a" /* default */].id),
            defaultTabTitleId: HostUtils["b" /* DefaultTabTitleId */][hosts["a" /* default */].id],
            defaultPresetsCount: HostUtils["a" /* DefaultPresetsCount */][hosts["a" /* default */].id],
            component: recents_view_container_RecentsViewContainer,
        },
        [DocumentTemplateCategoryTypes["a" /* default */].SAVED]: {
            label: 'newdoc_filter_saved',
            component: saved_view_container_SavedViewContainer,
        },
        [DocumentTemplateCategoryTypes["a" /* default */].PHOTO]: {
            label: 'newdoc_filter_photo',
            searchTemplatesBy: 'photo',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].PRINT]: {
            label: 'newdoc_filter_print',
            searchTemplatesBy: 'photo',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].ART]: {
            label: 'newdoc_filter_art',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].WEB]: {
            label: 'newdoc_filter_web',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].MOBILE]: {
            label: 'newdoc_filter_mobile',
            searchTemplatesBy: 'mobile',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].FILM]: {
            label: 'newdoc_filter_film',
            searchTemplatesBy: 'video',
        },
        [DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES]: {
            label: 'newdoc_filter_templates',
            component: containers_templates_grid_container_TemplatesGridContainer,
            // If stock is disabled, don't render the templates tab.
            // Defining this as "skipRender" rather than a render condition because we don't want to change and maintain
            // the logic for all the other tabs.
            skipRender: shouldDisplayTemplatesTab => !shouldDisplayTemplatesTab,
        },
    },
});
const itemsOrder = AppTabOrder[hosts["a" /* default */].id] ? AppTabOrder[hosts["a" /* default */].id] : AppTabOrder[HostIds["a" /* default */].PHXS];

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/AppTabView.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class AppTabView_AppTabView extends react["Component"] {
    constructor(props) {
        super(props);
        if (props.root && props.intl) {
            // @ts-ignore
            if (props.root.open) {
                props.root.title = props.intl.formatMessage({ id: 'ccx_fnft_dialog_name' });
            }
        }
        this.onKeyDown = this.onKeyDown.bind(this);
        this.onClick = this.onClick.bind(this);
    }
    focusContent() {
        const { store } = this.props;
        store.forceFocus = true;
    }
    defocusContent() {
        const { store } = this.props;
        store.forceFocus = false;
    }
    onKeyDown(event) {
        switch (event.key) {
            case 'Enter':
                this.focusContent();
                break;
            case 'ArrowLeft':
            case 'ArrowRight':
                this.defocusContent();
                break;
            default:
            // do nothing
        }
    }
    onClick(event) {
        this.focusContent();
    }
    /**
     * Generates the icon element based on the view configuration.
     *
     * @param view Structure containing the icon class and its properties.
     * @returns If an icon was present, it returns the React component matching that icon, otherwise null.
     */
    getViewIcon(view) {
        if (view && view.icon) {
            const { icon, ...rest } = view.icon;
            const ReactIcon = icon;
            return react_default.a.createElement(ReactIcon, Object.assign({}, rest));
        }
        return null;
    }
    render() {
        const { selectedView, onSelect, className, intl, shouldDisplayTemplatesTab } = this.props;
        const { formatMessage } = intl;
        /*
            This logic is necessary in the case of the Template view because it's a dynamic tab. The tab will be shown/hidden based on the state
            of the templateCollections from the store.
        */
        const selectedViewIndex = itemsOrder.indexOf(selectedView === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES && !shouldDisplayTemplatesTab
            ? DocumentTemplateCategoryTypes["a" /* default */].RECENT
            : selectedView || DocumentTemplateCategoryTypes["a" /* default */].RECENT);
        return (react_default.a.createElement(TabView["TabView"], { className: className, onSelect: index => onSelect && onSelect(itemsOrder[index]), selectedIndex: selectedViewIndex }, itemsOrder.map(viewId => {
            var _a;
            if (Object.prototype.hasOwnProperty.call(Views.items, viewId)) {
                if (viewId === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES && !shouldDisplayTemplatesTab) {
                    return null;
                }
                const view = Views.items[viewId];
                // This condition is added for the Templates tab for the moment.
                // In the future we might need similar functionality for other tabs
                if ((_a = view === null || view === void 0 ? void 0 : view.skipRender) === null || _a === void 0 ? void 0 : _a.call(view, shouldDisplayTemplatesTab)) {
                    return null;
                }
                const { searchTemplatesBy, label, icon, component, splitView, defaultTabTitleId, defaultPresetsCount, data, ...rest } = view;
                const ViewComponent = component;
                const StoreGridContainer = Object(AppStore["c" /* withStore */])(ViewComponent || presets_grid_container_PresetsGridContainer);
                const StoreContent = Object(AppStore["c" /* withStore */])(Content_Content);
                return (react_default.a.createElement(TabView["Tab"], Object.assign({ key: `tab_${viewId}`, "data-qe-id": viewId, label: formatMessage({ id: label }), icon: this.getViewIcon(view), onKeyDown: this.onKeyDown, onClick: this.onClick, onDoubleClick: this.onClick }, rest),
                    react_default.a.createElement(StoreContent, null,
                        react_default.a.createElement(StoreGridContainer, Object.assign({ viewId: viewId, splitView: splitView, defaultTabTitleId: defaultTabTitleId, defaultPresetsCount: defaultPresetsCount }, data, { analytics: this.props.analytics })))));
            }
            return null;
        })));
    }
}
/* harmony default export */ var src_AppTabView = (Object(index_es["g" /* injectIntl */])(Object(AppStore["c" /* withStore */])(AppTabView_AppTabView)));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/presets-container/PresetsContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class PresetsContainer_PresetsContainer extends react["Component"] {
    render() {
        const { store, className, root } = this.props;
        return (react_default.a.createElement(src_AppTabView, { root: root, className: className, selectedView: store.activeView, shouldDisplayTemplatesTab: store.shouldDisplayTemplatesTab, onSelect: viewId => (store.activeView = viewId), analytics: store.analytics }));
    }
}
const PresetsContainer_DecoratedClass = Object(mobx_module["o" /* decorate */])(PresetsContainer_PresetsContainer, {});
const PresetsContainer_ObservedClass = Object(AppStore["c" /* withStore */])(Object(index_module["e" /* observer */])(PresetsContainer_DecoratedClass));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/App.css
var src_App = __webpack_require__("tU+Q");
var App_default = /*#__PURE__*/__webpack_require__.n(src_App);

// EXTERNAL MODULE: ./node_modules/@spectrum-css/vars/dist/spectrum-global.css
var spectrum_global = __webpack_require__("5NxA");

// EXTERNAL MODULE: ./node_modules/@spectrum-css/vars/dist/spectrum-medium.css
var spectrum_medium = __webpack_require__("COfk");

// EXTERNAL MODULE: ./node_modules/@spectrum-css/vars/dist/spectrum-light.css
var spectrum_light = __webpack_require__("ajpD");

// EXTERNAL MODULE: ./node_modules/@spectrum-css/vars/dist/spectrum-dark.css
var spectrum_dark = __webpack_require__("+Aem");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/App.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var App_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var App_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
























logger_default.a.useDefaults({
    defaultLevel:  true ? logger_default.a.WARN : undefined,
    formatter: (messages, context) => {
        // we add the module name for easy identification
        if (context.name) {
            messages.unshift(`[${context.name}]`);
        }
        // we add a prefix to all messages
        messages.unshift('[CMDN]');
        // we add a date to all messages
        messages.unshift(new Date().toUTCString());
    },
});
let App_App = class App extends react["Component"] {
    constructor(props) {
        super(props);
        this.windowResizeHandler = this.windowResizeHandler.bind(this);
        // Debounce to refresh rate to avoid it triggering on initial load, so as to prevent flickering
        this.resizeHandlerRef = lodash_debounce_default()(this.windowResizeHandler, 60);
        this.store = new AppStore["a" /* AppStore */](this.props.userInfo, this.props.onClose);
        this.store.containerSize = this.getContainerSize(this.props.root);
        this.router = react_default.a.createRef();
        this.onShow = Object(LockUtils["c" /* lockFunction */])(this.onShow, LockUtils["a" /* Lock */].CMDN_REFRESHING, LockUtils["b" /* LockMode */].ENFORCE_LOCK, 60);
    }
    componentDidMount() {
        window.addEventListener('resize', this.resizeHandlerRef);
    }
    componentWillUnmount() {
        window.removeEventListener('resize', this.resizeHandlerRef);
    }
    /**
     * Reports to analytics that the application was closed together with its reason.
     *
     * @param reason Reason why the application was closed.
     */
    afterCloseApp(reason) {
        this.store.afterCloseApp(reason);
        this.router.current && this.router.current.history.replace('/');
    }
    // The window resize event is triggered too often - when opening dropdowns or selecting cards or switching tabs.
    // In order to identify the actual resizes, we keep track of the container size .
    /**
     * Window resize handler, should send an event to Ingest and re-calculate the container's size.
     */
    windowResizeHandler() {
        const { containerSize } = this.store;
        const newContainerSize = this.getContainerSize(this.props.root);
        if (newContainerSize.width !== containerSize.width || newContainerSize.height !== containerSize.height) {
            if (this.store.ready) {
                const { activeDocumentTemplate, activeView, analytics } = this.store;
                // Log 'resize-dialog' only when containerSize.width and containerSize.height values are different than initial values
                if (typeof activeDocumentTemplate !== 'undefined' &&
                    (containerSize.width !== 0 || containerSize.height !== 0)) {
                    const ingestData = {
                        activeFilter: activeView,
                        displayTemplate: activeDocumentTemplate.kind,
                        cardName: activeDocumentTemplate.name || activeDocumentTemplate.title,
                        attributes: newContainerSize,
                        displayMode: activeDocumentTemplate.kind === DocumentTemplateKind["a" /* default */].PRESET ? 0 : 1,
                    };
                    analytics.logFNFTActionClickedEvent('resize-dialog', ingestData);
                }
            }
            this.store.containerSize = newContainerSize;
        }
    }
    /**
     * Gets the size of the container of the App. If a root is not provided, then the document will be used.
     *
     * @param [root] Root element of the application used to calculate the size of the cotainer.
     * @returns Object containing the width and height of the container.
     */
    getContainerSize(root) {
        // if the root was not provided, we fallback to the document
        return {
            width: root ? root.offsetWidth : document.documentElement.clientWidth,
            height: root ? root.offsetHeight : document.documentElement.clientHeight,
        };
    }
    async beforeShow(documentPath) {
        this.store.resetUIState(documentPath);
        // If we have a documentPath it means that the CmdN was opened using HS Deeplink
        if (documentPath) {
            this.store.analytics.logFNFTActionClickedEvent('tab-selected', {
                activeFilter: documentPath.view,
                subcategory: 'HOME_SCREEN',
            });
        }
        this.router.current && this.router.current.history.replace('/');
    }
    async onShow(updatePresets = true) {
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].LoadTime);
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].DataTime);
        // This will be called on subsequent calls to show the app
        // Use this to restore the app to a desired state.
        if (updatePresets) {
            Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].HostData);
            await this.store.updateDefaultSettings();
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].HostData);
            // Adding this to maintain the same flow as for the old app
            Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].i18nJSON);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].i18nJSON);
            Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].HostPresetData);
            // Allow updatePresetsAndTemplates to use cached data because we just called updateDefaultSettings before.
            // This will only have an effect in ID, where we need to minimize the # of calls we make to the host one after the other.
            await this.store.updatePresetsAndTemplates(DocumentTemplateCategoryTypes["a" /* default */].ALL, true);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].HostPresetData);
            // Adding this to maintain the same flow as for the old app
            Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].IngestConfig);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].IngestConfig);
        }
        // set the default active preset - in requestAnimationFrame to allow the application to display in the meantime
        requestAnimationFrame(() => {
            // TODO This was added here to preload the preset and reduce the flicker of the color swatch.
            // This should be fixed in PS, but if it comes back, we need to uncomment this line
            // this.store.setDefaultActiveDocumentTemplate();
            // Disable Native SearchBox if CMDN launches with a Modal visible
            // (for example if launching with a DeeplinkPath to download a Template > 100mb)
            // Otherwise, if no Modal View is active, the SearchBox shouldn't be disabled.
            this.store.disableNativeSearchBox = !!this.store.activeModalView;
            this.store.isDialogVisible = true;
        });
        this.store.analytics.logItemOpenedEvent({
            eventAction: 'render',
            openType: 'new',
            fileType: '',
            sectionView: 'createNew',
            ucAction: 'fnft',
            activeFilter: this.store.activeView,
        });
        this.store.analytics.logFNFTActionClickedEvent('tab-rendered', { activeFilter: this.store.activeView });
        this.store.openWelcomeBanner();
        // Use this to distinguish between init and show
        Performance["b" /* Performance */].setMeasurement(Performance["a" /* MeasurementIDS */].RiotMountApp, 0);
        // if we don't need to load stock, report directly here. Otherwise, we leave the reporting to the stock load handler
        if (!this.store.isStockEnabled) {
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].DataTime);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].LoadTime);
            hosts["a" /* default */].reportPerformance(Performance["b" /* Performance */].uniqueMeasurements);
            Performance["b" /* Performance */].clearMeasurements();
        }
    }
    render() {
        if (this.store.ready) {
            const { root } = this.props;
            const boundariesElement = () => root || undefined;
            return (react_default.a.createElement(AppStore["b" /* AppStoreContext */].Provider, { value: this.store },
                react_default.a.createElement(FeatureFlagProvider_FeatureFlagProvider, { values: this.store.featureFlags },
                    react_default.a.createElement(Provider_default.a, { theme: this.store.theme, productId: hosts["a" /* default */].name === HostNames["a" /* default */].PHOTOSHOP || hosts["a" /* default */].name === HostNames["a" /* default */].ILLUSTRATOR
                            ? hosts["a" /* default */].id
                            : undefined, boundariesElement: boundariesElement, className: classnames_default()(App_default.a['cmdn-AppContainer'], classnames_default()(App_default.a[`theme-${this.store.theme}`])) },
                        react_default.a.createElement(index_es["e" /* IntlProvider */], { textComponent: react_default.a.Fragment, locale: this.store.language, messages: this.store.languageStrings },
                            react_default.a.createElement(react_router_MemoryRouter, { ref: this.router },
                                react_default.a.createElement(react_router_Route, { path: "/", exact: true, render: () => (react_default.a.createElement(PresetsContainer_ObservedClass, { root: root, className: App_default.a['cmdn-AppNavigation'] })) }),
                                react_default.a.createElement(react_router_Route, { path: "/template-preview", component: TemplatePreviewContainer_ObservedClass })))))));
        }
        else {
            // TODO - We need to show a loading UI similar to homescreen.
            return null;
        }
    }
};
App_App = App_decorate([
    index_module["e" /* observer */],
    App_metadata("design:paramtypes", [Object])
], App_App);
/* harmony default export */ var ccx_create_new_src_App = (App_App);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/App.ids.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_DIALOG = 'cmdn-dialog';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/Loader.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









Performance["b" /* Performance */].markStart = performance.now();
let dialogElement;
const appRef = react["createRef"]();
var ResizeType;
(function (ResizeType) {
    ResizeType["NONE"] = "none";
    ResizeType["BOTH"] = "both";
    ResizeType["HORIZONTAL"] = "horizontal";
    ResizeType["VERTICAL"] = "vertical";
})(ResizeType || (ResizeType = {}));
const INITIAL_DIALOG_WIDTH = 1080;
const INITIAL_DIALOG_HEIGHT = 690;
const MINIMUM_DIALOG_WIDTH = 900;
const MINIMUM_DIALOG_HEIGHT = 500;
const dialogOptions = {
    resize: ResizeType.BOTH,
    size: {
        width: INITIAL_DIALOG_WIDTH,
        height: INITIAL_DIALOG_HEIGHT,
    },
    minSize: {
        width: MINIMUM_DIALOG_WIDTH,
        height: MINIMUM_DIALOG_HEIGHT,
    },
};
/**
 * Handles the close event of the dialog. This is called when the dialog is already closed, so we can send tracking
 * information.
 *
 * @param event The event triggered by the dialog.
 */
function onDialogClose(event) {
    appRef.current && appRef.current.afterCloseApp(event.target.returnValue || DialogUtils["a" /* DialogCloseReason */].CLOSE);
}
/**
 * Creates a new dialog where the Application will be instantiated.
 *
 * @param userInfo User information.
 */
function createDialog(userInfo) {
    dialogElement = document.createElement('dialog');
    dialogElement.id = CMDN_DIALOG;
    dialogElement.addEventListener('close', onDialogClose);
    // We're going to append to body for the time being, instead
    // of writing the dialog at the very end of the HTML document.
    // This helps popover menus find their position correctly.
    // We will revisit this should it cause any issues down the road.
    document.body.appendChild(dialogElement);
    react_dom["render"](react["createElement"](ccx_create_new_src_App, { root: dialogElement, ref: appRef, onClose: reason => {
            // @ts-ignore
            dialogElement.close(reason);
        }, userInfo: Object(mobx_state_tree_module["g" /* isStateTreeNode */])(userInfo) && Object(mobx_state_tree_module["f" /* getSnapshot */])(userInfo) }), dialogElement);
}
/**
 * Loads the dialog using the provided user.
 *
 * @param userInfo User information passed to application.
 */
async function loadDialog(userInfo) {
    // load only once
    if (typeof dialogElement === 'undefined') {
        createDialog(userInfo);
    }
}
/**
 * Shows the Create New Dialog.
 *
 * @param event The event to handle.
 * @param documentPath the path where the Dialog should open at.
 */
async function showNewDocumentDialogImpl(event, documentPath) {
    Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].InteractiveTime);
    if (!dialogElement) {
        createDialog();
        const store = appRef && appRef.current && appRef.current.store;
        if (store) {
            const language = i18n["a" /* default */].getLanguage(hosts["a" /* default */].language);
            const languageStrings = await store.getLanguageStrings(language);
            i18n["a" /* default */].setLocaleAndStrings(language, languageStrings);
        }
    }
    else {
        // Wait for this one as it should block the show of the dialog.
        appRef.current && (await appRef.current.beforeShow(documentPath));
    }
    // use this to refresh data and log the cmdn action to Ingest
    appRef.current && appRef.current.onShow(true);
    // @ts-ignore
    dialogElement.showModal({ ...dialogOptions, title: i18n["a" /* default */].formatMessage('ccx_fnft_dialog_name') });
    Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].InteractiveTime);
    // @ts-ignore
    if (window.e2eTestMode) {
        const _window = window;
        let data;
        const measurement = Performance["b" /* Performance */].getLatestMeasurement(Performance["a" /* MeasurementIDS */].InteractiveTime);
        if (measurement !== -1) {
            if (!_window.startupData) {
                data = { avg: measurement, count: 1 };
            }
            else {
                const avg = _window.startupData.avg;
                const count = _window.startupData.count;
                data = { avg: (avg * count + measurement) / (count + 1), count: count + 1 };
            }
            _window.startupData = data;
        }
    }
}


/***/ }),

/***/ "78VC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.multiBindToService = function (container) {
  return function (service) {
    return function () {
      var types = [];

      for (var _i = 0; _i < arguments.length; _i++) {
        types[_i] = arguments[_i];
      }

      return types.forEach(function (t) {
        return container.bind(t).toService(service);
      });
    };
  };
};

/***/ }),

/***/ "9/5/":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';
/** Used as references for various `Number` constants. */

var NAN = 0 / 0;
/** `Object#toString` result references. */

var symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */

var reTrim = /^\s+|\s+$/g;
/** Used to detect bad signed hexadecimal string values. */

var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
/** Used to detect binary string values. */

var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */

var reIsOctal = /^0o[0-7]+$/i;
/** Built-in method references without a dependency on `root`. */

var freeParseInt = parseInt;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/** Used for built-in method references. */

var objectProto = Object.prototype;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeMax = Math.max,
    nativeMin = Math.min;
/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */

var now = function () {
  return root.Date.now();
};
/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */


function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }

  wait = toNumber(wait) || 0;

  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;
    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time; // Start the timer for the trailing edge.

    timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.

    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        result = wait - timeSinceLastCall;
    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.

    return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
  }

  function timerExpired() {
    var time = now();

    if (shouldInvoke(time)) {
      return trailingEdge(time);
    } // Restart the timer.


    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.

    if (trailing && lastArgs) {
      return invokeFunc(time);
    }

    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }

    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);
    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }

      if (maxing) {
        // Handle invocations in a tight loop.
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }

    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }

    return result;
  }

  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */


function isSymbol(value) {
  return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;
}
/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */


function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }

  if (isSymbol(value)) {
    return NAN;
  }

  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? other + '' : other;
  }

  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }

  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}

module.exports = debounce;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "9Fde":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  return new (P || (P = Promise))(function (resolve, reject) {
    function fulfilled(value) {
      try {
        step(generator.next(value));
      } catch (e) {
        reject(e);
      }
    }

    function rejected(value) {
      try {
        step(generator["throw"](value));
      } catch (e) {
        reject(e);
      }
    }

    function step(result) {
      result.done ? resolve(result.value) : new P(function (resolve) {
        resolve(result.value);
      }).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (thisArg, body) {
  var _ = {
    label: 0,
    sent: function () {
      if (t[0] & 1) throw t[1];
      return t[1];
    },
    trys: [],
    ops: []
  },
      f,
      y,
      t,
      g;
  return g = {
    next: verb(0),
    "throw": verb(1),
    "return": verb(2)
  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
    return this;
  }), g;

  function verb(n) {
    return function (v) {
      return step([n, v]);
    };
  }

  function step(op) {
    if (f) throw new TypeError("Generator is already executing.");

    while (_) try {
      if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
      if (y = 0, t) op = [0, t.value];

      switch (op[0]) {
        case 0:
        case 1:
          t = op;
          break;

        case 4:
          _.label++;
          return {
            value: op[1],
            done: false
          };

        case 5:
          _.label++;
          y = op[1];
          op = [0];
          continue;

        case 7:
          op = _.ops.pop();

          _.trys.pop();

          continue;

        default:
          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
            _ = 0;
            continue;
          }

          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
            _.label = op[1];
            break;
          }

          if (op[0] === 6 && _.label < t[1]) {
            _.label = t[1];
            t = op;
            break;
          }

          if (t && _.label < t[2]) {
            _.label = t[2];

            _.ops.push(op);

            break;
          }

          if (t[2]) _.ops.pop();

          _.trys.pop();

          continue;
      }

      op = body.call(thisArg, _);
    } catch (e) {
      op = [6, e];
      y = 0;
    } finally {
      f = t = 0;
    }

    if (op[0] & 5) throw op[1];
    return {
      value: op[0] ? op[1] : void 0,
      done: true
    };
  }
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_1 = __webpack_require__("LgvC");

var ERROR_MSGS = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_reader_1 = __webpack_require__("wnjb");

var planner_1 = __webpack_require__("h7MG");

var resolver_1 = __webpack_require__("aPG5");

var binding_to_syntax_1 = __webpack_require__("gzZq");

var id_1 = __webpack_require__("d9O0");

var serialization_1 = __webpack_require__("ujMp");

var container_snapshot_1 = __webpack_require__("HpQ9");

var lookup_1 = __webpack_require__("AwBQ");

var Container = function () {
  function Container(containerOptions) {
    var options = containerOptions || {};

    if (typeof options !== "object") {
      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);
    }

    if (options.defaultScope === undefined) {
      options.defaultScope = literal_types_1.BindingScopeEnum.Transient;
    } else if (options.defaultScope !== literal_types_1.BindingScopeEnum.Singleton && options.defaultScope !== literal_types_1.BindingScopeEnum.Transient && options.defaultScope !== literal_types_1.BindingScopeEnum.Request) {
      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);
    }

    if (options.autoBindInjectable === undefined) {
      options.autoBindInjectable = false;
    } else if (typeof options.autoBindInjectable !== "boolean") {
      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);
    }

    if (options.skipBaseClassChecks === undefined) {
      options.skipBaseClassChecks = false;
    } else if (typeof options.skipBaseClassChecks !== "boolean") {
      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);
    }

    this.options = {
      autoBindInjectable: options.autoBindInjectable,
      defaultScope: options.defaultScope,
      skipBaseClassChecks: options.skipBaseClassChecks
    };
    this.id = id_1.id();
    this._bindingDictionary = new lookup_1.Lookup();
    this._snapshots = [];
    this._middleware = null;
    this.parent = null;
    this._metadataReader = new metadata_reader_1.MetadataReader();
  }

  Container.merge = function (container1, container2) {
    var container = new Container();
    var bindingDictionary = planner_1.getBindingDictionary(container);
    var bindingDictionary1 = planner_1.getBindingDictionary(container1);
    var bindingDictionary2 = planner_1.getBindingDictionary(container2);

    function copyDictionary(origin, destination) {
      origin.traverse(function (key, value) {
        value.forEach(function (binding) {
          destination.add(binding.serviceIdentifier, binding.clone());
        });
      });
    }

    copyDictionary(bindingDictionary1, bindingDictionary);
    copyDictionary(bindingDictionary2, bindingDictionary);
    return container;
  };

  Container.prototype.load = function () {
    var modules = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      modules[_i] = arguments[_i];
    }

    var getHelpers = this._getContainerModuleHelpersFactory();

    for (var _a = 0, modules_1 = modules; _a < modules_1.length; _a++) {
      var currentModule = modules_1[_a];
      var containerModuleHelpers = getHelpers(currentModule.id);
      currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction);
    }
  };

  Container.prototype.loadAsync = function () {
    var modules = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      modules[_i] = arguments[_i];
    }

    return __awaiter(this, void 0, void 0, function () {
      var getHelpers, _a, modules_2, currentModule, containerModuleHelpers;

      return __generator(this, function (_b) {
        switch (_b.label) {
          case 0:
            getHelpers = this._getContainerModuleHelpersFactory();
            _a = 0, modules_2 = modules;
            _b.label = 1;

          case 1:
            if (!(_a < modules_2.length)) return [3, 4];
            currentModule = modules_2[_a];
            containerModuleHelpers = getHelpers(currentModule.id);
            return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction)];

          case 2:
            _b.sent();

            _b.label = 3;

          case 3:
            _a++;
            return [3, 1];

          case 4:
            return [2];
        }
      });
    });
  };

  Container.prototype.unload = function () {
    var _this = this;

    var modules = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      modules[_i] = arguments[_i];
    }

    var conditionFactory = function (expected) {
      return function (item) {
        return item.moduleId === expected;
      };
    };

    modules.forEach(function (module) {
      var condition = conditionFactory(module.id);

      _this._bindingDictionary.removeByCondition(condition);
    });
  };

  Container.prototype.bind = function (serviceIdentifier) {
    var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;
    var binding = new binding_1.Binding(serviceIdentifier, scope);

    this._bindingDictionary.add(serviceIdentifier, binding);

    return new binding_to_syntax_1.BindingToSyntax(binding);
  };

  Container.prototype.rebind = function (serviceIdentifier) {
    this.unbind(serviceIdentifier);
    return this.bind(serviceIdentifier);
  };

  Container.prototype.unbind = function (serviceIdentifier) {
    try {
      this._bindingDictionary.remove(serviceIdentifier);
    } catch (e) {
      throw new Error(ERROR_MSGS.CANNOT_UNBIND + " " + serialization_1.getServiceIdentifierAsString(serviceIdentifier));
    }
  };

  Container.prototype.unbindAll = function () {
    this._bindingDictionary = new lookup_1.Lookup();
  };

  Container.prototype.isBound = function (serviceIdentifier) {
    var bound = this._bindingDictionary.hasKey(serviceIdentifier);

    if (!bound && this.parent) {
      bound = this.parent.isBound(serviceIdentifier);
    }

    return bound;
  };

  Container.prototype.isBoundNamed = function (serviceIdentifier, named) {
    return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
  };

  Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {
    var bound = false;

    if (this._bindingDictionary.hasKey(serviceIdentifier)) {
      var bindings = this._bindingDictionary.get(serviceIdentifier);

      var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);
      bound = bindings.some(function (b) {
        return b.constraint(request_1);
      });
    }

    if (!bound && this.parent) {
      bound = this.parent.isBoundTagged(serviceIdentifier, key, value);
    }

    return bound;
  };

  Container.prototype.snapshot = function () {
    this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));
  };

  Container.prototype.restore = function () {
    var snapshot = this._snapshots.pop();

    if (snapshot === undefined) {
      throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);
    }

    this._bindingDictionary = snapshot.bindings;
    this._middleware = snapshot.middleware;
  };

  Container.prototype.createChild = function (containerOptions) {
    var child = new Container(containerOptions || this.options);
    child.parent = this;
    return child;
  };

  Container.prototype.applyMiddleware = function () {
    var middlewares = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      middlewares[_i] = arguments[_i];
    }

    var initial = this._middleware ? this._middleware : this._planAndResolve();
    this._middleware = middlewares.reduce(function (prev, curr) {
      return curr(prev);
    }, initial);
  };

  Container.prototype.applyCustomMetadataReader = function (metadataReader) {
    this._metadataReader = metadataReader;
  };

  Container.prototype.get = function (serviceIdentifier) {
    return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
  };

  Container.prototype.getTagged = function (serviceIdentifier, key, value) {
    return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
  };

  Container.prototype.getNamed = function (serviceIdentifier, named) {
    return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
  };

  Container.prototype.getAll = function (serviceIdentifier) {
    return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
  };

  Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {
    return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
  };

  Container.prototype.getAllNamed = function (serviceIdentifier, named) {
    return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
  };

  Container.prototype.resolve = function (constructorFunction) {
    var tempContainer = this.createChild();
    tempContainer.bind(constructorFunction).toSelf();
    return tempContainer.get(constructorFunction);
  };

  Container.prototype._getContainerModuleHelpersFactory = function () {
    var _this = this;

    var setModuleId = function (bindingToSyntax, moduleId) {
      bindingToSyntax._binding.moduleId = moduleId;
    };

    var getBindFunction = function (moduleId) {
      return function (serviceIdentifier) {
        var _bind = _this.bind.bind(_this);

        var bindingToSyntax = _bind(serviceIdentifier);

        setModuleId(bindingToSyntax, moduleId);
        return bindingToSyntax;
      };
    };

    var getUnbindFunction = function (moduleId) {
      return function (serviceIdentifier) {
        var _unbind = _this.unbind.bind(_this);

        _unbind(serviceIdentifier);
      };
    };

    var getIsboundFunction = function (moduleId) {
      return function (serviceIdentifier) {
        var _isBound = _this.isBound.bind(_this);

        return _isBound(serviceIdentifier);
      };
    };

    var getRebindFunction = function (moduleId) {
      return function (serviceIdentifier) {
        var _rebind = _this.rebind.bind(_this);

        var bindingToSyntax = _rebind(serviceIdentifier);

        setModuleId(bindingToSyntax, moduleId);
        return bindingToSyntax;
      };
    };

    return function (mId) {
      return {
        bindFunction: getBindFunction(mId),
        isboundFunction: getIsboundFunction(mId),
        rebindFunction: getRebindFunction(mId),
        unbindFunction: getUnbindFunction(mId)
      };
    };
  };

  Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {
    var result = null;
    var defaultArgs = {
      avoidConstraints: avoidConstraints,
      contextInterceptor: function (context) {
        return context;
      },
      isMultiInject: isMultiInject,
      key: key,
      serviceIdentifier: serviceIdentifier,
      targetType: targetType,
      value: value
    };

    if (this._middleware) {
      result = this._middleware(defaultArgs);

      if (result === undefined || result === null) {
        throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);
      }
    } else {
      result = this._planAndResolve()(defaultArgs);
    }

    return result;
  };

  Container.prototype._planAndResolve = function () {
    var _this = this;

    return function (args) {
      var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);
      context = args.contextInterceptor(context);
      var result = resolver_1.resolve(context);
      return result;
    };
  };

  return Container;
}();

exports.Container = Container;

/***/ }),

/***/ "AGvf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ roundDecimal; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ceilDecimal; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ floorDecimal; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ constrainToRange; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ inRange; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ evaluateExpression; });

// CONCATENATED MODULE: ./node_modules/expr-eval/dist/index.mjs
var INUMBER = 'INUMBER';
var IOP1 = 'IOP1';
var IOP2 = 'IOP2';
var IOP3 = 'IOP3';
var IVAR = 'IVAR';
var IVARNAME = 'IVARNAME';
var IFUNCALL = 'IFUNCALL';
var IFUNDEF = 'IFUNDEF';
var IEXPR = 'IEXPR';
var IEXPREVAL = 'IEXPREVAL';
var IMEMBER = 'IMEMBER';
var IENDSTATEMENT = 'IENDSTATEMENT';
var IARRAY = 'IARRAY';

function Instruction(type, value) {
  this.type = type;
  this.value = (value !== undefined && value !== null) ? value : 0;
}

Instruction.prototype.toString = function () {
  switch (this.type) {
    case INUMBER:
    case IOP1:
    case IOP2:
    case IOP3:
    case IVAR:
    case IVARNAME:
    case IENDSTATEMENT:
      return this.value;
    case IFUNCALL:
      return 'CALL ' + this.value;
    case IFUNDEF:
      return 'DEF ' + this.value;
    case IARRAY:
      return 'ARRAY ' + this.value;
    case IMEMBER:
      return '.' + this.value;
    default:
      return 'Invalid Instruction';
  }
};

function unaryInstruction(value) {
  return new Instruction(IOP1, value);
}

function binaryInstruction(value) {
  return new Instruction(IOP2, value);
}

function ternaryInstruction(value) {
  return new Instruction(IOP3, value);
}

function simplify(tokens, unaryOps, binaryOps, ternaryOps, values) {
  var nstack = [];
  var newexpression = [];
  var n1, n2, n3;
  var f;
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER || type === IVARNAME) {
      if (Array.isArray(item.value)) {
        nstack.push.apply(nstack, simplify(item.value.map(function (x) {
          return new Instruction(INUMBER, x);
        }).concat(new Instruction(IARRAY, item.value.length)), unaryOps, binaryOps, ternaryOps, values));
      } else {
        nstack.push(item);
      }
    } else if (type === IVAR && values.hasOwnProperty(item.value)) {
      item = new Instruction(INUMBER, values[item.value]);
      nstack.push(item);
    } else if (type === IOP2 && nstack.length > 1) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = binaryOps[item.value];
      item = new Instruction(INUMBER, f(n1.value, n2.value));
      nstack.push(item);
    } else if (type === IOP3 && nstack.length > 2) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === '?') {
        nstack.push(n1.value ? n2.value : n3.value);
      } else {
        f = ternaryOps[item.value];
        item = new Instruction(INUMBER, f(n1.value, n2.value, n3.value));
        nstack.push(item);
      }
    } else if (type === IOP1 && nstack.length > 0) {
      n1 = nstack.pop();
      f = unaryOps[item.value];
      item = new Instruction(INUMBER, f(n1.value));
      nstack.push(item);
    } else if (type === IEXPR) {
      while (nstack.length > 0) {
        newexpression.push(nstack.shift());
      }
      newexpression.push(new Instruction(IEXPR, simplify(item.value, unaryOps, binaryOps, ternaryOps, values)));
    } else if (type === IMEMBER && nstack.length > 0) {
      n1 = nstack.pop();
      nstack.push(new Instruction(INUMBER, n1.value[item.value]));
    } /* else if (type === IARRAY && nstack.length >= item.value) {
      var length = item.value;
      while (length-- > 0) {
        newexpression.push(nstack.pop());
      }
      newexpression.push(new Instruction(IARRAY, item.value));
    } */ else {
      while (nstack.length > 0) {
        newexpression.push(nstack.shift());
      }
      newexpression.push(item);
    }
  }
  while (nstack.length > 0) {
    newexpression.push(nstack.shift());
  }
  return newexpression;
}

function substitute(tokens, variable, expr) {
  var newexpression = [];
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === IVAR && item.value === variable) {
      for (var j = 0; j < expr.tokens.length; j++) {
        var expritem = expr.tokens[j];
        var replitem;
        if (expritem.type === IOP1) {
          replitem = unaryInstruction(expritem.value);
        } else if (expritem.type === IOP2) {
          replitem = binaryInstruction(expritem.value);
        } else if (expritem.type === IOP3) {
          replitem = ternaryInstruction(expritem.value);
        } else {
          replitem = new Instruction(expritem.type, expritem.value);
        }
        newexpression.push(replitem);
      }
    } else if (type === IEXPR) {
      newexpression.push(new Instruction(IEXPR, substitute(item.value, variable, expr)));
    } else {
      newexpression.push(item);
    }
  }
  return newexpression;
}

function evaluate(tokens, expr, values) {
  var nstack = [];
  var n1, n2, n3;
  var f, args, argCount;

  if (isExpressionEvaluator(tokens)) {
    return resolveExpression(tokens, values);
  }

  var numTokens = tokens.length;

  for (var i = 0; i < numTokens; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER || type === IVARNAME) {
      nstack.push(item.value);
    } else if (type === IOP2) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === 'and') {
        nstack.push(n1 ? !!evaluate(n2, expr, values) : false);
      } else if (item.value === 'or') {
        nstack.push(n1 ? true : !!evaluate(n2, expr, values));
      } else if (item.value === '=') {
        f = expr.binaryOps[item.value];
        nstack.push(f(n1, evaluate(n2, expr, values), values));
      } else {
        f = expr.binaryOps[item.value];
        nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values)));
      }
    } else if (type === IOP3) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      if (item.value === '?') {
        nstack.push(evaluate(n1 ? n2 : n3, expr, values));
      } else {
        f = expr.ternaryOps[item.value];
        nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values), resolveExpression(n3, values)));
      }
    } else if (type === IVAR) {
      if (item.value in expr.functions) {
        nstack.push(expr.functions[item.value]);
      } else if (item.value in expr.unaryOps && expr.parser.isOperatorEnabled(item.value)) {
        nstack.push(expr.unaryOps[item.value]);
      } else {
        var v = values[item.value];
        if (v !== undefined) {
          nstack.push(v);
        } else {
          throw new Error('undefined variable: ' + item.value);
        }
      }
    } else if (type === IOP1) {
      n1 = nstack.pop();
      f = expr.unaryOps[item.value];
      nstack.push(f(resolveExpression(n1, values)));
    } else if (type === IFUNCALL) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(resolveExpression(nstack.pop(), values));
      }
      f = nstack.pop();
      if (f.apply && f.call) {
        nstack.push(f.apply(undefined, args));
      } else {
        throw new Error(f + ' is not a function');
      }
    } else if (type === IFUNDEF) {
      // Create closure to keep references to arguments and expression
      nstack.push((function () {
        var n2 = nstack.pop();
        var args = [];
        var argCount = item.value;
        while (argCount-- > 0) {
          args.unshift(nstack.pop());
        }
        var n1 = nstack.pop();
        var f = function () {
          var scope = Object.assign({}, values);
          for (var i = 0, len = args.length; i < len; i++) {
            scope[args[i]] = arguments[i];
          }
          return evaluate(n2, expr, scope);
        };
        // f.name = n1
        Object.defineProperty(f, 'name', {
          value: n1,
          writable: false
        });
        values[n1] = f;
        return f;
      })());
    } else if (type === IEXPR) {
      nstack.push(createExpressionEvaluator(item, expr));
    } else if (type === IEXPREVAL) {
      nstack.push(item);
    } else if (type === IMEMBER) {
      n1 = nstack.pop();
      nstack.push(n1[item.value]);
    } else if (type === IENDSTATEMENT) {
      nstack.pop();
    } else if (type === IARRAY) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      nstack.push(args);
    } else {
      throw new Error('invalid Expression');
    }
  }
  if (nstack.length > 1) {
    throw new Error('invalid Expression (parity)');
  }
  // Explicitly return zero to avoid test issues caused by -0
  return nstack[0] === 0 ? 0 : resolveExpression(nstack[0], values);
}

function createExpressionEvaluator(token, expr, values) {
  if (isExpressionEvaluator(token)) return token;
  return {
    type: IEXPREVAL,
    value: function (scope) {
      return evaluate(token.value, expr, scope);
    }
  };
}

function isExpressionEvaluator(n) {
  return n && n.type === IEXPREVAL;
}

function resolveExpression(n, values) {
  return isExpressionEvaluator(n) ? n.value(values) : n;
}

function expressionToString(tokens, toJS) {
  var nstack = [];
  var n1, n2, n3;
  var f, args, argCount;
  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    var type = item.type;
    if (type === INUMBER) {
      if (typeof item.value === 'number' && item.value < 0) {
        nstack.push('(' + item.value + ')');
      } else if (Array.isArray(item.value)) {
        nstack.push('[' + item.value.map(escapeValue).join(', ') + ']');
      } else {
        nstack.push(escapeValue(item.value));
      }
    } else if (type === IOP2) {
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = item.value;
      if (toJS) {
        if (f === '^') {
          nstack.push('Math.pow(' + n1 + ', ' + n2 + ')');
        } else if (f === 'and') {
          nstack.push('(!!' + n1 + ' && !!' + n2 + ')');
        } else if (f === 'or') {
          nstack.push('(!!' + n1 + ' || !!' + n2 + ')');
        } else if (f === '||') {
          nstack.push('(function(a,b){ return Array.isArray(a) && Array.isArray(b) ? a.concat(b) : String(a) + String(b); }((' + n1 + '),(' + n2 + ')))');
        } else if (f === '==') {
          nstack.push('(' + n1 + ' === ' + n2 + ')');
        } else if (f === '!=') {
          nstack.push('(' + n1 + ' !== ' + n2 + ')');
        } else if (f === '[') {
          nstack.push(n1 + '[(' + n2 + ') | 0]');
        } else {
          nstack.push('(' + n1 + ' ' + f + ' ' + n2 + ')');
        }
      } else {
        if (f === '[') {
          nstack.push(n1 + '[' + n2 + ']');
        } else {
          nstack.push('(' + n1 + ' ' + f + ' ' + n2 + ')');
        }
      }
    } else if (type === IOP3) {
      n3 = nstack.pop();
      n2 = nstack.pop();
      n1 = nstack.pop();
      f = item.value;
      if (f === '?') {
        nstack.push('(' + n1 + ' ? ' + n2 + ' : ' + n3 + ')');
      } else {
        throw new Error('invalid Expression');
      }
    } else if (type === IVAR || type === IVARNAME) {
      nstack.push(item.value);
    } else if (type === IOP1) {
      n1 = nstack.pop();
      f = item.value;
      if (f === '-' || f === '+') {
        nstack.push('(' + f + n1 + ')');
      } else if (toJS) {
        if (f === 'not') {
          nstack.push('(' + '!' + n1 + ')');
        } else if (f === '!') {
          nstack.push('fac(' + n1 + ')');
        } else {
          nstack.push(f + '(' + n1 + ')');
        }
      } else if (f === '!') {
        nstack.push('(' + n1 + '!)');
      } else {
        nstack.push('(' + f + ' ' + n1 + ')');
      }
    } else if (type === IFUNCALL) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      f = nstack.pop();
      nstack.push(f + '(' + args.join(', ') + ')');
    } else if (type === IFUNDEF) {
      n2 = nstack.pop();
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      n1 = nstack.pop();
      if (toJS) {
        nstack.push('(' + n1 + ' = function(' + args.join(', ') + ') { return ' + n2 + ' })');
      } else {
        nstack.push('(' + n1 + '(' + args.join(', ') + ') = ' + n2 + ')');
      }
    } else if (type === IMEMBER) {
      n1 = nstack.pop();
      nstack.push(n1 + '.' + item.value);
    } else if (type === IARRAY) {
      argCount = item.value;
      args = [];
      while (argCount-- > 0) {
        args.unshift(nstack.pop());
      }
      nstack.push('[' + args.join(', ') + ']');
    } else if (type === IEXPR) {
      nstack.push('(' + expressionToString(item.value, toJS) + ')');
    } else if (type === IENDSTATEMENT) ; else {
      throw new Error('invalid Expression');
    }
  }
  if (nstack.length > 1) {
    if (toJS) {
      nstack = [ nstack.join(',') ];
    } else {
      nstack = [ nstack.join(';') ];
    }
  }
  return String(nstack[0]);
}

function escapeValue(v) {
  if (typeof v === 'string') {
    return JSON.stringify(v).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
  }
  return v;
}

function contains(array, obj) {
  for (var i = 0; i < array.length; i++) {
    if (array[i] === obj) {
      return true;
    }
  }
  return false;
}

function getSymbols(tokens, symbols, options) {
  options = options || {};
  var withMembers = !!options.withMembers;
  var prevVar = null;

  for (var i = 0; i < tokens.length; i++) {
    var item = tokens[i];
    if (item.type === IVAR || item.type === IVARNAME) {
      if (!withMembers && !contains(symbols, item.value)) {
        symbols.push(item.value);
      } else if (prevVar !== null) {
        if (!contains(symbols, prevVar)) {
          symbols.push(prevVar);
        }
        prevVar = item.value;
      } else {
        prevVar = item.value;
      }
    } else if (item.type === IMEMBER && withMembers && prevVar !== null) {
      prevVar += '.' + item.value;
    } else if (item.type === IEXPR) {
      getSymbols(item.value, symbols, options);
    } else if (prevVar !== null) {
      if (!contains(symbols, prevVar)) {
        symbols.push(prevVar);
      }
      prevVar = null;
    }
  }

  if (prevVar !== null && !contains(symbols, prevVar)) {
    symbols.push(prevVar);
  }
}

function Expression(tokens, parser) {
  this.tokens = tokens;
  this.parser = parser;
  this.unaryOps = parser.unaryOps;
  this.binaryOps = parser.binaryOps;
  this.ternaryOps = parser.ternaryOps;
  this.functions = parser.functions;
}

Expression.prototype.simplify = function (values) {
  values = values || {};
  return new Expression(simplify(this.tokens, this.unaryOps, this.binaryOps, this.ternaryOps, values), this.parser);
};

Expression.prototype.substitute = function (variable, expr) {
  if (!(expr instanceof Expression)) {
    expr = this.parser.parse(String(expr));
  }

  return new Expression(substitute(this.tokens, variable, expr), this.parser);
};

Expression.prototype.evaluate = function (values) {
  values = values || {};
  return evaluate(this.tokens, this, values);
};

Expression.prototype.toString = function () {
  return expressionToString(this.tokens, false);
};

Expression.prototype.symbols = function (options) {
  options = options || {};
  var vars = [];
  getSymbols(this.tokens, vars, options);
  return vars;
};

Expression.prototype.variables = function (options) {
  options = options || {};
  var vars = [];
  getSymbols(this.tokens, vars, options);
  var functions = this.functions;
  return vars.filter(function (name) {
    return !(name in functions);
  });
};

Expression.prototype.toJSFunction = function (param, variables) {
  var expr = this;
  var f = new Function(param, 'with(this.functions) with (this.ternaryOps) with (this.binaryOps) with (this.unaryOps) { return ' + expressionToString(this.simplify(variables).tokens, true) + '; }'); // eslint-disable-line no-new-func
  return function () {
    return f.apply(expr, arguments);
  };
};

var TEOF = 'TEOF';
var TOP = 'TOP';
var TNUMBER = 'TNUMBER';
var TSTRING = 'TSTRING';
var TPAREN = 'TPAREN';
var TBRACKET = 'TBRACKET';
var TCOMMA = 'TCOMMA';
var TNAME = 'TNAME';
var TSEMICOLON = 'TSEMICOLON';

function Token(type, value, index) {
  this.type = type;
  this.value = value;
  this.index = index;
}

Token.prototype.toString = function () {
  return this.type + ': ' + this.value;
};

function TokenStream(parser, expression) {
  this.pos = 0;
  this.current = null;
  this.unaryOps = parser.unaryOps;
  this.binaryOps = parser.binaryOps;
  this.ternaryOps = parser.ternaryOps;
  this.consts = parser.consts;
  this.expression = expression;
  this.savedPosition = 0;
  this.savedCurrent = null;
  this.options = parser.options;
  this.parser = parser;
}

TokenStream.prototype.newToken = function (type, value, pos) {
  return new Token(type, value, pos != null ? pos : this.pos);
};

TokenStream.prototype.save = function () {
  this.savedPosition = this.pos;
  this.savedCurrent = this.current;
};

TokenStream.prototype.restore = function () {
  this.pos = this.savedPosition;
  this.current = this.savedCurrent;
};

TokenStream.prototype.next = function () {
  if (this.pos >= this.expression.length) {
    return this.newToken(TEOF, 'EOF');
  }

  if (this.isWhitespace() || this.isComment()) {
    return this.next();
  } else if (this.isRadixInteger() ||
      this.isNumber() ||
      this.isOperator() ||
      this.isString() ||
      this.isParen() ||
      this.isBracket() ||
      this.isComma() ||
      this.isSemicolon() ||
      this.isNamedOp() ||
      this.isConst() ||
      this.isName()) {
    return this.current;
  } else {
    this.parseError('Unknown character "' + this.expression.charAt(this.pos) + '"');
  }
};

TokenStream.prototype.isString = function () {
  var r = false;
  var startPos = this.pos;
  var quote = this.expression.charAt(startPos);

  if (quote === '\'' || quote === '"') {
    var index = this.expression.indexOf(quote, startPos + 1);
    while (index >= 0 && this.pos < this.expression.length) {
      this.pos = index + 1;
      if (this.expression.charAt(index - 1) !== '\\') {
        var rawString = this.expression.substring(startPos + 1, index);
        this.current = this.newToken(TSTRING, this.unescape(rawString), startPos);
        r = true;
        break;
      }
      index = this.expression.indexOf(quote, index + 1);
    }
  }
  return r;
};

TokenStream.prototype.isParen = function () {
  var c = this.expression.charAt(this.pos);
  if (c === '(' || c === ')') {
    this.current = this.newToken(TPAREN, c);
    this.pos++;
    return true;
  }
  return false;
};

TokenStream.prototype.isBracket = function () {
  var c = this.expression.charAt(this.pos);
  if ((c === '[' || c === ']') && this.isOperatorEnabled('[')) {
    this.current = this.newToken(TBRACKET, c);
    this.pos++;
    return true;
  }
  return false;
};

TokenStream.prototype.isComma = function () {
  var c = this.expression.charAt(this.pos);
  if (c === ',') {
    this.current = this.newToken(TCOMMA, ',');
    this.pos++;
    return true;
  }
  return false;
};

TokenStream.prototype.isSemicolon = function () {
  var c = this.expression.charAt(this.pos);
  if (c === ';') {
    this.current = this.newToken(TSEMICOLON, ';');
    this.pos++;
    return true;
  }
  return false;
};

TokenStream.prototype.isConst = function () {
  var startPos = this.pos;
  var i = startPos;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos || (c !== '_' && c !== '.' && (c < '0' || c > '9'))) {
        break;
      }
    }
  }
  if (i > startPos) {
    var str = this.expression.substring(startPos, i);
    if (str in this.consts) {
      this.current = this.newToken(TNUMBER, this.consts[str]);
      this.pos += str.length;
      return true;
    }
  }
  return false;
};

TokenStream.prototype.isNamedOp = function () {
  var startPos = this.pos;
  var i = startPos;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos || (c !== '_' && (c < '0' || c > '9'))) {
        break;
      }
    }
  }
  if (i > startPos) {
    var str = this.expression.substring(startPos, i);
    if (this.isOperatorEnabled(str) && (str in this.binaryOps || str in this.unaryOps || str in this.ternaryOps)) {
      this.current = this.newToken(TOP, str);
      this.pos += str.length;
      return true;
    }
  }
  return false;
};

TokenStream.prototype.isName = function () {
  var startPos = this.pos;
  var i = startPos;
  var hasLetter = false;
  for (; i < this.expression.length; i++) {
    var c = this.expression.charAt(i);
    if (c.toUpperCase() === c.toLowerCase()) {
      if (i === this.pos && (c === '$' || c === '_')) {
        if (c === '_') {
          hasLetter = true;
        }
        continue;
      } else if (i === this.pos || !hasLetter || (c !== '_' && (c < '0' || c > '9'))) {
        break;
      }
    } else {
      hasLetter = true;
    }
  }
  if (hasLetter) {
    var str = this.expression.substring(startPos, i);
    this.current = this.newToken(TNAME, str);
    this.pos += str.length;
    return true;
  }
  return false;
};

TokenStream.prototype.isWhitespace = function () {
  var r = false;
  var c = this.expression.charAt(this.pos);
  while (c === ' ' || c === '\t' || c === '\n' || c === '\r') {
    r = true;
    this.pos++;
    if (this.pos >= this.expression.length) {
      break;
    }
    c = this.expression.charAt(this.pos);
  }
  return r;
};

var codePointPattern = /^[0-9a-f]{4}$/i;

TokenStream.prototype.unescape = function (v) {
  var index = v.indexOf('\\');
  if (index < 0) {
    return v;
  }

  var buffer = v.substring(0, index);
  while (index >= 0) {
    var c = v.charAt(++index);
    switch (c) {
      case '\'':
        buffer += '\'';
        break;
      case '"':
        buffer += '"';
        break;
      case '\\':
        buffer += '\\';
        break;
      case '/':
        buffer += '/';
        break;
      case 'b':
        buffer += '\b';
        break;
      case 'f':
        buffer += '\f';
        break;
      case 'n':
        buffer += '\n';
        break;
      case 'r':
        buffer += '\r';
        break;
      case 't':
        buffer += '\t';
        break;
      case 'u':
        // interpret the following 4 characters as the hex of the unicode code point
        var codePoint = v.substring(index + 1, index + 5);
        if (!codePointPattern.test(codePoint)) {
          this.parseError('Illegal escape sequence: \\u' + codePoint);
        }
        buffer += String.fromCharCode(parseInt(codePoint, 16));
        index += 4;
        break;
      default:
        throw this.parseError('Illegal escape sequence: "\\' + c + '"');
    }
    ++index;
    var backslash = v.indexOf('\\', index);
    buffer += v.substring(index, backslash < 0 ? v.length : backslash);
    index = backslash;
  }

  return buffer;
};

TokenStream.prototype.isComment = function () {
  var c = this.expression.charAt(this.pos);
  if (c === '/' && this.expression.charAt(this.pos + 1) === '*') {
    this.pos = this.expression.indexOf('*/', this.pos) + 2;
    if (this.pos === 1) {
      this.pos = this.expression.length;
    }
    return true;
  }
  return false;
};

TokenStream.prototype.isRadixInteger = function () {
  var pos = this.pos;

  if (pos >= this.expression.length - 2 || this.expression.charAt(pos) !== '0') {
    return false;
  }
  ++pos;

  var radix;
  var validDigit;
  if (this.expression.charAt(pos) === 'x') {
    radix = 16;
    validDigit = /^[0-9a-f]$/i;
    ++pos;
  } else if (this.expression.charAt(pos) === 'b') {
    radix = 2;
    validDigit = /^[01]$/i;
    ++pos;
  } else {
    return false;
  }

  var valid = false;
  var startPos = pos;

  while (pos < this.expression.length) {
    var c = this.expression.charAt(pos);
    if (validDigit.test(c)) {
      pos++;
      valid = true;
    } else {
      break;
    }
  }

  if (valid) {
    this.current = this.newToken(TNUMBER, parseInt(this.expression.substring(startPos, pos), radix));
    this.pos = pos;
  }
  return valid;
};

TokenStream.prototype.isNumber = function () {
  var valid = false;
  var pos = this.pos;
  var startPos = pos;
  var resetPos = pos;
  var foundDot = false;
  var foundDigits = false;
  var c;

  while (pos < this.expression.length) {
    c = this.expression.charAt(pos);
    if ((c >= '0' && c <= '9') || (!foundDot && c === '.')) {
      if (c === '.') {
        foundDot = true;
      } else {
        foundDigits = true;
      }
      pos++;
      valid = foundDigits;
    } else {
      break;
    }
  }

  if (valid) {
    resetPos = pos;
  }

  if (c === 'e' || c === 'E') {
    pos++;
    var acceptSign = true;
    var validExponent = false;
    while (pos < this.expression.length) {
      c = this.expression.charAt(pos);
      if (acceptSign && (c === '+' || c === '-')) {
        acceptSign = false;
      } else if (c >= '0' && c <= '9') {
        validExponent = true;
        acceptSign = false;
      } else {
        break;
      }
      pos++;
    }

    if (!validExponent) {
      pos = resetPos;
    }
  }

  if (valid) {
    this.current = this.newToken(TNUMBER, parseFloat(this.expression.substring(startPos, pos)));
    this.pos = pos;
  } else {
    this.pos = resetPos;
  }
  return valid;
};

TokenStream.prototype.isOperator = function () {
  var startPos = this.pos;
  var c = this.expression.charAt(this.pos);

  if (c === '+' || c === '-' || c === '*' || c === '/' || c === '%' || c === '^' || c === '?' || c === ':' || c === '.') {
    this.current = this.newToken(TOP, c);
  } else if (c === '∙' || c === '•') {
    this.current = this.newToken(TOP, '*');
  } else if (c === '>') {
    if (this.expression.charAt(this.pos + 1) === '=') {
      this.current = this.newToken(TOP, '>=');
      this.pos++;
    } else {
      this.current = this.newToken(TOP, '>');
    }
  } else if (c === '<') {
    if (this.expression.charAt(this.pos + 1) === '=') {
      this.current = this.newToken(TOP, '<=');
      this.pos++;
    } else {
      this.current = this.newToken(TOP, '<');
    }
  } else if (c === '|') {
    if (this.expression.charAt(this.pos + 1) === '|') {
      this.current = this.newToken(TOP, '||');
      this.pos++;
    } else {
      return false;
    }
  } else if (c === '=') {
    if (this.expression.charAt(this.pos + 1) === '=') {
      this.current = this.newToken(TOP, '==');
      this.pos++;
    } else {
      this.current = this.newToken(TOP, c);
    }
  } else if (c === '!') {
    if (this.expression.charAt(this.pos + 1) === '=') {
      this.current = this.newToken(TOP, '!=');
      this.pos++;
    } else {
      this.current = this.newToken(TOP, c);
    }
  } else {
    return false;
  }
  this.pos++;

  if (this.isOperatorEnabled(this.current.value)) {
    return true;
  } else {
    this.pos = startPos;
    return false;
  }
};

TokenStream.prototype.isOperatorEnabled = function (op) {
  return this.parser.isOperatorEnabled(op);
};

TokenStream.prototype.getCoordinates = function () {
  var line = 0;
  var column;
  var newline = -1;
  do {
    line++;
    column = this.pos - newline;
    newline = this.expression.indexOf('\n', newline + 1);
  } while (newline >= 0 && newline < this.pos);

  return {
    line: line,
    column: column
  };
};

TokenStream.prototype.parseError = function (msg) {
  var coords = this.getCoordinates();
  throw new Error('parse error [' + coords.line + ':' + coords.column + ']: ' + msg);
};

function ParserState(parser, tokenStream, options) {
  this.parser = parser;
  this.tokens = tokenStream;
  this.current = null;
  this.nextToken = null;
  this.next();
  this.savedCurrent = null;
  this.savedNextToken = null;
  this.allowMemberAccess = options.allowMemberAccess !== false;
}

ParserState.prototype.next = function () {
  this.current = this.nextToken;
  return (this.nextToken = this.tokens.next());
};

ParserState.prototype.tokenMatches = function (token, value) {
  if (typeof value === 'undefined') {
    return true;
  } else if (Array.isArray(value)) {
    return contains(value, token.value);
  } else if (typeof value === 'function') {
    return value(token);
  } else {
    return token.value === value;
  }
};

ParserState.prototype.save = function () {
  this.savedCurrent = this.current;
  this.savedNextToken = this.nextToken;
  this.tokens.save();
};

ParserState.prototype.restore = function () {
  this.tokens.restore();
  this.current = this.savedCurrent;
  this.nextToken = this.savedNextToken;
};

ParserState.prototype.accept = function (type, value) {
  if (this.nextToken.type === type && this.tokenMatches(this.nextToken, value)) {
    this.next();
    return true;
  }
  return false;
};

ParserState.prototype.expect = function (type, value) {
  if (!this.accept(type, value)) {
    var coords = this.tokens.getCoordinates();
    throw new Error('parse error [' + coords.line + ':' + coords.column + ']: Expected ' + (value || type));
  }
};

ParserState.prototype.parseAtom = function (instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }

  if (this.accept(TNAME) || this.accept(TOP, isPrefixOperator)) {
    instr.push(new Instruction(IVAR, this.current.value));
  } else if (this.accept(TNUMBER)) {
    instr.push(new Instruction(INUMBER, this.current.value));
  } else if (this.accept(TSTRING)) {
    instr.push(new Instruction(INUMBER, this.current.value));
  } else if (this.accept(TPAREN, '(')) {
    this.parseExpression(instr);
    this.expect(TPAREN, ')');
  } else if (this.accept(TBRACKET, '[')) {
    if (this.accept(TBRACKET, ']')) {
      instr.push(new Instruction(IARRAY, 0));
    } else {
      var argCount = this.parseArrayList(instr);
      instr.push(new Instruction(IARRAY, argCount));
    }
  } else {
    throw new Error('unexpected ' + this.nextToken);
  }
};

ParserState.prototype.parseExpression = function (instr) {
  var exprInstr = [];
  if (this.parseUntilEndStatement(instr, exprInstr)) {
    return;
  }
  this.parseVariableAssignmentExpression(exprInstr);
  if (this.parseUntilEndStatement(instr, exprInstr)) {
    return;
  }
  this.pushExpression(instr, exprInstr);
};

ParserState.prototype.pushExpression = function (instr, exprInstr) {
  for (var i = 0, len = exprInstr.length; i < len; i++) {
    instr.push(exprInstr[i]);
  }
};

ParserState.prototype.parseUntilEndStatement = function (instr, exprInstr) {
  if (!this.accept(TSEMICOLON)) return false;
  if (this.nextToken && this.nextToken.type !== TEOF && !(this.nextToken.type === TPAREN && this.nextToken.value === ')')) {
    exprInstr.push(new Instruction(IENDSTATEMENT));
  }
  if (this.nextToken.type !== TEOF) {
    this.parseExpression(exprInstr);
  }
  instr.push(new Instruction(IEXPR, exprInstr));
  return true;
};

ParserState.prototype.parseArrayList = function (instr) {
  var argCount = 0;

  while (!this.accept(TBRACKET, ']')) {
    this.parseExpression(instr);
    ++argCount;
    while (this.accept(TCOMMA)) {
      this.parseExpression(instr);
      ++argCount;
    }
  }

  return argCount;
};

ParserState.prototype.parseVariableAssignmentExpression = function (instr) {
  this.parseConditionalExpression(instr);
  while (this.accept(TOP, '=')) {
    var varName = instr.pop();
    var varValue = [];
    var lastInstrIndex = instr.length - 1;
    if (varName.type === IFUNCALL) {
      if (!this.tokens.isOperatorEnabled('()=')) {
        throw new Error('function definition is not permitted');
      }
      for (var i = 0, len = varName.value + 1; i < len; i++) {
        var index = lastInstrIndex - i;
        if (instr[index].type === IVAR) {
          instr[index] = new Instruction(IVARNAME, instr[index].value);
        }
      }
      this.parseVariableAssignmentExpression(varValue);
      instr.push(new Instruction(IEXPR, varValue));
      instr.push(new Instruction(IFUNDEF, varName.value));
      continue;
    }
    if (varName.type !== IVAR && varName.type !== IMEMBER) {
      throw new Error('expected variable for assignment');
    }
    this.parseVariableAssignmentExpression(varValue);
    instr.push(new Instruction(IVARNAME, varName.value));
    instr.push(new Instruction(IEXPR, varValue));
    instr.push(binaryInstruction('='));
  }
};

ParserState.prototype.parseConditionalExpression = function (instr) {
  this.parseOrExpression(instr);
  while (this.accept(TOP, '?')) {
    var trueBranch = [];
    var falseBranch = [];
    this.parseConditionalExpression(trueBranch);
    this.expect(TOP, ':');
    this.parseConditionalExpression(falseBranch);
    instr.push(new Instruction(IEXPR, trueBranch));
    instr.push(new Instruction(IEXPR, falseBranch));
    instr.push(ternaryInstruction('?'));
  }
};

ParserState.prototype.parseOrExpression = function (instr) {
  this.parseAndExpression(instr);
  while (this.accept(TOP, 'or')) {
    var falseBranch = [];
    this.parseAndExpression(falseBranch);
    instr.push(new Instruction(IEXPR, falseBranch));
    instr.push(binaryInstruction('or'));
  }
};

ParserState.prototype.parseAndExpression = function (instr) {
  this.parseComparison(instr);
  while (this.accept(TOP, 'and')) {
    var trueBranch = [];
    this.parseComparison(trueBranch);
    instr.push(new Instruction(IEXPR, trueBranch));
    instr.push(binaryInstruction('and'));
  }
};

var COMPARISON_OPERATORS = ['==', '!=', '<', '<=', '>=', '>', 'in'];

ParserState.prototype.parseComparison = function (instr) {
  this.parseAddSub(instr);
  while (this.accept(TOP, COMPARISON_OPERATORS)) {
    var op = this.current;
    this.parseAddSub(instr);
    instr.push(binaryInstruction(op.value));
  }
};

var ADD_SUB_OPERATORS = ['+', '-', '||'];

ParserState.prototype.parseAddSub = function (instr) {
  this.parseTerm(instr);
  while (this.accept(TOP, ADD_SUB_OPERATORS)) {
    var op = this.current;
    this.parseTerm(instr);
    instr.push(binaryInstruction(op.value));
  }
};

var TERM_OPERATORS = ['*', '/', '%'];

ParserState.prototype.parseTerm = function (instr) {
  this.parseFactor(instr);
  while (this.accept(TOP, TERM_OPERATORS)) {
    var op = this.current;
    this.parseFactor(instr);
    instr.push(binaryInstruction(op.value));
  }
};

ParserState.prototype.parseFactor = function (instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }

  this.save();
  if (this.accept(TOP, isPrefixOperator)) {
    if (this.current.value !== '-' && this.current.value !== '+') {
      if (this.nextToken.type === TPAREN && this.nextToken.value === '(') {
        this.restore();
        this.parseExponential(instr);
        return;
      } else if (this.nextToken.type === TSEMICOLON || this.nextToken.type === TCOMMA || this.nextToken.type === TEOF || (this.nextToken.type === TPAREN && this.nextToken.value === ')')) {
        this.restore();
        this.parseAtom(instr);
        return;
      }
    }

    var op = this.current;
    this.parseFactor(instr);
    instr.push(unaryInstruction(op.value));
  } else {
    this.parseExponential(instr);
  }
};

ParserState.prototype.parseExponential = function (instr) {
  this.parsePostfixExpression(instr);
  while (this.accept(TOP, '^')) {
    this.parseFactor(instr);
    instr.push(binaryInstruction('^'));
  }
};

ParserState.prototype.parsePostfixExpression = function (instr) {
  this.parseFunctionCall(instr);
  while (this.accept(TOP, '!')) {
    instr.push(unaryInstruction('!'));
  }
};

ParserState.prototype.parseFunctionCall = function (instr) {
  var unaryOps = this.tokens.unaryOps;
  function isPrefixOperator(token) {
    return token.value in unaryOps;
  }

  if (this.accept(TOP, isPrefixOperator)) {
    var op = this.current;
    this.parseAtom(instr);
    instr.push(unaryInstruction(op.value));
  } else {
    this.parseMemberExpression(instr);
    while (this.accept(TPAREN, '(')) {
      if (this.accept(TPAREN, ')')) {
        instr.push(new Instruction(IFUNCALL, 0));
      } else {
        var argCount = this.parseArgumentList(instr);
        instr.push(new Instruction(IFUNCALL, argCount));
      }
    }
  }
};

ParserState.prototype.parseArgumentList = function (instr) {
  var argCount = 0;

  while (!this.accept(TPAREN, ')')) {
    this.parseExpression(instr);
    ++argCount;
    while (this.accept(TCOMMA)) {
      this.parseExpression(instr);
      ++argCount;
    }
  }

  return argCount;
};

ParserState.prototype.parseMemberExpression = function (instr) {
  this.parseAtom(instr);
  while (this.accept(TOP, '.') || this.accept(TBRACKET, '[')) {
    var op = this.current;

    if (op.value === '.') {
      if (!this.allowMemberAccess) {
        throw new Error('unexpected ".", member access is not permitted');
      }

      this.expect(TNAME);
      instr.push(new Instruction(IMEMBER, this.current.value));
    } else if (op.value === '[') {
      if (!this.tokens.isOperatorEnabled('[')) {
        throw new Error('unexpected "[]", arrays are disabled');
      }

      this.parseExpression(instr);
      this.expect(TBRACKET, ']');
      instr.push(binaryInstruction('['));
    } else {
      throw new Error('unexpected symbol: ' + op.value);
    }
  }
};

function add(a, b) {
  return Number(a) + Number(b);
}

function sub(a, b) {
  return a - b;
}

function mul(a, b) {
  return a * b;
}

function div(a, b) {
  return a / b;
}

function mod(a, b) {
  return a % b;
}

function concat(a, b) {
  if (Array.isArray(a) && Array.isArray(b)) {
    return a.concat(b);
  }
  return '' + a + b;
}

function equal(a, b) {
  return a === b;
}

function notEqual(a, b) {
  return a !== b;
}

function greaterThan(a, b) {
  return a > b;
}

function lessThan(a, b) {
  return a < b;
}

function greaterThanEqual(a, b) {
  return a >= b;
}

function lessThanEqual(a, b) {
  return a <= b;
}

function andOperator(a, b) {
  return Boolean(a && b);
}

function orOperator(a, b) {
  return Boolean(a || b);
}

function inOperator(a, b) {
  return contains(b, a);
}

function sinh(a) {
  return ((Math.exp(a) - Math.exp(-a)) / 2);
}

function cosh(a) {
  return ((Math.exp(a) + Math.exp(-a)) / 2);
}

function tanh(a) {
  if (a === Infinity) return 1;
  if (a === -Infinity) return -1;
  return (Math.exp(a) - Math.exp(-a)) / (Math.exp(a) + Math.exp(-a));
}

function asinh(a) {
  if (a === -Infinity) return a;
  return Math.log(a + Math.sqrt((a * a) + 1));
}

function acosh(a) {
  return Math.log(a + Math.sqrt((a * a) - 1));
}

function atanh(a) {
  return (Math.log((1 + a) / (1 - a)) / 2);
}

function log10(a) {
  return Math.log(a) * Math.LOG10E;
}

function neg(a) {
  return -a;
}

function not(a) {
  return !a;
}

function trunc(a) {
  return a < 0 ? Math.ceil(a) : Math.floor(a);
}

function random(a) {
  return Math.random() * (a || 1);
}

function factorial(a) { // a!
  return gamma(a + 1);
}

function isInteger(value) {
  return isFinite(value) && (value === Math.round(value));
}

var GAMMA_G = 4.7421875;
var GAMMA_P = [
  0.99999999999999709182,
  57.156235665862923517, -59.597960355475491248,
  14.136097974741747174, -0.49191381609762019978,
  0.33994649984811888699e-4,
  0.46523628927048575665e-4, -0.98374475304879564677e-4,
  0.15808870322491248884e-3, -0.21026444172410488319e-3,
  0.21743961811521264320e-3, -0.16431810653676389022e-3,
  0.84418223983852743293e-4, -0.26190838401581408670e-4,
  0.36899182659531622704e-5
];

// Gamma function from math.js
function gamma(n) {
  var t, x;

  if (isInteger(n)) {
    if (n <= 0) {
      return isFinite(n) ? Infinity : NaN;
    }

    if (n > 171) {
      return Infinity; // Will overflow
    }

    var value = n - 2;
    var res = n - 1;
    while (value > 1) {
      res *= value;
      value--;
    }

    if (res === 0) {
      res = 1; // 0! is per definition 1
    }

    return res;
  }

  if (n < 0.5) {
    return Math.PI / (Math.sin(Math.PI * n) * gamma(1 - n));
  }

  if (n >= 171.35) {
    return Infinity; // will overflow
  }

  if (n > 85.0) { // Extended Stirling Approx
    var twoN = n * n;
    var threeN = twoN * n;
    var fourN = threeN * n;
    var fiveN = fourN * n;
    return Math.sqrt(2 * Math.PI / n) * Math.pow((n / Math.E), n) *
      (1 + (1 / (12 * n)) + (1 / (288 * twoN)) - (139 / (51840 * threeN)) -
      (571 / (2488320 * fourN)) + (163879 / (209018880 * fiveN)) +
      (5246819 / (75246796800 * fiveN * n)));
  }

  --n;
  x = GAMMA_P[0];
  for (var i = 1; i < GAMMA_P.length; ++i) {
    x += GAMMA_P[i] / (n + i);
  }

  t = n + GAMMA_G + 0.5;
  return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;
}

function stringOrArrayLength(s) {
  if (Array.isArray(s)) {
    return s.length;
  }
  return String(s).length;
}

function hypot() {
  var sum = 0;
  var larg = 0;
  for (var i = 0; i < arguments.length; i++) {
    var arg = Math.abs(arguments[i]);
    var div;
    if (larg < arg) {
      div = larg / arg;
      sum = (sum * div * div) + 1;
      larg = arg;
    } else if (arg > 0) {
      div = arg / larg;
      sum += div * div;
    } else {
      sum += arg;
    }
  }
  return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
}

function condition(cond, yep, nope) {
  return cond ? yep : nope;
}

/**
* Decimal adjustment of a number.
* From @escopecz.
*
* @param {Number} value The number.
* @param {Integer} exp  The exponent (the 10 logarithm of the adjustment base).
* @return {Number} The adjusted value.
*/
function roundTo(value, exp) {
  // If the exp is undefined or zero...
  if (typeof exp === 'undefined' || +exp === 0) {
    return Math.round(value);
  }
  value = +value;
  exp = -(+exp);
  // If the value is not a number or the exp is not an integer...
  if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
    return NaN;
  }
  // Shift
  value = value.toString().split('e');
  value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
  // Shift back
  value = value.toString().split('e');
  return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
}

function setVar(name, value, variables) {
  if (variables) variables[name] = value;
  return value;
}

function arrayIndex(array, index) {
  return array[index | 0];
}

function max(array) {
  if (arguments.length === 1 && Array.isArray(array)) {
    return Math.max.apply(Math, array);
  } else {
    return Math.max.apply(Math, arguments);
  }
}

function min(array) {
  if (arguments.length === 1 && Array.isArray(array)) {
    return Math.min.apply(Math, array);
  } else {
    return Math.min.apply(Math, arguments);
  }
}

function arrayMap(f, a) {
  if (typeof f !== 'function') {
    throw new Error('First argument to map is not a function');
  }
  if (!Array.isArray(a)) {
    throw new Error('Second argument to map is not an array');
  }
  return a.map(function (x, i) {
    return f(x, i);
  });
}

function arrayFold(f, init, a) {
  if (typeof f !== 'function') {
    throw new Error('First argument to fold is not a function');
  }
  if (!Array.isArray(a)) {
    throw new Error('Second argument to fold is not an array');
  }
  return a.reduce(function (acc, x, i) {
    return f(acc, x, i);
  }, init);
}

function arrayFilter(f, a) {
  if (typeof f !== 'function') {
    throw new Error('First argument to filter is not a function');
  }
  if (!Array.isArray(a)) {
    throw new Error('Second argument to filter is not an array');
  }
  return a.filter(function (x, i) {
    return f(x, i);
  });
}

function stringOrArrayIndexOf(target, s) {
  if (!(Array.isArray(s) || typeof s === 'string')) {
    throw new Error('Second argument to indexOf is not a string or array');
  }

  return s.indexOf(target);
}

function arrayJoin(sep, a) {
  if (!Array.isArray(a)) {
    throw new Error('Second argument to join is not an array');
  }

  return a.join(sep);
}

function sign(x) {
  return ((x > 0) - (x < 0)) || +x;
}

var ONE_THIRD = 1/3;
function cbrt(x) {
  return x < 0 ? -Math.pow(-x, ONE_THIRD) : Math.pow(x, ONE_THIRD);
}

function expm1(x) {
  return Math.exp(x) - 1;
}

function log1p(x) {
  return Math.log(1 + x);
}

function log2(x) {
  return Math.log(x) / Math.LN2;
}

function Parser(options) {
  this.options = options || {};
  this.unaryOps = {
    sin: Math.sin,
    cos: Math.cos,
    tan: Math.tan,
    asin: Math.asin,
    acos: Math.acos,
    atan: Math.atan,
    sinh: Math.sinh || sinh,
    cosh: Math.cosh || cosh,
    tanh: Math.tanh || tanh,
    asinh: Math.asinh || asinh,
    acosh: Math.acosh || acosh,
    atanh: Math.atanh || atanh,
    sqrt: Math.sqrt,
    cbrt: Math.cbrt || cbrt,
    log: Math.log,
    log2: Math.log2 || log2,
    ln: Math.log,
    lg: Math.log10 || log10,
    log10: Math.log10 || log10,
    expm1: Math.expm1 || expm1,
    log1p: Math.log1p || log1p,
    abs: Math.abs,
    ceil: Math.ceil,
    floor: Math.floor,
    round: Math.round,
    trunc: Math.trunc || trunc,
    '-': neg,
    '+': Number,
    exp: Math.exp,
    not: not,
    length: stringOrArrayLength,
    '!': factorial,
    sign: Math.sign || sign
  };

  this.binaryOps = {
    '+': add,
    '-': sub,
    '*': mul,
    '/': div,
    '%': mod,
    '^': Math.pow,
    '||': concat,
    '==': equal,
    '!=': notEqual,
    '>': greaterThan,
    '<': lessThan,
    '>=': greaterThanEqual,
    '<=': lessThanEqual,
    and: andOperator,
    or: orOperator,
    'in': inOperator,
    '=': setVar,
    '[': arrayIndex
  };

  this.ternaryOps = {
    '?': condition
  };

  this.functions = {
    random: random,
    fac: factorial,
    min: min,
    max: max,
    hypot: Math.hypot || hypot,
    pyt: Math.hypot || hypot, // backward compat
    pow: Math.pow,
    atan2: Math.atan2,
    'if': condition,
    gamma: gamma,
    roundTo: roundTo,
    map: arrayMap,
    fold: arrayFold,
    filter: arrayFilter,
    indexOf: stringOrArrayIndexOf,
    join: arrayJoin
  };

  this.consts = {
    E: Math.E,
    PI: Math.PI,
    'true': true,
    'false': false
  };
}

Parser.prototype.parse = function (expr) {
  var instr = [];
  var parserState = new ParserState(
    this,
    new TokenStream(this, expr),
    { allowMemberAccess: this.options.allowMemberAccess }
  );

  parserState.parseExpression(instr);
  parserState.expect(TEOF, 'EOF');

  return new Expression(instr, this);
};

Parser.prototype.evaluate = function (expr, variables) {
  return this.parse(expr).evaluate(variables);
};

var sharedParser = new Parser();

Parser.parse = function (expr) {
  return sharedParser.parse(expr);
};

Parser.evaluate = function (expr, variables) {
  return sharedParser.parse(expr).evaluate(variables);
};

var optionNameMap = {
  '+': 'add',
  '-': 'subtract',
  '*': 'multiply',
  '/': 'divide',
  '%': 'remainder',
  '^': 'power',
  '!': 'factorial',
  '<': 'comparison',
  '>': 'comparison',
  '<=': 'comparison',
  '>=': 'comparison',
  '==': 'comparison',
  '!=': 'comparison',
  '||': 'concatenate',
  'and': 'logical',
  'or': 'logical',
  'not': 'logical',
  '?': 'conditional',
  ':': 'conditional',
  '=': 'assignment',
  '[': 'array',
  '()=': 'fndef'
};

function getOptionName(op) {
  return optionNameMap.hasOwnProperty(op) ? optionNameMap[op] : op;
}

Parser.prototype.isOperatorEnabled = function (op) {
  var optionName = getOptionName(op);
  var operators = this.options.operators || {};

  return !(optionName in operators) || !!operators[optionName];
};

/*!
 Based on ndef.parser, by Raphael Graf(r@undefined.ch)
 http://www.undefined.ch/mparser/index.html

 Ported to JavaScript and modified by Matthew Crumley (email@matthewcrumley.com, http://silentmatt.com/)

 You are free to use and modify this code in anyway you find useful. Please leave this comment in the code
 to acknowledge its original source. If you feel like it, I enjoy hearing about projects that use my code,
 but don't feel like you have to let me know or ask permission.
*/

// Backwards compatibility
var index = {
  Parser: Parser,
  Expression: Expression
};

/* harmony default export */ var dist = (index);


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const mathParser = new Parser({
    operators: {
        // These default to true, but are included to be explicit
        add: true,
        divide: true,
        multiply: true,
        subtract: true,
        concatenate: false,
        conditional: false,
        factorial: false,
        power: false,
        remainder: false,
        logical: false,
        comparison: false,
        in: false,
    },
});
/**
 * Rounds to the nearest decimal.
 *
 * @param value The number to round.
 * @param decimals How many decimal places you want to round to.
 * @returns Number rounded to the correct number of decimals.
 */
function roundDecimal(value, decimals) {
    return Number(`${Math.round(Number(`${Number(value).toFixed(20)}e${decimals}`))}e-${decimals}`);
}
/**
 * Using the ceiling of the closest decimal.
 * Example: ceilDecimal(0.131, 2); // 0.14.
 *
 * @param value The number to ceil.
 * @param decimals How many decimal places you want to round to.
 * @returns Number rounded to the correct number of decimals.
 */
function ceilDecimal(value, decimals) {
    return Number(`${Math.ceil(Number(`${Number(value).toFixed(20)}e${decimals}`))}e-${decimals}`);
}
/**
 * Using the floor of the closest decimal.
 * Example: floorDecimal(0.131, 2); // 0.13.
 *
 * @param value The number to floor.
 * @param decimals How many decimal places you want to round to.
 * @returns Number rounded to the correct number of decimals.
 */
function floorDecimal(value, decimals) {
    return Number(`${Math.floor(Number(`${Number(value).toFixed(20)}e${decimals}`))}e-${decimals}`);
}
/**
 * Makes sure that a value satys within limits.
 * This method will also convert the value to Integer.
 *
 * @param value The value that needs to be checked.
 * @param min Min value.
 * @param max Max value.
 * @returns The value, Integer, if it stays into the limits, max or min otherwise.
 */
function constrainToRange(value, min, max) {
    value = roundDecimal(value, 0);
    return Math.max(Math.min(value, max), min);
}
/**
 * Determines if the given value is inside the given range. The min and max values are considered to be valid.
 *
 * @param value The value to check.
 * @param [min=-Infinity] The minimum value allowed.
 * @param [max=Infinity] The maximum value allowed.
 * @returns True if the given number is in range, otherwise false.
 */
function inRange(value, min = -Infinity, max = Infinity) {
    return min <= value && value <= max;
}
/**
 * Evaluates a given numeric expression.
 *
 * @param expr The numeric expression to evaluate.
 * @returns The result of evaluating the expression, NaN otherwise.
 */
function evaluateExpression(expr) {
    const delocalizedExpr = expr.replace(new RegExp('\\,', 'g'), '.');
    try {
        return mathParser.evaluate(delocalizedExpr);
    }
    catch (_a) {
        return NaN;
    }
}


/***/ }),

/***/ "Aay3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("circle", {
  cx: "24",
  cy: "14",
  r: "4"
}), React.createElement("path", {
  d: "M40 2H8a2 2 0 0 0-2 2v40a2 2 0 0 0 2 2h32a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zm-2 40h-8v-8a2 2 0 0 0 2-2v-8a4 4 0 0 0-4-4h-8a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2v8h-8V6h28z"
}));

/***/ }),

/***/ "Ai3n":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CLIPBOARD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return SEPARATOR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return USER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return DEFAULT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return PHOTO; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return US_PAPER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return EURO_PAPER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return MOBILE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return ICONOGRAPHY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return VIDEO; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return WEB; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ART_ILLUSTRATION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ALL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return PRINT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return FILM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ART; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return RECENT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return CUSTOM; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return SAVED; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return CREATIVE_CLOUD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return FORBIDDEN_CHARACTERS; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CLIPBOARD = 'clipboard';
const SEPARATOR = 'separator';
const USER = 'user';
const DEFAULT = 'default';
const PHOTO = 'photo';
const US_PAPER = 'uspaper';
const EURO_PAPER = 'europaper';
const MOBILE = 'mobile';
const ICONOGRAPHY = 'iconography';
const VIDEO = 'video';
const WEB = 'web';
const ART_ILLUSTRATION = 'artillustration';
const ALL = 'all';
const PRINT = 'print';
const FILM = 'film';
const ART = 'art';
const RECENT = 'recent';
const CUSTOM = 'custom';
const SAVED = 'saved';
// used for service_code in IngestWrapper
const CREATIVE_CLOUD = 'creativecloud';
// used for document name validation
const FORBIDDEN_CHARACTERS = {
    win: /[\<\>\:\"\/\\\|\?\*]/g,
    mac: /[\/\:]/g,
};


/***/ }),

/***/ "AwBQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

var Lookup = function () {
  function Lookup() {
    this._map = new Map();
  }

  Lookup.prototype.getMap = function () {
    return this._map;
  };

  Lookup.prototype.add = function (serviceIdentifier, value) {
    if (serviceIdentifier === null || serviceIdentifier === undefined) {
      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
    }

    if (value === null || value === undefined) {
      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
    }

    var entry = this._map.get(serviceIdentifier);

    if (entry !== undefined) {
      entry.push(value);

      this._map.set(serviceIdentifier, entry);
    } else {
      this._map.set(serviceIdentifier, [value]);
    }
  };

  Lookup.prototype.get = function (serviceIdentifier) {
    if (serviceIdentifier === null || serviceIdentifier === undefined) {
      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
    }

    var entry = this._map.get(serviceIdentifier);

    if (entry !== undefined) {
      return entry;
    } else {
      throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
    }
  };

  Lookup.prototype.remove = function (serviceIdentifier) {
    if (serviceIdentifier === null || serviceIdentifier === undefined) {
      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
    }

    if (!this._map.delete(serviceIdentifier)) {
      throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
    }
  };

  Lookup.prototype.removeByCondition = function (condition) {
    var _this = this;

    this._map.forEach(function (entries, key) {
      var updatedEntries = entries.filter(function (entry) {
        return !condition(entry);
      });

      if (updatedEntries.length > 0) {
        _this._map.set(key, updatedEntries);
      } else {
        _this._map.delete(key);
      }
    });
  };

  Lookup.prototype.hasKey = function (serviceIdentifier) {
    if (serviceIdentifier === null || serviceIdentifier === undefined) {
      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
    }

    return this._map.has(serviceIdentifier);
  };

  Lookup.prototype.clone = function () {
    var copy = new Lookup();

    this._map.forEach(function (value, key) {
      value.forEach(function (b) {
        return copy.add(key, b.clone());
      });
    });

    return copy;
  };

  Lookup.prototype.traverse = function (func) {
    this._map.forEach(function (value, key) {
      func(key, value);
    });
  };

  return Lookup;
}();

exports.Lookup = Lookup;

/***/ }),

/***/ "BPvV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("VIzJ");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Module container for holding the internationalization tables (I18N).
 */
class I18N {
    constructor() {
        this.SUPPORTED_LANGUAGES = {
            CS: 'cs-CZ',
            CS_CZ: 'cs-CZ',
            DA: 'da-DK',
            DA_DK: 'da-DK',
            DE: 'de-DE',
            DE_DE: 'de-DE',
            EN: 'en-US',
            EN_US: 'en-US',
            EN_AE: 'en-AE',
            EN_GB: 'en-GB',
            EN_IL: 'en-IL',
            ES: 'es-ES',
            ES_ES: 'es-ES',
            ES_MX: 'es-MX',
            FI: 'fi-FI',
            FI_FI: 'fi-FI',
            FR: 'fr-FR',
            FR_FR: 'fr-FR',
            FR_CA: 'fr-CA',
            FR_MA: 'fr-MA',
            HU: 'hu-HU',
            HU_HU: 'hu-HU',
            IT: 'it-IT',
            IT_IT: 'it-IT',
            JA: 'ja-JP',
            JA_JP: 'ja-JP',
            KO: 'ko-KR',
            KO_KR: 'ko-KR',
            NB: 'nb-NO',
            NB_NO: 'nb-NO',
            NL: 'nl-NL',
            NL_NL: 'nl-NL',
            PL: 'pl-PL',
            PL_PL: 'pl-PL',
            PT: 'pt-BR',
            PT_BR: 'pt-BR',
            RU: 'ru-RU',
            RU_RU: 'ru-RU',
            SV: 'sv-SE',
            SV_SE: 'sv-SE',
            TR: 'tr-TR',
            TR_TR: 'tr-TR',
            UK: 'uk-UA',
            UK_UA: 'uk-UA',
            ZH: 'zh-TW',
            ZH_TW: 'zh-TW',
            ZH_CN: 'zh-CN',
        };
        this._logger = js_logger__WEBPACK_IMPORTED_MODULE_1___default.a.get('i18n');
    }
    /**
     * This method will check if the local language is supported.
     *
     * @param [language] The language string to test.
     * @returns The language if is supported, 'en-US' otherwise.
     */
    getLanguage(language) {
        if (language) {
            const lang = language.replace('-', '_').toUpperCase();
            if (this.SUPPORTED_LANGUAGES[lang]) {
                return this.SUPPORTED_LANGUAGES[lang];
            }
            // Fallback for defualt country language if supported
            const languageWithNoRegion = lang.slice(0, 2);
            if (this.SUPPORTED_LANGUAGES[languageWithNoRegion]) {
                return this.SUPPORTED_LANGUAGES[languageWithNoRegion];
            }
        }
        return 'en-US';
    }
    /**
     * This method transform a locale in the pattern en-US to en_US.
     *
     * @param locale The locale to be transformed.
     * @returns The transformed locale.
     */
    transformLocale(locale) {
        const groups = /([a-z]*)[-]([A-Z]*)/g.exec(locale);
        if (groups && groups[1] && groups[2]) {
            return `${groups[1]}_${groups[2]}`;
        }
        const transformedLanguage = locale.toUpperCase();
        if (this.SUPPORTED_LANGUAGES[transformedLanguage]) {
            return this.SUPPORTED_LANGUAGES[transformedLanguage].replace('-', '_');
        }
        return 'en_US';
    }
    /**
     * This method will load the locale string from the designated files.
     *
     * @param locale The locale string to load.
     * @returns The localized strings for provided locale.
     */
    async fetchLocaleStrings(locale) {
        let actualLocale = this.transformLocale(locale);
        if (actualLocale === 'es_MX') {
            actualLocale = 'es_ES';
        }
        if (actualLocale === 'fr_MA') {
            actualLocale = 'fr_FR';
        }
        // Add English strings first, and then override them with the localized strings - this way if a localized
        // string is missing, we'll fall back to English, rather than rendering variable names into the UI.
        const [defaultStrings, localeStrings] = await Promise.all([
            (await fetch(`./cmdn-locale/en_US/strings.json`)).json(),
            await fetch(`./cmdn-locale/${actualLocale}/strings.json`)
                .then(response => response.json())
                .catch(() => { }),
        ]);
        const strings = { ...defaultStrings, ...localeStrings };
        return strings;
    }
    /**
     * This method will set the current language, loading the appropriate react-intl locale
     * as well as setting the I18N strings for the current language.
     *
     * @param locale The locale string to load in react-intl.
     * @param strings The strings to use.
     */
    setLocaleAndStrings(locale, strings) {
        Object(react_intl__WEBPACK_IMPORTED_MODULE_0__[/* addLocaleData */ "f"])(this.getLocaleData(locale));
        this._loadedLocale = locale;
        this._loadedStrings = strings;
    }
    /**
     * Loads the language information required for react-intl to work. If the provided locale is not supported,
     * it fallsback to English.
     *
     * @param locale The locale to load.
     * @returns The loaded module.
     */
    getLocaleData(locale) {
        const REACT_DATASETS = {
            cs: __webpack_require__("gdxS"),
            da: __webpack_require__("x+Ei"),
            de: __webpack_require__("eZNI"),
            en: __webpack_require__("U9ri"),
            es: __webpack_require__("HpW/"),
            fi: __webpack_require__("oqCq"),
            fr: __webpack_require__("Hp/b"),
            hu: __webpack_require__("nqsH"),
            it: __webpack_require__("dEZ4"),
            ja: __webpack_require__("qmEL"),
            ko: __webpack_require__("TYVA"),
            nb: __webpack_require__("Pcmv"),
            nl: __webpack_require__("Q4ZP"),
            pl: __webpack_require__("UBvv"),
            pt: __webpack_require__("Mwd1"),
            ru: __webpack_require__("456K"),
            sv: __webpack_require__("JLB2"),
            tr: __webpack_require__("AN/Y"),
            uk: __webpack_require__("Yyt1"),
            zh: __webpack_require__("mw44"),
            zu: __webpack_require__("ILpG"),
        };
        const language = locale.substr(0, 2);
        return REACT_DATASETS[language] || REACT_DATASETS.en;
    }
    /**
     * Retrieve a localized string to the object's string table. If the string
     * is not present, then a standard error string is returned instead.
     *
     * @param [messages] The strings to use.
     * @param [stringID] Key index into the table.
     * @returns Translated value to associated with the key.
     */
    getLocalizedString(messages, stringID) {
        if (!stringID || !messages) {
            return '';
        }
        let defaultDelimiter = stringID.indexOf('=');
        if (defaultDelimiter < 0) {
            // no default value included with the key
            defaultDelimiter = stringID.length;
        }
        const strKey = stringID.slice(0, defaultDelimiter);
        const strDefaultValue = stringID.slice(defaultDelimiter + 1);
        const locStr = messages[strKey];
        let translatedStr = locStr ? locStr.replace('^n', '<br>') : null;
        translatedStr = translatedStr || strDefaultValue;
        return translatedStr || stringID;
    }
    /**
     * Returns the loaded locale.
     *
     * @param [omitRegion=false] If this parameter is true, only the language substring of the locale is returned.
     * @returns The loaded locale.
     */
    getLoadedLocale(omitRegion = false) {
        if (!this._loadedLocale) {
            this._logger.warn('Locale not initialized!');
            return omitRegion ? 'en' : 'en-US';
        }
        const fullLocale = this._loadedLocale;
        if (omitRegion) {
            const isLongLocale = fullLocale.length > 2;
            return isLongLocale ? fullLocale.slice(0, 2) : fullLocale;
        }
        return fullLocale;
    }
    /**
     * Returns the object containing translation strings.
     *
     * @returns Object containing strings used for translation.
     */
    getLoadedStrings() {
        if (!this._loadedStrings) {
            this._logger.warn('Locale not initialized!');
            return {};
        }
        else if (Array.isArray(this._loadedStrings)) {
            this._logger.warn('Wrong locale initialization!');
            return {};
        }
        return this._loadedStrings;
    }
    /**
     * Retrieve a localized string to i18n's string table. If the string
     * is not present, then the string is returned as is.
     * This is not to be used in React components.
     * Please use react-intl formatMessage() or <FormattedMessage/> there.
     *
     * @param stringID Key index into the table.
     * @returns Translated value to associated with the key.
     */
    formatMessage(stringID) {
        if (!this._loadedStrings) {
            return stringID;
        }
        return this.getLocalizedString(this._loadedStrings, stringID);
    }
}
/**
 * Public exports.
 */
/* harmony default export */ __webpack_exports__["a"] = (new I18N());


/***/ }),

/***/ "BwkI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DefaultPresetsCount; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DefaultTabTitleId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return RoundingRules; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return NUMBER_LETTERS_REGEX; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return splitRecentViewForHostId; });
/* harmony import */ var _PlatformUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5MlJ");
/* harmony import */ var _hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("U05r");
/* harmony import */ var _UnitsUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Fr31");
/* harmony import */ var _hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("V9pm");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




/**
 * Default number of presets based on host.
 *
 */
const DefaultPresetsCount = {
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].ILST]: 3,
};
/**
 * Default tab title id based on host.
 *
 */
const DefaultTabTitleId = {
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].ILST]: 'newdoc_ai_recent_default_items',
};
/**
 * Number of decimals used per unit while rounding for Illustrator.
 *
 */
const IllustratorRoundingRules = {
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PIXELS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].MILLIMETERS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].CENTIMETERS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].INCHES]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PICAS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].POINTS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].HA]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].FEET]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].FEET_INCHES]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].METERS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].YARDS]: 4,
    resolution: 3,
};
/**
 * Number of decimals used per unit while rounding for InDesign.
 *
 */
const InDesignRoundingRules = {
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PIXELS]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].MILLIMETERS]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].CENTIMETERS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].INCHES]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PICAS]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].POINTS]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].INCHES_DECIMALS]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].CICEROS]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].AGATES]: 4,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].CUBITS]: 2,
    resolution: 3,
};
/**
 * Number of decimals used per unit while rounding for Photoshop.
 *
 */
const PhotoshopRoundingRules = {
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PIXELS]: 0,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].MILLIMETERS]: 2,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].CENTIMETERS]: 2,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].INCHES]: 3,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].PICAS]: 2,
    [_UnitsUtils__WEBPACK_IMPORTED_MODULE_2__[/* UnitId */ "p"].POINTS]: 1,
    resolution: 3,
};
/*
 * Split Recent Grid view for this hosts array
 */
const SplitView = [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].PHXS, _hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].IDSN];
const HostRules = {
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].PHOTOSHOP]: PhotoshopRoundingRules,
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].ILLUSTRATOR]: IllustratorRoundingRules,
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].INDESIGN]: InDesignRoundingRules,
};
const hostName = Object(_PlatformUtils__WEBPACK_IMPORTED_MODULE_0__[/* getHostName */ "d"])();
const RoundingRules = HostRules[hostName] || PhotoshopRoundingRules;
const NUMBER_UNIT_SIMPLE_REGEX = new RegExp('[^0-9.,*/+\\-a-zA-Z"\'”’ \u0400-\u04ff]', 'g');
const NUMBER_UNIT_SPECIAL_REGEX = new RegExp('[^0-9٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹。.,*/+\\-a-zA-Z\uff01-\uff5e"”\\s\u0400-\u04ff]', 'g');
const NUMBER_UNIT_SPECIAL_EXTENDED_REGEX = new RegExp('[^0-9٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹。.,*/+\\-a-zA-Z\uff01-\uff5e"\'”’\\s\u0400-\u04ff]', 'g');
const HOST_REGEX = {
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].PHOTOSHOP]: NUMBER_UNIT_SIMPLE_REGEX,
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].ILLUSTRATOR]: NUMBER_UNIT_SPECIAL_EXTENDED_REGEX,
    [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].INDESIGN]: NUMBER_UNIT_SPECIAL_REGEX,
};
const NUMBER_LETTERS_REGEX = HOST_REGEX[hostName] || NUMBER_UNIT_SIMPLE_REGEX;
/**
 * Checks if we have to split grid view for a specific host.
 *
 * @param id Host that needs check.
 * @returns Return true if we need to split grid, false if not.
 */
const splitRecentViewForHostId = function (id) {
    return SplitView.indexOf(id) > -1;
};


/***/ }),

/***/ "CQbc":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return Orientation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Model; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Views; });
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/* harmony import */ var _utils_HostUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("BwkI");
/* harmony import */ var _utils_MathUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("AGvf");
/* harmony import */ var _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("0B1G");
/* harmony import */ var _hosts_HostNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("U05r");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





var Orientation;
(function (Orientation) {
    Orientation["LANDSCAPE"] = "landscape";
    Orientation["PORTRAIT"] = "portrait";
})(Orientation || (Orientation = {}));
const Model = {
    category: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    title: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    description: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, '', [null, undefined]),
    height: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number),
    identifier: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].union(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string)),
    kind: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].enumeration(Object.values(_interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])),
    lastUsedTime: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number),
    resolution: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, 72),
    size: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, 0, [null, undefined]),
    // @todo: we really need to fix how we deal with units since we use the key instead of the value
    units: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybeNull(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    width: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number),
    name: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    icon: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    group: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    iconIdentifier: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].union(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string)),
    uniqueID: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
};
const Views = (self) => ({
    get displayWidth() {
        const width = typeof self.width !== 'undefined' ? self.width : NaN;
        if (!self.units) {
            return width;
        }
        return Object(_utils_MathUtils__WEBPACK_IMPORTED_MODULE_2__[/* roundDecimal */ "f"])(width, Number(_utils_HostUtils__WEBPACK_IMPORTED_MODULE_1__[/* RoundingRules */ "d"][self.units]));
    },
    get displayHeight() {
        const height = typeof self.height !== 'undefined' ? self.height : NaN;
        if (!self.units) {
            return height;
        }
        return Object(_utils_MathUtils__WEBPACK_IMPORTED_MODULE_2__[/* roundDecimal */ "f"])(height, Number(_utils_HostUtils__WEBPACK_IMPORTED_MODULE_1__[/* RoundingRules */ "d"][self.units]));
    },
    get displayResolution() {
        return Object(_utils_MathUtils__WEBPACK_IMPORTED_MODULE_2__[/* roundDecimal */ "f"])(self.resolution, _utils_HostUtils__WEBPACK_IMPORTED_MODULE_1__[/* RoundingRules */ "d"].resolution);
    },
    get orientation() {
        if (typeof self.height === 'undefined' || typeof self.width === 'undefined') {
            // @todo: should default from default settings
            return undefined;
        }
        return self.height >= self.width ? Orientation.PORTRAIT : Orientation.LANDSCAPE;
    },
});
const DocumentTemplateModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"]
    .model(Model)
    .volatile(self => ({
    host: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, _hosts_HostNames__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].PHOTOSHOP),
}))
    .views(Views);
/* unused harmony default export */ var _unused_webpack_default_export = (DocumentTemplateModel);


/***/ }),

/***/ "Ce8m":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M43 12h-6a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h3v22H6V16h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v28a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V13a1 1 0 0 0-1-1z"
}), React.createElement("path", {
  d: "M32.586 16H26V3a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v13h-6.586a1 1 0 0 0-.707 1.707L23 28l10.293-10.293A1 1 0 0 0 32.586 16z"
}));

/***/ }),

/***/ "D4pm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: FileSystem

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/FileSystemAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const fileSystemAPI = () => window.require && window.require('fs');

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/UXPAPI.ts
var UXPAPI = __webpack_require__("VFTl");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/FileSystem.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Utility class to wrap the FileSystem API so that it can be used properly in the browser.
 */
class FileSystem_FileSystem {
    constructor() {
        this._fs = fileSystemAPI();
    }
    /**
     * Checks if a path exists on disk.
     *
     * @param path Path to check on disk.
     * @returns Whether the path exists or not.
     */
    async pathExists(path, absolute = false) {
        const finalPath = absolute ? `file://${path}` : path;
        if (!this._fs) {
            return true;
        }
        return await this._fs
            .lstat(finalPath)
            .then(() => true)
            .catch(() => false);
    }
    /**
     * Reads a JSON file from disk.
     *
     * @param path Path to read the JSON from.
     * @returns If available, the parsed JSON.
     */
    async readJson(path) {
        if (!this._fs) {
            return true;
        }
        const data = await this._fs.readFile(`file://${path}`, 'utf-8');
        return JSON.parse(data);
    }
    /**
     * Write a file to disk.
     *
     * @param args The data to write into the File System.
     */
    async writeFile(...args) {
        if (!this._fs) {
            return;
        }
        await this._fs.writeFile(...args);
    }
    /**
     * Gets the folder for data storage folder.
     *
     * @returns Returns the data folder.
     */
    async getDataFolder() {
        return (this._dataFolder =
            this._dataFolder ||
                (window.require && (await Object(UXPAPI["a" /* uxpAPI */])().storage.localFileSystem.getDataFolder()).nativePath));
    }
}
/* harmony default export */ var stock_FileSystem = __webpack_exports__["a"] = (new FileSystem_FileSystem());


/***/ }),

/***/ "D9lx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_in_syntax_1 = __webpack_require__("6AGu");

var binding_on_syntax_1 = __webpack_require__("406g");

var binding_when_syntax_1 = __webpack_require__("z4Hk");

var BindingInWhenOnSyntax = function () {
  function BindingInWhenOnSyntax(binding) {
    this._binding = binding;
    this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
    this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
    this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);
  }

  BindingInWhenOnSyntax.prototype.inRequestScope = function () {
    return this._bindingInSyntax.inRequestScope();
  };

  BindingInWhenOnSyntax.prototype.inSingletonScope = function () {
    return this._bindingInSyntax.inSingletonScope();
  };

  BindingInWhenOnSyntax.prototype.inTransientScope = function () {
    return this._bindingInSyntax.inTransientScope();
  };

  BindingInWhenOnSyntax.prototype.when = function (constraint) {
    return this._bindingWhenSyntax.when(constraint);
  };

  BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {
    return this._bindingWhenSyntax.whenTargetNamed(name);
  };

  BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {
    return this._bindingWhenSyntax.whenTargetIsDefault();
  };

  BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenTargetTagged(tag, value);
  };

  BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
    return this._bindingWhenSyntax.whenInjectedInto(parent);
  };

  BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {
    return this._bindingWhenSyntax.whenParentNamed(name);
  };

  BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenParentTagged(tag, value);
  };

  BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
    return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
  };

  BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
    return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
  };

  BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
    return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
  };

  BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
  };

  BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
    return this._bindingWhenSyntax.whenNoAncestorNamed(name);
  };

  BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
  };

  BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
    return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
  };

  BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
    return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
  };

  BindingInWhenOnSyntax.prototype.onActivation = function (handler) {
    return this._bindingOnSyntax.onActivation(handler);
  };

  return BindingInWhenOnSyntax;
}();

exports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;

/***/ }),

/***/ "Defv":
/***/ (function(module, exports) {

/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/***/ }),

/***/ "DlQD":
/***/ (function(module, exports, __webpack_require__) {

/**
 * marked - a markdown parser
 * Copyright (c) 2011-2020, Christopher Jeffrey. (MIT Licensed)
 * https://github.com/markedjs/marked
 */

/**
 * DO NOT EDIT THIS FILE
 * The code in this file is generated from files in ./src/
 */
(function (global, factory) {
   true ? module.exports = factory() : undefined;
})(this, function () {
  'use strict';

  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }

  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }

  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;

    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];

    return arr2;
  }

  function _createForOfIteratorHelperLoose(o, allowArrayLike) {
    var it;

    if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
        return function () {
          if (i >= o.length) return {
            done: true
          };
          return {
            done: false,
            value: o[i++]
          };
        };
      }

      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }

    it = o[Symbol.iterator]();
    return it.next.bind(it);
  }

  function createCommonjsModule(fn, module) {
    return module = {
      exports: {}
    }, fn(module, module.exports), module.exports;
  }

  var defaults = createCommonjsModule(function (module) {
    function getDefaults() {
      return {
        baseUrl: null,
        breaks: false,
        gfm: true,
        headerIds: true,
        headerPrefix: '',
        highlight: null,
        langPrefix: 'language-',
        mangle: true,
        pedantic: false,
        renderer: null,
        sanitize: false,
        sanitizer: null,
        silent: false,
        smartLists: false,
        smartypants: false,
        tokenizer: null,
        walkTokens: null,
        xhtml: false
      };
    }

    function changeDefaults(newDefaults) {
      module.exports.defaults = newDefaults;
    }

    module.exports = {
      defaults: getDefaults(),
      getDefaults: getDefaults,
      changeDefaults: changeDefaults
    };
  });
  var defaults_1 = defaults.defaults;
  var defaults_2 = defaults.getDefaults;
  var defaults_3 = defaults.changeDefaults;
  /**
   * Helpers
   */

  var escapeTest = /[&<>"']/;
  var escapeReplace = /[&<>"']/g;
  var escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/;
  var escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g;
  var escapeReplacements = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#39;'
  };

  var getEscapeReplacement = function getEscapeReplacement(ch) {
    return escapeReplacements[ch];
  };

  function escape(html, encode) {
    if (encode) {
      if (escapeTest.test(html)) {
        return html.replace(escapeReplace, getEscapeReplacement);
      }
    } else {
      if (escapeTestNoEncode.test(html)) {
        return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
      }
    }

    return html;
  }

  var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;

  function unescape(html) {
    // explicitly match decimal, hex, and named HTML entities
    return html.replace(unescapeTest, function (_, n) {
      n = n.toLowerCase();
      if (n === 'colon') return ':';

      if (n.charAt(0) === '#') {
        return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));
      }

      return '';
    });
  }

  var caret = /(^|[^\[])\^/g;

  function edit(regex, opt) {
    regex = regex.source || regex;
    opt = opt || '';
    var obj = {
      replace: function replace(name, val) {
        val = val.source || val;
        val = val.replace(caret, '$1');
        regex = regex.replace(name, val);
        return obj;
      },
      getRegex: function getRegex() {
        return new RegExp(regex, opt);
      }
    };
    return obj;
  }

  var nonWordAndColonTest = /[^\w:]/g;
  var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;

  function cleanUrl(sanitize, base, href) {
    if (sanitize) {
      var prot;

      try {
        prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();
      } catch (e) {
        return null;
      }

      if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
        return null;
      }
    }

    if (base && !originIndependentUrl.test(href)) {
      href = resolveUrl(base, href);
    }

    try {
      href = encodeURI(href).replace(/%25/g, '%');
    } catch (e) {
      return null;
    }

    return href;
  }

  var baseUrls = {};
  var justDomain = /^[^:]+:\/*[^/]*$/;
  var protocol = /^([^:]+:)[\s\S]*$/;
  var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;

  function resolveUrl(base, href) {
    if (!baseUrls[' ' + base]) {
      // we can ignore everything in base after the last slash of its path component,
      // but we might need to add _that_
      // https://tools.ietf.org/html/rfc3986#section-3
      if (justDomain.test(base)) {
        baseUrls[' ' + base] = base + '/';
      } else {
        baseUrls[' ' + base] = rtrim(base, '/', true);
      }
    }

    base = baseUrls[' ' + base];
    var relativeBase = base.indexOf(':') === -1;

    if (href.substring(0, 2) === '//') {
      if (relativeBase) {
        return href;
      }

      return base.replace(protocol, '$1') + href;
    } else if (href.charAt(0) === '/') {
      if (relativeBase) {
        return href;
      }

      return base.replace(domain, '$1') + href;
    } else {
      return base + href;
    }
  }

  var noopTest = {
    exec: function noopTest() {}
  };

  function merge(obj) {
    var i = 1,
        target,
        key;

    for (; i < arguments.length; i++) {
      target = arguments[i];

      for (key in target) {
        if (Object.prototype.hasOwnProperty.call(target, key)) {
          obj[key] = target[key];
        }
      }
    }

    return obj;
  }

  function splitCells(tableRow, count) {
    // ensure that every cell-delimiting pipe has a space
    // before it to distinguish it from an escaped pipe
    var row = tableRow.replace(/\|/g, function (match, offset, str) {
      var escaped = false,
          curr = offset;

      while (--curr >= 0 && str[curr] === '\\') {
        escaped = !escaped;
      }

      if (escaped) {
        // odd number of slashes means | is escaped
        // so we leave it alone
        return '|';
      } else {
        // add space before unescaped |
        return ' |';
      }
    }),
        cells = row.split(/ \|/);
    var i = 0;

    if (cells.length > count) {
      cells.splice(count);
    } else {
      while (cells.length < count) {
        cells.push('');
      }
    }

    for (; i < cells.length; i++) {
      // leading or trailing whitespace is ignored per the gfm spec
      cells[i] = cells[i].trim().replace(/\\\|/g, '|');
    }

    return cells;
  } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
  // /c*$/ is vulnerable to REDOS.
  // invert: Remove suffix of non-c chars instead. Default falsey.


  function rtrim(str, c, invert) {
    var l = str.length;

    if (l === 0) {
      return '';
    } // Length of suffix matching the invert condition.


    var suffLen = 0; // Step left until we fail to match the invert condition.

    while (suffLen < l) {
      var currChar = str.charAt(l - suffLen - 1);

      if (currChar === c && !invert) {
        suffLen++;
      } else if (currChar !== c && invert) {
        suffLen++;
      } else {
        break;
      }
    }

    return str.substr(0, l - suffLen);
  }

  function findClosingBracket(str, b) {
    if (str.indexOf(b[1]) === -1) {
      return -1;
    }

    var l = str.length;
    var level = 0,
        i = 0;

    for (; i < l; i++) {
      if (str[i] === '\\') {
        i++;
      } else if (str[i] === b[0]) {
        level++;
      } else if (str[i] === b[1]) {
        level--;

        if (level < 0) {
          return i;
        }
      }
    }

    return -1;
  }

  function checkSanitizeDeprecation(opt) {
    if (opt && opt.sanitize && !opt.silent) {
      console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');
    }
  } // copied from https://stackoverflow.com/a/5450113/806777


  function repeatString(pattern, count) {
    if (count < 1) {
      return '';
    }

    var result = '';

    while (count > 1) {
      if (count & 1) {
        result += pattern;
      }

      count >>= 1;
      pattern += pattern;
    }

    return result + pattern;
  }

  var helpers = {
    escape: escape,
    unescape: unescape,
    edit: edit,
    cleanUrl: cleanUrl,
    resolveUrl: resolveUrl,
    noopTest: noopTest,
    merge: merge,
    splitCells: splitCells,
    rtrim: rtrim,
    findClosingBracket: findClosingBracket,
    checkSanitizeDeprecation: checkSanitizeDeprecation,
    repeatString: repeatString
  };
  var defaults$1 = defaults.defaults;
  var rtrim$1 = helpers.rtrim,
      splitCells$1 = helpers.splitCells,
      _escape = helpers.escape,
      findClosingBracket$1 = helpers.findClosingBracket;

  function outputLink(cap, link, raw) {
    var href = link.href;
    var title = link.title ? _escape(link.title) : null;
    var text = cap[1].replace(/\\([\[\]])/g, '$1');

    if (cap[0].charAt(0) !== '!') {
      return {
        type: 'link',
        raw: raw,
        href: href,
        title: title,
        text: text
      };
    } else {
      return {
        type: 'image',
        raw: raw,
        href: href,
        title: title,
        text: _escape(text)
      };
    }
  }

  function indentCodeCompensation(raw, text) {
    var matchIndentToCode = raw.match(/^(\s+)(?:```)/);

    if (matchIndentToCode === null) {
      return text;
    }

    var indentToCode = matchIndentToCode[1];
    return text.split('\n').map(function (node) {
      var matchIndentInNode = node.match(/^\s+/);

      if (matchIndentInNode === null) {
        return node;
      }

      var indentInNode = matchIndentInNode[0];

      if (indentInNode.length >= indentToCode.length) {
        return node.slice(indentToCode.length);
      }

      return node;
    }).join('\n');
  }
  /**
   * Tokenizer
   */


  var Tokenizer_1 = /*#__PURE__*/function () {
    function Tokenizer(options) {
      this.options = options || defaults$1;
    }

    var _proto = Tokenizer.prototype;

    _proto.space = function space(src) {
      var cap = this.rules.block.newline.exec(src);

      if (cap) {
        if (cap[0].length > 1) {
          return {
            type: 'space',
            raw: cap[0]
          };
        }

        return {
          raw: '\n'
        };
      }
    };

    _proto.code = function code(src, tokens) {
      var cap = this.rules.block.code.exec(src);

      if (cap) {
        var lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.

        if (lastToken && lastToken.type === 'paragraph') {
          return {
            raw: cap[0],
            text: cap[0].trimRight()
          };
        }

        var text = cap[0].replace(/^ {4}/gm, '');
        return {
          type: 'code',
          raw: cap[0],
          codeBlockStyle: 'indented',
          text: !this.options.pedantic ? rtrim$1(text, '\n') : text
        };
      }
    };

    _proto.fences = function fences(src) {
      var cap = this.rules.block.fences.exec(src);

      if (cap) {
        var raw = cap[0];
        var text = indentCodeCompensation(raw, cap[3] || '');
        return {
          type: 'code',
          raw: raw,
          lang: cap[2] ? cap[2].trim() : cap[2],
          text: text
        };
      }
    };

    _proto.heading = function heading(src) {
      var cap = this.rules.block.heading.exec(src);

      if (cap) {
        return {
          type: 'heading',
          raw: cap[0],
          depth: cap[1].length,
          text: cap[2]
        };
      }
    };

    _proto.nptable = function nptable(src) {
      var cap = this.rules.block.nptable.exec(src);

      if (cap) {
        var item = {
          type: 'table',
          header: splitCells$1(cap[1].replace(/^ *| *\| *$/g, '')),
          align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
          cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : [],
          raw: cap[0]
        };

        if (item.header.length === item.align.length) {
          var l = item.align.length;
          var i;

          for (i = 0; i < l; i++) {
            if (/^ *-+: *$/.test(item.align[i])) {
              item.align[i] = 'right';
            } else if (/^ *:-+: *$/.test(item.align[i])) {
              item.align[i] = 'center';
            } else if (/^ *:-+ *$/.test(item.align[i])) {
              item.align[i] = 'left';
            } else {
              item.align[i] = null;
            }
          }

          l = item.cells.length;

          for (i = 0; i < l; i++) {
            item.cells[i] = splitCells$1(item.cells[i], item.header.length);
          }

          return item;
        }
      }
    };

    _proto.hr = function hr(src) {
      var cap = this.rules.block.hr.exec(src);

      if (cap) {
        return {
          type: 'hr',
          raw: cap[0]
        };
      }
    };

    _proto.blockquote = function blockquote(src) {
      var cap = this.rules.block.blockquote.exec(src);

      if (cap) {
        var text = cap[0].replace(/^ *> ?/gm, '');
        return {
          type: 'blockquote',
          raw: cap[0],
          text: text
        };
      }
    };

    _proto.list = function list(src) {
      var cap = this.rules.block.list.exec(src);

      if (cap) {
        var raw = cap[0];
        var bull = cap[2];
        var isordered = bull.length > 1;
        var isparen = bull[bull.length - 1] === ')';
        var list = {
          type: 'list',
          raw: raw,
          ordered: isordered,
          start: isordered ? +bull.slice(0, -1) : '',
          loose: false,
          items: []
        }; // Get each top-level item.

        var itemMatch = cap[0].match(this.rules.block.item);
        var next = false,
            item,
            space,
            b,
            addBack,
            loose,
            istask,
            ischecked;
        var l = itemMatch.length;

        for (var i = 0; i < l; i++) {
          item = itemMatch[i];
          raw = item; // Remove the list item's bullet
          // so it is seen as the next token.

          space = item.length;
          item = item.replace(/^ *([*+-]|\d+[.)]) ?/, ''); // Outdent whatever the
          // list item contains. Hacky.

          if (~item.indexOf('\n ')) {
            space -= item.length;
            item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '');
          } // Determine whether the next list item belongs here.
          // Backpedal if it does not belong in this list.


          if (i !== l - 1) {
            b = this.rules.block.bullet.exec(itemMatch[i + 1])[0];

            if (isordered ? b.length === 1 || !isparen && b[b.length - 1] === ')' : b.length > 1 || this.options.smartLists && b !== bull) {
              addBack = itemMatch.slice(i + 1).join('\n');
              list.raw = list.raw.substring(0, list.raw.length - addBack.length);
              i = l - 1;
            }
          } // Determine whether item is loose or not.
          // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
          // for discount behavior.


          loose = next || /\n\n(?!\s*$)/.test(item);

          if (i !== l - 1) {
            next = item.charAt(item.length - 1) === '\n';
            if (!loose) loose = next;
          }

          if (loose) {
            list.loose = true;
          } // Check for task list items


          istask = /^\[[ xX]\] /.test(item);
          ischecked = undefined;

          if (istask) {
            ischecked = item[1] !== ' ';
            item = item.replace(/^\[[ xX]\] +/, '');
          }

          list.items.push({
            type: 'list_item',
            raw: raw,
            task: istask,
            checked: ischecked,
            loose: loose,
            text: item
          });
        }

        return list;
      }
    };

    _proto.html = function html(src) {
      var cap = this.rules.block.html.exec(src);

      if (cap) {
        return {
          type: this.options.sanitize ? 'paragraph' : 'html',
          raw: cap[0],
          pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
          text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]
        };
      }
    };

    _proto.def = function def(src) {
      var cap = this.rules.block.def.exec(src);

      if (cap) {
        if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);
        var tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
        return {
          tag: tag,
          raw: cap[0],
          href: cap[2],
          title: cap[3]
        };
      }
    };

    _proto.table = function table(src) {
      var cap = this.rules.block.table.exec(src);

      if (cap) {
        var item = {
          type: 'table',
          header: splitCells$1(cap[1].replace(/^ *| *\| *$/g, '')),
          align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
          cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
        };

        if (item.header.length === item.align.length) {
          item.raw = cap[0];
          var l = item.align.length;
          var i;

          for (i = 0; i < l; i++) {
            if (/^ *-+: *$/.test(item.align[i])) {
              item.align[i] = 'right';
            } else if (/^ *:-+: *$/.test(item.align[i])) {
              item.align[i] = 'center';
            } else if (/^ *:-+ *$/.test(item.align[i])) {
              item.align[i] = 'left';
            } else {
              item.align[i] = null;
            }
          }

          l = item.cells.length;

          for (i = 0; i < l; i++) {
            item.cells[i] = splitCells$1(item.cells[i].replace(/^ *\| *| *\| *$/g, ''), item.header.length);
          }

          return item;
        }
      }
    };

    _proto.lheading = function lheading(src) {
      var cap = this.rules.block.lheading.exec(src);

      if (cap) {
        return {
          type: 'heading',
          raw: cap[0],
          depth: cap[2].charAt(0) === '=' ? 1 : 2,
          text: cap[1]
        };
      }
    };

    _proto.paragraph = function paragraph(src) {
      var cap = this.rules.block.paragraph.exec(src);

      if (cap) {
        return {
          type: 'paragraph',
          raw: cap[0],
          text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1]
        };
      }
    };

    _proto.text = function text(src, tokens) {
      var cap = this.rules.block.text.exec(src);

      if (cap) {
        var lastToken = tokens[tokens.length - 1];

        if (lastToken && lastToken.type === 'text') {
          return {
            raw: cap[0],
            text: cap[0]
          };
        }

        return {
          type: 'text',
          raw: cap[0],
          text: cap[0]
        };
      }
    };

    _proto.escape = function escape(src) {
      var cap = this.rules.inline.escape.exec(src);

      if (cap) {
        return {
          type: 'escape',
          raw: cap[0],
          text: _escape(cap[1])
        };
      }
    };

    _proto.tag = function tag(src, inLink, inRawBlock) {
      var cap = this.rules.inline.tag.exec(src);

      if (cap) {
        if (!inLink && /^<a /i.test(cap[0])) {
          inLink = true;
        } else if (inLink && /^<\/a>/i.test(cap[0])) {
          inLink = false;
        }

        if (!inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
          inRawBlock = true;
        } else if (inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
          inRawBlock = false;
        }

        return {
          type: this.options.sanitize ? 'text' : 'html',
          raw: cap[0],
          inLink: inLink,
          inRawBlock: inRawBlock,
          text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]
        };
      }
    };

    _proto.link = function link(src) {
      var cap = this.rules.inline.link.exec(src);

      if (cap) {
        var lastParenIndex = findClosingBracket$1(cap[2], '()');

        if (lastParenIndex > -1) {
          var start = cap[0].indexOf('!') === 0 ? 5 : 4;
          var linkLen = start + cap[1].length + lastParenIndex;
          cap[2] = cap[2].substring(0, lastParenIndex);
          cap[0] = cap[0].substring(0, linkLen).trim();
          cap[3] = '';
        }

        var href = cap[2];
        var title = '';

        if (this.options.pedantic) {
          var link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);

          if (link) {
            href = link[1];
            title = link[3];
          } else {
            title = '';
          }
        } else {
          title = cap[3] ? cap[3].slice(1, -1) : '';
        }

        href = href.trim().replace(/^<([\s\S]*)>$/, '$1');
        var token = outputLink(cap, {
          href: href ? href.replace(this.rules.inline._escapes, '$1') : href,
          title: title ? title.replace(this.rules.inline._escapes, '$1') : title
        }, cap[0]);
        return token;
      }
    };

    _proto.reflink = function reflink(src, links) {
      var cap;

      if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {
        var link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
        link = links[link.toLowerCase()];

        if (!link || !link.href) {
          var text = cap[0].charAt(0);
          return {
            type: 'text',
            raw: text,
            text: text
          };
        }

        var token = outputLink(cap, link, cap[0]);
        return token;
      }
    };

    _proto.strong = function strong(src, maskedSrc, prevChar) {
      if (prevChar === void 0) {
        prevChar = '';
      }

      var match = this.rules.inline.strong.start.exec(src);

      if (match && (!match[1] || match[1] && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {
        maskedSrc = maskedSrc.slice(-1 * src.length);
        var endReg = match[0] === '**' ? this.rules.inline.strong.endAst : this.rules.inline.strong.endUnd;
        endReg.lastIndex = 0;
        var cap;

        while ((match = endReg.exec(maskedSrc)) != null) {
          cap = this.rules.inline.strong.middle.exec(maskedSrc.slice(0, match.index + 3));

          if (cap) {
            return {
              type: 'strong',
              raw: src.slice(0, cap[0].length),
              text: src.slice(2, cap[0].length - 2)
            };
          }
        }
      }
    };

    _proto.em = function em(src, maskedSrc, prevChar) {
      if (prevChar === void 0) {
        prevChar = '';
      }

      var match = this.rules.inline.em.start.exec(src);

      if (match && (!match[1] || match[1] && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {
        maskedSrc = maskedSrc.slice(-1 * src.length);
        var endReg = match[0] === '*' ? this.rules.inline.em.endAst : this.rules.inline.em.endUnd;
        endReg.lastIndex = 0;
        var cap;

        while ((match = endReg.exec(maskedSrc)) != null) {
          cap = this.rules.inline.em.middle.exec(maskedSrc.slice(0, match.index + 2));

          if (cap) {
            return {
              type: 'em',
              raw: src.slice(0, cap[0].length),
              text: src.slice(1, cap[0].length - 1)
            };
          }
        }
      }
    };

    _proto.codespan = function codespan(src) {
      var cap = this.rules.inline.code.exec(src);

      if (cap) {
        var text = cap[2].replace(/\n/g, ' ');
        var hasNonSpaceChars = /[^ ]/.test(text);
        var hasSpaceCharsOnBothEnds = text.startsWith(' ') && text.endsWith(' ');

        if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
          text = text.substring(1, text.length - 1);
        }

        text = _escape(text, true);
        return {
          type: 'codespan',
          raw: cap[0],
          text: text
        };
      }
    };

    _proto.br = function br(src) {
      var cap = this.rules.inline.br.exec(src);

      if (cap) {
        return {
          type: 'br',
          raw: cap[0]
        };
      }
    };

    _proto.del = function del(src) {
      var cap = this.rules.inline.del.exec(src);

      if (cap) {
        return {
          type: 'del',
          raw: cap[0],
          text: cap[1]
        };
      }
    };

    _proto.autolink = function autolink(src, mangle) {
      var cap = this.rules.inline.autolink.exec(src);

      if (cap) {
        var text, href;

        if (cap[2] === '@') {
          text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
          href = 'mailto:' + text;
        } else {
          text = _escape(cap[1]);
          href = text;
        }

        return {
          type: 'link',
          raw: cap[0],
          text: text,
          href: href,
          tokens: [{
            type: 'text',
            raw: text,
            text: text
          }]
        };
      }
    };

    _proto.url = function url(src, mangle) {
      var cap;

      if (cap = this.rules.inline.url.exec(src)) {
        var text, href;

        if (cap[2] === '@') {
          text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
          href = 'mailto:' + text;
        } else {
          // do extended autolink path validation
          var prevCapZero;

          do {
            prevCapZero = cap[0];
            cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
          } while (prevCapZero !== cap[0]);

          text = _escape(cap[0]);

          if (cap[1] === 'www.') {
            href = 'http://' + text;
          } else {
            href = text;
          }
        }

        return {
          type: 'link',
          raw: cap[0],
          text: text,
          href: href,
          tokens: [{
            type: 'text',
            raw: text,
            text: text
          }]
        };
      }
    };

    _proto.inlineText = function inlineText(src, inRawBlock, smartypants) {
      var cap = this.rules.inline.text.exec(src);

      if (cap) {
        var text;

        if (inRawBlock) {
          text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];
        } else {
          text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
        }

        return {
          type: 'text',
          raw: cap[0],
          text: text
        };
      }
    };

    return Tokenizer;
  }();

  var noopTest$1 = helpers.noopTest,
      edit$1 = helpers.edit,
      merge$1 = helpers.merge;
  /**
   * Block-Level Grammar
   */

  var block = {
    newline: /^\n+/,
    code: /^( {4}[^\n]+\n*)+/,
    fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,
    hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
    heading: /^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,
    blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
    list: /^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
    html: '^ {0,3}(?:' // optional indentation
    + '<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
    + '|comment[^\\n]*(\\n+|$)' // (2)
    + '|<\\?[\\s\\S]*?(?:\\?>\\n*|$)' // (3)
    + '|<![A-Z][\\s\\S]*?(?:>\\n*|$)' // (4)
    + '|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)' // (5)
    + '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)' // (6)
    + '|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)' // (7) open tag
    + '|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)' // (7) closing tag
    + ')',
    def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
    nptable: noopTest$1,
    table: noopTest$1,
    lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
    // regex template, placeholders will be replaced according to different paragraph
    // interruption rules of commonmark and the original markdown spec:
    _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,
    text: /^[^\n]+/
  };
  block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
  block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
  block.def = edit$1(block.def).replace('label', block._label).replace('title', block._title).getRegex();
  block.bullet = /(?:[*+-]|\d{1,9}[.)])/;
  block.item = /^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/;
  block.item = edit$1(block.item, 'gm').replace(/bull/g, block.bullet).getRegex();
  block.list = edit$1(block.list).replace(/bull/g, block.bullet).replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def', '\\n+(?=' + block.def.source + ')').getRegex();
  block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';
  block._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/;
  block.html = edit$1(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
  block.paragraph = edit$1(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs
  .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
  .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks
  .getRegex();
  block.blockquote = edit$1(block.blockquote).replace('paragraph', block.paragraph).getRegex();
  /**
   * Normal Block Grammar
   */

  block.normal = merge$1({}, block);
  /**
   * GFM Block Grammar
   */

  block.gfm = merge$1({}, block.normal, {
    nptable: '^ *([^|\\n ].*\\|.*)\\n' // Header
    + ' {0,3}([-:]+ *\\|[-| :]*)' // Align
    + '(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)',
    // Cells
    table: '^ *\\|(.+)\\n' // Header
    + ' {0,3}\\|?( *[-:]+[-| :]*)' // Align
    + '(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells

  });
  block.gfm.nptable = edit$1(block.gfm.nptable).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
  .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks
  .getRegex();
  block.gfm.table = edit$1(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
  .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks
  .getRegex();
  /**
   * Pedantic grammar (original John Gruber's loose markdown specification)
   */

  block.pedantic = merge$1({}, block.normal, {
    html: edit$1('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
    + '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),
    def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
    heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,
    fences: noopTest$1,
    // fences not supported
    paragraph: edit$1(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()
  });
  /**
   * Inline-Level Grammar
   */

  var inline = {
    escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
    autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
    url: noopTest$1,
    tag: '^comment' + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
    + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
    + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
    + '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
    + '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
    // CDATA section
    link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
    reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
    nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
    reflinkSearch: 'reflink|nolink(?!\\()',
    strong: {
      start: /^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,
      // (1) returns if starts w/ punctuation
      middle: /^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,
      endAst: /[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,
      // last char can't be punct, or final * must also be followed by punct (or endline)
      endUnd: /[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/ // last char can't be a space, and final _ must preceed punct or \s (or endline)

    },
    em: {
      start: /^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,
      // (1) returns if starts w/ punctuation
      middle: /^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,
      endAst: /[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,
      // last char can't be punct, or final * must also be followed by punct (or endline)
      endUnd: /[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/ // last char can't be a space, and final _ must preceed punct or \s (or endline)

    },
    code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
    br: /^( {2,}|\\)\n(?!\s*$)/,
    del: noopTest$1,
    text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n)))/,
    punctuation: /^([\s*punctuation])/
  }; // list of punctuation marks from common mark spec
  // without * and _ to workaround cases with double emphasis

  inline._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~';
  inline.punctuation = edit$1(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>

  inline._blockSkip = '\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>';
  inline._overlapSkip = '__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*';
  inline._comment = edit$1(block._comment).replace('(?:-->|$)', '-->').getRegex();
  inline.em.start = edit$1(inline.em.start).replace(/punctuation/g, inline._punctuation).getRegex();
  inline.em.middle = edit$1(inline.em.middle).replace(/punctuation/g, inline._punctuation).replace(/overlapSkip/g, inline._overlapSkip).getRegex();
  inline.em.endAst = edit$1(inline.em.endAst, 'g').replace(/punctuation/g, inline._punctuation).getRegex();
  inline.em.endUnd = edit$1(inline.em.endUnd, 'g').replace(/punctuation/g, inline._punctuation).getRegex();
  inline.strong.start = edit$1(inline.strong.start).replace(/punctuation/g, inline._punctuation).getRegex();
  inline.strong.middle = edit$1(inline.strong.middle).replace(/punctuation/g, inline._punctuation).replace(/overlapSkip/g, inline._overlapSkip).getRegex();
  inline.strong.endAst = edit$1(inline.strong.endAst, 'g').replace(/punctuation/g, inline._punctuation).getRegex();
  inline.strong.endUnd = edit$1(inline.strong.endUnd, 'g').replace(/punctuation/g, inline._punctuation).getRegex();
  inline.blockSkip = edit$1(inline._blockSkip, 'g').getRegex();
  inline.overlapSkip = edit$1(inline._overlapSkip, 'g').getRegex();
  inline._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
  inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
  inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;
  inline.autolink = edit$1(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
  inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
  inline.tag = edit$1(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();
  inline._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
  inline._href = /<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/;
  inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
  inline.link = edit$1(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();
  inline.reflink = edit$1(inline.reflink).replace('label', inline._label).getRegex();
  inline.reflinkSearch = edit$1(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();
  /**
   * Normal Inline Grammar
   */

  inline.normal = merge$1({}, inline);
  /**
   * Pedantic Inline Grammar
   */

  inline.pedantic = merge$1({}, inline.normal, {
    strong: {
      start: /^__|\*\*/,
      middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
      endAst: /\*\*(?!\*)/g,
      endUnd: /__(?!_)/g
    },
    em: {
      start: /^_|\*/,
      middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
      endAst: /\*(?!\*)/g,
      endUnd: /_(?!_)/g
    },
    link: edit$1(/^!?\[(label)\]\((.*?)\)/).replace('label', inline._label).getRegex(),
    reflink: edit$1(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline._label).getRegex()
  });
  /**
   * GFM Inline Grammar
   */

  inline.gfm = merge$1({}, inline.normal, {
    escape: edit$1(inline.escape).replace('])', '~|])').getRegex(),
    _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
    url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
    _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
    del: /^~+(?=\S)([\s\S]*?\S)~+/,
    text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/
  });
  inline.gfm.url = edit$1(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();
  /**
   * GFM + Line Breaks Inline Grammar
   */

  inline.breaks = merge$1({}, inline.gfm, {
    br: edit$1(inline.br).replace('{2,}', '*').getRegex(),
    text: edit$1(inline.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
  });
  var rules = {
    block: block,
    inline: inline
  };
  var defaults$2 = defaults.defaults;
  var block$1 = rules.block,
      inline$1 = rules.inline;
  var repeatString$1 = helpers.repeatString;
  /**
   * smartypants text replacement
   */

  function smartypants(text) {
    return text // em-dashes
    .replace(/---/g, "\u2014") // en-dashes
    .replace(/--/g, "\u2013") // opening singles
    .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // closing singles & apostrophes
    .replace(/'/g, "\u2019") // opening doubles
    .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201C") // closing doubles
    .replace(/"/g, "\u201D") // ellipses
    .replace(/\.{3}/g, "\u2026");
  }
  /**
   * mangle email addresses
   */


  function mangle(text) {
    var out = '',
        i,
        ch;
    var l = text.length;

    for (i = 0; i < l; i++) {
      ch = text.charCodeAt(i);

      if (Math.random() > 0.5) {
        ch = 'x' + ch.toString(16);
      }

      out += '&#' + ch + ';';
    }

    return out;
  }
  /**
   * Block Lexer
   */


  var Lexer_1 = /*#__PURE__*/function () {
    function Lexer(options) {
      this.tokens = [];
      this.tokens.links = Object.create(null);
      this.options = options || defaults$2;
      this.options.tokenizer = this.options.tokenizer || new Tokenizer_1();
      this.tokenizer = this.options.tokenizer;
      this.tokenizer.options = this.options;
      var rules = {
        block: block$1.normal,
        inline: inline$1.normal
      };

      if (this.options.pedantic) {
        rules.block = block$1.pedantic;
        rules.inline = inline$1.pedantic;
      } else if (this.options.gfm) {
        rules.block = block$1.gfm;

        if (this.options.breaks) {
          rules.inline = inline$1.breaks;
        } else {
          rules.inline = inline$1.gfm;
        }
      }

      this.tokenizer.rules = rules;
    }
    /**
     * Expose Rules
     */

    /**
     * Static Lex Method
     */


    Lexer.lex = function lex(src, options) {
      var lexer = new Lexer(options);
      return lexer.lex(src);
    }
    /**
     * Static Lex Inline Method
     */
    ;

    Lexer.lexInline = function lexInline(src, options) {
      var lexer = new Lexer(options);
      return lexer.inlineTokens(src);
    }
    /**
     * Preprocessing
     */
    ;

    var _proto = Lexer.prototype;

    _proto.lex = function lex(src) {
      src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, '    ');
      this.blockTokens(src, this.tokens, true);
      this.inline(this.tokens);
      return this.tokens;
    }
    /**
     * Lexing
     */
    ;

    _proto.blockTokens = function blockTokens(src, tokens, top) {
      if (tokens === void 0) {
        tokens = [];
      }

      if (top === void 0) {
        top = true;
      }

      src = src.replace(/^ +$/gm, '');
      var token, i, l, lastToken;

      while (src) {
        // newline
        if (token = this.tokenizer.space(src)) {
          src = src.substring(token.raw.length);

          if (token.type) {
            tokens.push(token);
          }

          continue;
        } // code


        if (token = this.tokenizer.code(src, tokens)) {
          src = src.substring(token.raw.length);

          if (token.type) {
            tokens.push(token);
          } else {
            lastToken = tokens[tokens.length - 1];
            lastToken.raw += '\n' + token.raw;
            lastToken.text += '\n' + token.text;
          }

          continue;
        } // fences


        if (token = this.tokenizer.fences(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // heading


        if (token = this.tokenizer.heading(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // table no leading pipe (gfm)


        if (token = this.tokenizer.nptable(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // hr


        if (token = this.tokenizer.hr(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // blockquote


        if (token = this.tokenizer.blockquote(src)) {
          src = src.substring(token.raw.length);
          token.tokens = this.blockTokens(token.text, [], top);
          tokens.push(token);
          continue;
        } // list


        if (token = this.tokenizer.list(src)) {
          src = src.substring(token.raw.length);
          l = token.items.length;

          for (i = 0; i < l; i++) {
            token.items[i].tokens = this.blockTokens(token.items[i].text, [], false);
          }

          tokens.push(token);
          continue;
        } // html


        if (token = this.tokenizer.html(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // def


        if (top && (token = this.tokenizer.def(src))) {
          src = src.substring(token.raw.length);

          if (!this.tokens.links[token.tag]) {
            this.tokens.links[token.tag] = {
              href: token.href,
              title: token.title
            };
          }

          continue;
        } // table (gfm)


        if (token = this.tokenizer.table(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // lheading


        if (token = this.tokenizer.lheading(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // top-level paragraph


        if (top && (token = this.tokenizer.paragraph(src))) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // text


        if (token = this.tokenizer.text(src, tokens)) {
          src = src.substring(token.raw.length);

          if (token.type) {
            tokens.push(token);
          } else {
            lastToken = tokens[tokens.length - 1];
            lastToken.raw += '\n' + token.raw;
            lastToken.text += '\n' + token.text;
          }

          continue;
        }

        if (src) {
          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);

          if (this.options.silent) {
            console.error(errMsg);
            break;
          } else {
            throw new Error(errMsg);
          }
        }
      }

      return tokens;
    };

    _proto.inline = function inline(tokens) {
      var i, j, k, l2, row, token;
      var l = tokens.length;

      for (i = 0; i < l; i++) {
        token = tokens[i];

        switch (token.type) {
          case 'paragraph':
          case 'text':
          case 'heading':
            {
              token.tokens = [];
              this.inlineTokens(token.text, token.tokens);
              break;
            }

          case 'table':
            {
              token.tokens = {
                header: [],
                cells: []
              }; // header

              l2 = token.header.length;

              for (j = 0; j < l2; j++) {
                token.tokens.header[j] = [];
                this.inlineTokens(token.header[j], token.tokens.header[j]);
              } // cells


              l2 = token.cells.length;

              for (j = 0; j < l2; j++) {
                row = token.cells[j];
                token.tokens.cells[j] = [];

                for (k = 0; k < row.length; k++) {
                  token.tokens.cells[j][k] = [];
                  this.inlineTokens(row[k], token.tokens.cells[j][k]);
                }
              }

              break;
            }

          case 'blockquote':
            {
              this.inline(token.tokens);
              break;
            }

          case 'list':
            {
              l2 = token.items.length;

              for (j = 0; j < l2; j++) {
                this.inline(token.items[j].tokens);
              }

              break;
            }
        }
      }

      return tokens;
    }
    /**
     * Lexing/Compiling
     */
    ;

    _proto.inlineTokens = function inlineTokens(src, tokens, inLink, inRawBlock, prevChar) {
      if (tokens === void 0) {
        tokens = [];
      }

      if (inLink === void 0) {
        inLink = false;
      }

      if (inRawBlock === void 0) {
        inRawBlock = false;
      }

      if (prevChar === void 0) {
        prevChar = '';
      }

      var token; // String with links masked to avoid interference with em and strong

      var maskedSrc = src;
      var match; // Mask out reflinks

      if (this.tokens.links) {
        var links = Object.keys(this.tokens.links);

        if (links.length > 0) {
          while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
            if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {
              maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
            }
          }
        }
      } // Mask out other blocks


      while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
        maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
      }

      while (src) {
        // escape
        if (token = this.tokenizer.escape(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // tag


        if (token = this.tokenizer.tag(src, inLink, inRawBlock)) {
          src = src.substring(token.raw.length);
          inLink = token.inLink;
          inRawBlock = token.inRawBlock;
          tokens.push(token);
          continue;
        } // link


        if (token = this.tokenizer.link(src)) {
          src = src.substring(token.raw.length);

          if (token.type === 'link') {
            token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);
          }

          tokens.push(token);
          continue;
        } // reflink, nolink


        if (token = this.tokenizer.reflink(src, this.tokens.links)) {
          src = src.substring(token.raw.length);

          if (token.type === 'link') {
            token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);
          }

          tokens.push(token);
          continue;
        } // strong


        if (token = this.tokenizer.strong(src, maskedSrc, prevChar)) {
          src = src.substring(token.raw.length);
          token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);
          tokens.push(token);
          continue;
        } // em


        if (token = this.tokenizer.em(src, maskedSrc, prevChar)) {
          src = src.substring(token.raw.length);
          token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);
          tokens.push(token);
          continue;
        } // code


        if (token = this.tokenizer.codespan(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // br


        if (token = this.tokenizer.br(src)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // del (gfm)


        if (token = this.tokenizer.del(src)) {
          src = src.substring(token.raw.length);
          token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);
          tokens.push(token);
          continue;
        } // autolink


        if (token = this.tokenizer.autolink(src, mangle)) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // url (gfm)


        if (!inLink && (token = this.tokenizer.url(src, mangle))) {
          src = src.substring(token.raw.length);
          tokens.push(token);
          continue;
        } // text


        if (token = this.tokenizer.inlineText(src, inRawBlock, smartypants)) {
          src = src.substring(token.raw.length);
          prevChar = token.raw.slice(-1);
          tokens.push(token);
          continue;
        }

        if (src) {
          var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);

          if (this.options.silent) {
            console.error(errMsg);
            break;
          } else {
            throw new Error(errMsg);
          }
        }
      }

      return tokens;
    };

    _createClass(Lexer, null, [{
      key: "rules",
      get: function get() {
        return {
          block: block$1,
          inline: inline$1
        };
      }
    }]);

    return Lexer;
  }();

  var defaults$3 = defaults.defaults;
  var cleanUrl$1 = helpers.cleanUrl,
      escape$1 = helpers.escape;
  /**
   * Renderer
   */

  var Renderer_1 = /*#__PURE__*/function () {
    function Renderer(options) {
      this.options = options || defaults$3;
    }

    var _proto = Renderer.prototype;

    _proto.code = function code(_code, infostring, escaped) {
      var lang = (infostring || '').match(/\S*/)[0];

      if (this.options.highlight) {
        var out = this.options.highlight(_code, lang);

        if (out != null && out !== _code) {
          escaped = true;
          _code = out;
        }
      }

      if (!lang) {
        return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
      }

      return '<pre><code class="' + this.options.langPrefix + escape$1(lang, true) + '">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
    };

    _proto.blockquote = function blockquote(quote) {
      return '<blockquote>\n' + quote + '</blockquote>\n';
    };

    _proto.html = function html(_html) {
      return _html;
    };

    _proto.heading = function heading(text, level, raw, slugger) {
      if (this.options.headerIds) {
        return '<h' + level + ' id="' + this.options.headerPrefix + slugger.slug(raw) + '">' + text + '</h' + level + '>\n';
      } // ignore IDs


      return '<h' + level + '>' + text + '</h' + level + '>\n';
    };

    _proto.hr = function hr() {
      return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
    };

    _proto.list = function list(body, ordered, start) {
      var type = ordered ? 'ol' : 'ul',
          startatt = ordered && start !== 1 ? ' start="' + start + '"' : '';
      return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
    };

    _proto.listitem = function listitem(text) {
      return '<li>' + text + '</li>\n';
    };

    _proto.checkbox = function checkbox(checked) {
      return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
    };

    _proto.paragraph = function paragraph(text) {
      return '<p>' + text + '</p>\n';
    };

    _proto.table = function table(header, body) {
      if (body) body = '<tbody>' + body + '</tbody>';
      return '<table>\n' + '<thead>\n' + header + '</thead>\n' + body + '</table>\n';
    };

    _proto.tablerow = function tablerow(content) {
      return '<tr>\n' + content + '</tr>\n';
    };

    _proto.tablecell = function tablecell(content, flags) {
      var type = flags.header ? 'th' : 'td';
      var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
      return tag + content + '</' + type + '>\n';
    } // span level renderer
    ;

    _proto.strong = function strong(text) {
      return '<strong>' + text + '</strong>';
    };

    _proto.em = function em(text) {
      return '<em>' + text + '</em>';
    };

    _proto.codespan = function codespan(text) {
      return '<code>' + text + '</code>';
    };

    _proto.br = function br() {
      return this.options.xhtml ? '<br/>' : '<br>';
    };

    _proto.del = function del(text) {
      return '<del>' + text + '</del>';
    };

    _proto.link = function link(href, title, text) {
      href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);

      if (href === null) {
        return text;
      }

      var out = '<a href="' + escape$1(href) + '"';

      if (title) {
        out += ' title="' + title + '"';
      }

      out += '>' + text + '</a>';
      return out;
    };

    _proto.image = function image(href, title, text) {
      href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);

      if (href === null) {
        return text;
      }

      var out = '<img src="' + href + '" alt="' + text + '"';

      if (title) {
        out += ' title="' + title + '"';
      }

      out += this.options.xhtml ? '/>' : '>';
      return out;
    };

    _proto.text = function text(_text) {
      return _text;
    };

    return Renderer;
  }();
  /**
   * TextRenderer
   * returns only the textual part of the token
   */


  var TextRenderer_1 = /*#__PURE__*/function () {
    function TextRenderer() {}

    var _proto = TextRenderer.prototype; // no need for block level renderers

    _proto.strong = function strong(text) {
      return text;
    };

    _proto.em = function em(text) {
      return text;
    };

    _proto.codespan = function codespan(text) {
      return text;
    };

    _proto.del = function del(text) {
      return text;
    };

    _proto.html = function html(text) {
      return text;
    };

    _proto.text = function text(_text) {
      return _text;
    };

    _proto.link = function link(href, title, text) {
      return '' + text;
    };

    _proto.image = function image(href, title, text) {
      return '' + text;
    };

    _proto.br = function br() {
      return '';
    };

    return TextRenderer;
  }();
  /**
   * Slugger generates header id
   */


  var Slugger_1 = /*#__PURE__*/function () {
    function Slugger() {
      this.seen = {};
    }

    var _proto = Slugger.prototype;

    _proto.serialize = function serialize(value) {
      return value.toLowerCase().trim() // remove html tags
      .replace(/<[!\/a-z].*?>/ig, '') // remove unwanted chars
      .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
    }
    /**
     * Finds the next safe (unique) slug to use
     */
    ;

    _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {
      var slug = originalSlug;
      var occurenceAccumulator = 0;

      if (this.seen.hasOwnProperty(slug)) {
        occurenceAccumulator = this.seen[originalSlug];

        do {
          occurenceAccumulator++;
          slug = originalSlug + '-' + occurenceAccumulator;
        } while (this.seen.hasOwnProperty(slug));
      }

      if (!isDryRun) {
        this.seen[originalSlug] = occurenceAccumulator;
        this.seen[slug] = 0;
      }

      return slug;
    }
    /**
     * Convert string to unique id
     * @param {object} options
     * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.
     */
    ;

    _proto.slug = function slug(value, options) {
      if (options === void 0) {
        options = {};
      }

      var slug = this.serialize(value);
      return this.getNextSafeSlug(slug, options.dryrun);
    };

    return Slugger;
  }();

  var defaults$4 = defaults.defaults;
  var unescape$1 = helpers.unescape;
  /**
   * Parsing & Compiling
   */

  var Parser_1 = /*#__PURE__*/function () {
    function Parser(options) {
      this.options = options || defaults$4;
      this.options.renderer = this.options.renderer || new Renderer_1();
      this.renderer = this.options.renderer;
      this.renderer.options = this.options;
      this.textRenderer = new TextRenderer_1();
      this.slugger = new Slugger_1();
    }
    /**
     * Static Parse Method
     */


    Parser.parse = function parse(tokens, options) {
      var parser = new Parser(options);
      return parser.parse(tokens);
    }
    /**
     * Static Parse Inline Method
     */
    ;

    Parser.parseInline = function parseInline(tokens, options) {
      var parser = new Parser(options);
      return parser.parseInline(tokens);
    }
    /**
     * Parse Loop
     */
    ;

    var _proto = Parser.prototype;

    _proto.parse = function parse(tokens, top) {
      if (top === void 0) {
        top = true;
      }

      var out = '',
          i,
          j,
          k,
          l2,
          l3,
          row,
          cell,
          header,
          body,
          token,
          ordered,
          start,
          loose,
          itemBody,
          item,
          checked,
          task,
          checkbox;
      var l = tokens.length;

      for (i = 0; i < l; i++) {
        token = tokens[i];

        switch (token.type) {
          case 'space':
            {
              continue;
            }

          case 'hr':
            {
              out += this.renderer.hr();
              continue;
            }

          case 'heading':
            {
              out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape$1(this.parseInline(token.tokens, this.textRenderer)), this.slugger);
              continue;
            }

          case 'code':
            {
              out += this.renderer.code(token.text, token.lang, token.escaped);
              continue;
            }

          case 'table':
            {
              header = ''; // header

              cell = '';
              l2 = token.header.length;

              for (j = 0; j < l2; j++) {
                cell += this.renderer.tablecell(this.parseInline(token.tokens.header[j]), {
                  header: true,
                  align: token.align[j]
                });
              }

              header += this.renderer.tablerow(cell);
              body = '';
              l2 = token.cells.length;

              for (j = 0; j < l2; j++) {
                row = token.tokens.cells[j];
                cell = '';
                l3 = row.length;

                for (k = 0; k < l3; k++) {
                  cell += this.renderer.tablecell(this.parseInline(row[k]), {
                    header: false,
                    align: token.align[k]
                  });
                }

                body += this.renderer.tablerow(cell);
              }

              out += this.renderer.table(header, body);
              continue;
            }

          case 'blockquote':
            {
              body = this.parse(token.tokens);
              out += this.renderer.blockquote(body);
              continue;
            }

          case 'list':
            {
              ordered = token.ordered;
              start = token.start;
              loose = token.loose;
              l2 = token.items.length;
              body = '';

              for (j = 0; j < l2; j++) {
                item = token.items[j];
                checked = item.checked;
                task = item.task;
                itemBody = '';

                if (item.task) {
                  checkbox = this.renderer.checkbox(checked);

                  if (loose) {
                    if (item.tokens.length > 0 && item.tokens[0].type === 'text') {
                      item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;

                      if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
                        item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
                      }
                    } else {
                      item.tokens.unshift({
                        type: 'text',
                        text: checkbox
                      });
                    }
                  } else {
                    itemBody += checkbox;
                  }
                }

                itemBody += this.parse(item.tokens, loose);
                body += this.renderer.listitem(itemBody, task, checked);
              }

              out += this.renderer.list(body, ordered, start);
              continue;
            }

          case 'html':
            {
              // TODO parse inline content if parameter markdown=1
              out += this.renderer.html(token.text);
              continue;
            }

          case 'paragraph':
            {
              out += this.renderer.paragraph(this.parseInline(token.tokens));
              continue;
            }

          case 'text':
            {
              body = token.tokens ? this.parseInline(token.tokens) : token.text;

              while (i + 1 < l && tokens[i + 1].type === 'text') {
                token = tokens[++i];
                body += '\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);
              }

              out += top ? this.renderer.paragraph(body) : body;
              continue;
            }

          default:
            {
              var errMsg = 'Token with "' + token.type + '" type was not found.';

              if (this.options.silent) {
                console.error(errMsg);
                return;
              } else {
                throw new Error(errMsg);
              }
            }
        }
      }

      return out;
    }
    /**
     * Parse Inline Tokens
     */
    ;

    _proto.parseInline = function parseInline(tokens, renderer) {
      renderer = renderer || this.renderer;
      var out = '',
          i,
          token;
      var l = tokens.length;

      for (i = 0; i < l; i++) {
        token = tokens[i];

        switch (token.type) {
          case 'escape':
            {
              out += renderer.text(token.text);
              break;
            }

          case 'html':
            {
              out += renderer.html(token.text);
              break;
            }

          case 'link':
            {
              out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));
              break;
            }

          case 'image':
            {
              out += renderer.image(token.href, token.title, token.text);
              break;
            }

          case 'strong':
            {
              out += renderer.strong(this.parseInline(token.tokens, renderer));
              break;
            }

          case 'em':
            {
              out += renderer.em(this.parseInline(token.tokens, renderer));
              break;
            }

          case 'codespan':
            {
              out += renderer.codespan(token.text);
              break;
            }

          case 'br':
            {
              out += renderer.br();
              break;
            }

          case 'del':
            {
              out += renderer.del(this.parseInline(token.tokens, renderer));
              break;
            }

          case 'text':
            {
              out += renderer.text(token.text);
              break;
            }

          default:
            {
              var errMsg = 'Token with "' + token.type + '" type was not found.';

              if (this.options.silent) {
                console.error(errMsg);
                return;
              } else {
                throw new Error(errMsg);
              }
            }
        }
      }

      return out;
    };

    return Parser;
  }();

  var merge$2 = helpers.merge,
      checkSanitizeDeprecation$1 = helpers.checkSanitizeDeprecation,
      escape$2 = helpers.escape;
  var getDefaults = defaults.getDefaults,
      changeDefaults = defaults.changeDefaults,
      defaults$5 = defaults.defaults;
  /**
   * Marked
   */

  function marked(src, opt, callback) {
    // throw error in case of non string input
    if (typeof src === 'undefined' || src === null) {
      throw new Error('marked(): input parameter is undefined or null');
    }

    if (typeof src !== 'string') {
      throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
    }

    if (typeof opt === 'function') {
      callback = opt;
      opt = null;
    }

    opt = merge$2({}, marked.defaults, opt || {});
    checkSanitizeDeprecation$1(opt);

    if (callback) {
      var highlight = opt.highlight;
      var tokens;

      try {
        tokens = Lexer_1.lex(src, opt);
      } catch (e) {
        return callback(e);
      }

      var done = function done(err) {
        var out;

        if (!err) {
          try {
            out = Parser_1.parse(tokens, opt);
          } catch (e) {
            err = e;
          }
        }

        opt.highlight = highlight;
        return err ? callback(err) : callback(null, out);
      };

      if (!highlight || highlight.length < 3) {
        return done();
      }

      delete opt.highlight;
      if (!tokens.length) return done();
      var pending = 0;
      marked.walkTokens(tokens, function (token) {
        if (token.type === 'code') {
          pending++;
          setTimeout(function () {
            highlight(token.text, token.lang, function (err, code) {
              if (err) {
                return done(err);
              }

              if (code != null && code !== token.text) {
                token.text = code;
                token.escaped = true;
              }

              pending--;

              if (pending === 0) {
                done();
              }
            });
          }, 0);
        }
      });

      if (pending === 0) {
        done();
      }

      return;
    }

    try {
      var _tokens = Lexer_1.lex(src, opt);

      if (opt.walkTokens) {
        marked.walkTokens(_tokens, opt.walkTokens);
      }

      return Parser_1.parse(_tokens, opt);
    } catch (e) {
      e.message += '\nPlease report this to https://github.com/markedjs/marked.';

      if (opt.silent) {
        return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';
      }

      throw e;
    }
  }
  /**
   * Options
   */


  marked.options = marked.setOptions = function (opt) {
    merge$2(marked.defaults, opt);
    changeDefaults(marked.defaults);
    return marked;
  };

  marked.getDefaults = getDefaults;
  marked.defaults = defaults$5;
  /**
   * Use Extension
   */

  marked.use = function (extension) {
    var opts = merge$2({}, extension);

    if (extension.renderer) {
      (function () {
        var renderer = marked.defaults.renderer || new Renderer_1();

        var _loop = function _loop(prop) {
          var prevRenderer = renderer[prop];

          renderer[prop] = function () {
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
              args[_key] = arguments[_key];
            }

            var ret = extension.renderer[prop].apply(renderer, args);

            if (ret === false) {
              ret = prevRenderer.apply(renderer, args);
            }

            return ret;
          };
        };

        for (var prop in extension.renderer) {
          _loop(prop);
        }

        opts.renderer = renderer;
      })();
    }

    if (extension.tokenizer) {
      (function () {
        var tokenizer = marked.defaults.tokenizer || new Tokenizer_1();

        var _loop2 = function _loop2(prop) {
          var prevTokenizer = tokenizer[prop];

          tokenizer[prop] = function () {
            for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
              args[_key2] = arguments[_key2];
            }

            var ret = extension.tokenizer[prop].apply(tokenizer, args);

            if (ret === false) {
              ret = prevTokenizer.apply(tokenizer, args);
            }

            return ret;
          };
        };

        for (var prop in extension.tokenizer) {
          _loop2(prop);
        }

        opts.tokenizer = tokenizer;
      })();
    }

    if (extension.walkTokens) {
      var walkTokens = marked.defaults.walkTokens;

      opts.walkTokens = function (token) {
        extension.walkTokens(token);

        if (walkTokens) {
          walkTokens(token);
        }
      };
    }

    marked.setOptions(opts);
  };
  /**
   * Run callback for every token
   */


  marked.walkTokens = function (tokens, callback) {
    for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
      var token = _step.value;
      callback(token);

      switch (token.type) {
        case 'table':
          {
            for (var _iterator2 = _createForOfIteratorHelperLoose(token.tokens.header), _step2; !(_step2 = _iterator2()).done;) {
              var cell = _step2.value;
              marked.walkTokens(cell, callback);
            }

            for (var _iterator3 = _createForOfIteratorHelperLoose(token.tokens.cells), _step3; !(_step3 = _iterator3()).done;) {
              var row = _step3.value;

              for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
                var _cell = _step4.value;
                marked.walkTokens(_cell, callback);
              }
            }

            break;
          }

        case 'list':
          {
            marked.walkTokens(token.items, callback);
            break;
          }

        default:
          {
            if (token.tokens) {
              marked.walkTokens(token.tokens, callback);
            }
          }
      }
    }
  };
  /**
   * Parse Inline
   */


  marked.parseInline = function (src, opt) {
    // throw error in case of non string input
    if (typeof src === 'undefined' || src === null) {
      throw new Error('marked.parseInline(): input parameter is undefined or null');
    }

    if (typeof src !== 'string') {
      throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
    }

    opt = merge$2({}, marked.defaults, opt || {});
    checkSanitizeDeprecation$1(opt);

    try {
      var tokens = Lexer_1.lexInline(src, opt);

      if (opt.walkTokens) {
        marked.walkTokens(tokens, opt.walkTokens);
      }

      return Parser_1.parseInline(tokens, opt);
    } catch (e) {
      e.message += '\nPlease report this to https://github.com/markedjs/marked.';

      if (opt.silent) {
        return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';
      }

      throw e;
    }
  };
  /**
   * Expose
   */


  marked.Parser = Parser_1;
  marked.parser = Parser_1.parse;
  marked.Renderer = Renderer_1;
  marked.TextRenderer = TextRenderer_1;
  marked.Lexer = Lexer_1;
  marked.lexer = Lexer_1.lex;
  marked.Tokenizer = Tokenizer_1;
  marked.Slugger = Slugger_1;
  marked.parse = marked;
  var marked_1 = marked;
  return marked_1;
});

/***/ }),

/***/ "EgDT":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ JumpKey; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ JumpTargets; });

// UNUSED EXPORTS: IMS

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Polyfill.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Polyfills for browser's JS functionality that should be contributed
 * back to the UXP platform.
 */
/**
 * Decodes base64 encoded string.
 * Polyfill for browser's atob.
 *
 * Original: https://github.com/inexorabletash/polyfill/blob/master/web.js#L60.
 *
 * @param input Base64 string to decode.
 * @returns Decoded string.
 */
function atob(input) {
    const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
    let position = 0;
    const output = [];
    let buffer = 0;
    let bits = 0;
    let n;
    input = input.replace(/\s/g, '');
    if (input.length % 4 === 0) {
        input = input.replace(/=+$/, '');
    }
    if (input.length % 4 === 1) {
        throw Error('The string to be decoded contains invalid characters.');
    }
    if (/[^+/0-9A-Za-z]/.test(input)) {
        throw Error('The string to be decoded contains invalid characters.');
    }
    while (position < input.length) {
        n = B64_ALPHABET.indexOf(input.charAt(position));
        buffer = (buffer << 6) | n;
        bits += 6;
        if (bits === 24) {
            output.push(String.fromCharCode((buffer >> 16) & 0xff));
            output.push(String.fromCharCode((buffer >> 8) & 0xff));
            output.push(String.fromCharCode(buffer & 0xff));
            bits = 0;
            buffer = 0;
        }
        position += 1;
    }
    if (bits === 12) {
        buffer = buffer >> 4;
        output.push(String.fromCharCode(buffer & 0xff));
    }
    else if (bits === 18) {
        buffer = buffer >> 2;
        output.push(String.fromCharCode((buffer >> 8) & 0xff));
        output.push(String.fromCharCode(buffer & 0xff));
    }
    return output.join('');
}
/**
 * Encodes bytes (as string) to base64.
 * Polyfill for browser's btoa.
 *
 * Original: https://github.com/inexorabletash/polyfill/blob/master/web.js#L60.
 *
 * @param input String to encode.
 * @returns Encoded string as base64.
 */
function btoa(input) {
    const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
    let position = 0;
    const out = [];
    let o1;
    let o2;
    let o3;
    let e1;
    let e2;
    let e3;
    let e4;
    // eslint-disable-next-line no-control-regex
    if (/[^\x00-\xFF]/.test(input)) {
        throw Error('The string to be encoded contains invalid characters.');
    }
    while (position < input.length) {
        o1 = input.charCodeAt(position++);
        o2 = input.charCodeAt(position++);
        o3 = input.charCodeAt(position++);
        // 111111 112222 222233 333333
        e1 = o1 >> 2;
        e2 = ((o1 & 0x3) << 4) | (o2 >> 4);
        e3 = ((o2 & 0xf) << 2) | (o3 >> 6);
        e4 = o3 & 0x3f;
        if (position === input.length + 2) {
            e3 = 64;
            e4 = 64;
        }
        else if (position === input.length + 1) {
            e4 = 64;
        }
        out.push(B64_ALPHABET.charAt(e1), B64_ALPHABET.charAt(e2), B64_ALPHABET.charAt(e3), B64_ALPHABET.charAt(e4));
    }
    return out.join('');
}
const base64AToB = window.atob || atob;
const base64BToA = window.btoa || btoa;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/UXPAPI.ts
var UXPAPI = __webpack_require__("VFTl");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/IMSAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const imsAPI = () => window.adobeIMS;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/LocationAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const locationAPI = () => window.location;

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts + 6 modules
var hosts = __webpack_require__("Zghy");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/imsBridge.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








const EXPIRY_BUFFER = 10000; // Consider 10s buffer so that we do not accidentally send expired tokens.
const THROTTLING_MIN_THRESHOLD = 10000; // 10s
const THROTTLING_MAX_THRESHOLD = 60 * 1000; // 1 minute
var JumpKey;
(function (JumpKey) {
    JumpKey["ADOBESTOCK"] = "ADOBESTOCK";
    JumpKey["ADOBELEARN"] = "ADOBELEARN";
    JumpKey["ADOBEACCOUNT"] = "ADOBEACCOUNT";
})(JumpKey || (JumpKey = {}));
const JumpTargets = {
    ADOBESTOCK: {
        url: ['stock.adobe.com'],
        clientID: 'AdobeStockClient2',
        clientScope: 'AdobeID,openid,creative_cloud,creative_sdk,cc_private,gnav,sao.stock,additional_info.address.mail_to,additional_info.dob,read_organizations,read_pc.stock,read_pc.stock_credits,additional_info.roles,sao.cce_private,account_cluster.read',
    },
    ADOBELEARN: {
        url: ['helpx.adobe.com', 'helpx.stage.adobe.com'],
        clientID: 'AdobeSupport1',
        clientScope: 'creative_cloud,AdobeID,openid,gnav,read_organizations,additional_info.projectedProductContext',
    },
    ADOBEACCOUNT: {
        url: ['adobe.com', 'www.adobe.com', 'www.stage.adobe.com'],
        clientID: 'adobedotcom2',
        clientScope: 'creative_cloud,AdobeID,openid,gnav,read_organizations,additional_info.projectedProductContext',
    },
};
/**
 * Wrapper over the platform's IMS APIs.
 * Provides utility methods to talk to IMS.
 * TODO - connect to the UserModel and update it.
 */
class imsBridge_IMS {
    constructor() {
        this.isStaging = false;
        this.initialized = false;
        this._logger = logger_default.a.get('IMS');
        this.lastAccessTokenTime = 0;
        this._ims = imsAPI();
        this._getThrottleTime = numberOfRequests => {
            let time = 0;
            if (numberOfRequests < 5) {
                time = 10; // 10s
            }
            else if (numberOfRequests < 10) {
                time = 20; // 20s
            }
            else if (numberOfRequests < 15) {
                time = 30; // 30s
            }
            return time * 1000 || THROTTLING_MAX_THRESHOLD;
        };
        this.throttleRequestUpdateAccessToken = callback => {
            let lastCall;
            let numberOfRequests = 0;
            let self = this;
            const throttleWorkflow = async (computedTimeout, proposedTimeout) => {
                // don't ask for a forced refresh from CmdN. HS will do that anyway, so there's no need to overload IMS.
                await callback.call(this, false);
                numberOfRequests++;
                this._logger.log(`Updated access token - throttled at ${computedTimeout}ms`);
            };
            return function (proposedTimeout) {
                let computedTimeout = self._getThrottleTime(numberOfRequests);
                lastCall && clearTimeout(lastCall);
                if (proposedTimeout >= THROTTLING_MIN_THRESHOLD) {
                    numberOfRequests = 0;
                    computedTimeout = proposedTimeout;
                }
                lastCall = setTimeout(async function () {
                    await throttleWorkflow(computedTimeout, proposedTimeout);
                }, computedTimeout);
            };
        };
    }
    /**
     * Initializes the IMS/NGL connectivity.
     * On browser connects to SSO with adobe.com .
     * In UXP connects to NGL APIs.
     *
     * @param userProfileSnapshot User profile snapshot.
     * @param [userProfileChangeListener] Callback for user profile changes.
     */
    async init(userProfileSnapshot, userProfileChangeListener) {
        const hostIsProductionEnv = hosts["a" /* default */].isProductionEnv();
        if (!Object(PlatformUtils["f" /* isUXP */])()) {
            const isStaging = hostIsProductionEnv !== undefined
                ? !hostIsProductionEnv
                : JSON.stringify(locationAPI()).includes('stag');
            this.userProfile = {
                isStaging: isStaging,
            };
            this.isStaging = isStaging;
            // Logs into the browser if opened on localhost.adobe.com via IMS single sign on and
            // then provides access token which can be used for development in the browser.
            window.adobeid = {
                // eslint-disable-next-line
                client_id: 'adobedotcom2',
                scope: 'creative_cloud,AdobeID,openid,gnav,read_organizations,additional_info.projectedProductContext,sao.ACOM_CLOUD_STORAGE,sao.stock,sao.cce_private,additional_info.roles',
                // eslint-disable-next-line
                uses_redirect_mode: true,
                locale: 'en_US',
                // eslint-disable-next-line
                uses_modal_mode: false,
                optimizations: {
                    fastEvents: true,
                },
                onAccessToken: token => {
                    this.setAccessToken(token);
                    const profile = this._ims.getUserProfile();
                    this.userProfile = {
                        UserProfile: {
                            accountType: profile.account_type,
                            countryCode: profile.countryCode,
                            displayName: profile.displayName,
                            firstName: profile.first_name,
                            lastName: profile.last_name,
                            userId: profile.userId,
                        },
                    };
                },
            };
            let script = 'https://static.adobelogin.com/imslib/imslib.min.js';
            if (this.isStaging) {
                script = 'https://static.adobelogin.com/imslib/stg1/imslib.min.js';
            }
            document.write(`<script src="${script}"></script>`);
            return;
        }
        this._throttledRequestUpdateAccessToken = this.throttleRequestUpdateAccessToken(this.updateAccessToken);
        this.profile = Object(UXPAPI["a" /* uxpAPI */])().licensing;
        // attach a change listener for the case when the user logs out / relogins with a different user
        this.userProfileChangeCallback = userProfileChangeListener;
        this.profile &&
            this.profile.addEventListener('profilechanged', async () => {
                this._logger.log('User Profile changed');
                await this.updateUserProfile();
                // Update access token if it is not present.
                if (!this.userProfile.accessToken) {
                    await this.updateAccessToken();
                }
                else {
                    // set the access token so that we can also set the expiration timeout handler
                    this.setAccessToken(userProfileSnapshot.accessToken);
                }
                userProfileChangeListener && userProfileChangeListener(this.userProfile);
            });
        await Promise.all([this.updateUserProfile(userProfileSnapshot), this.updateStaging()]);
        // Access token depends on stage and prod. Can be done in parallel to profile fetch.as well as profile.
        if (!userProfileSnapshot || !userProfileSnapshot.accessToken) {
            await this.updateAccessToken();
        }
        else {
            // set the access token so that we can also set the expiration timeout handler
            this.setAccessToken(userProfileSnapshot.accessToken);
        }
        this.userProfile.isStaging = this.isStaging;
        this.initialized = true;
    }
    /**
     * Gets the current active client ID.
     *
     * @returns String representing the clien id.
     */
    get clientId() {
        return this.config.clientId;
    }
    /**
     * Updates the user profile based on the supplied or fetched NGL profile.
     *
     * @param [userProfileSnapshot] NGL Profile of the user.
     */
    async updateUserProfile(userProfileSnapshot) {
        if (userProfileSnapshot) {
            this.userProfile = { ...userProfileSnapshot, isStaging: this.isStaging, initialized: true };
        }
        else {
            let userProfile = null;
            const receivedProfile = this.profile && (await this.profile.fetchProfile());
            try {
                if (typeof receivedProfile === 'string') {
                    userProfile = JSON.parse(receivedProfile);
                }
                else if (typeof receivedProfile === 'object') {
                    userProfile = receivedProfile;
                }
            }
            catch (_a) {
                this._logger.error('Failed to parse user profile', userProfile);
            }
            // Temporary workaround for NGL bug where the default is provided wrong
            // https://jira.corp.adobe.com/browse/LS-6188
            if (userProfile && !Array.isArray(userProfile.RelationshipProfile)) {
                userProfile.RelationshipProfile = [userProfile.RelationshipProfile];
                userProfile.initialized = true;
            }
            this.userProfile = userProfile;
        }
    }
    /**
     * Updates the access token in the user store.
     */
    async updateAccessTokenAfterExpiration() {
        await this.updateAccessToken();
        // signal the AppStore that the access token changed
        this.userProfileChangeCallback && this.userProfileChangeCallback(this.userProfile, true);
    }
    /**
     * Updates the access token in the user store.
     */
    async updateAccessToken(isTokenExpired = false) {
        if (!Object(PlatformUtils["f" /* isUXP */])()) {
            this.setAccessToken(this._ims ? this._ims.getAccessToken() : '');
            return;
        }
        if (Object(PlatformUtils["e" /* isFRLUser */])(this.userProfile)) {
            this._logger.warn('FRL user. No access token present');
            return;
        }
        let error = 'Unknown error';
        const promiseGetToken = this.profile &&
            this.profile.getAccessToken({ ...this.config, forceRefresh: isTokenExpired }).catch(e => {
                error = e;
            });
        const promiseTimeout = Object(JsUtils["m" /* timeout */])(4000).then(() => {
            error = 'IMS timed out (4s)';
        });
        const token = await Promise.race([promiseGetToken, promiseTimeout]);
        if (token) {
            this.setAccessToken(token);
        }
        else {
            this._logger.log('Error fetching IMS Access token:', error);
        }
    }
    /**
     * Generate a jump URL to be used in Stock.
     *
     * @param key Adobe jump key.
     * @param url Url that represents the open link.
     * @returns URL that can be used in Stock.
     */
    async getJumpUrl(key, url) {
        if (Object(PlatformUtils["f" /* isUXP */])() && this.userProfile && this.userProfile.accessToken && this.userProfile.accessToken.length > 0) {
            // Using the continue token API for the jump
            const target = JumpTargets[key];
            return ((this.profile &&
                (await this.profile
                    .getContinueToken({
                    jumpClientId: target.clientID,
                    urlObject: encodeURIComponent(url),
                    clientScope: target.clientScope,
                    accessToken: this.userProfile.accessToken,
                })
                    .catch(error => {
                    this._logger.warn(`imsBridge :: getContinueToken - Error generating jump token: ${error} ${url}`);
                    return url;
                }))) ||
                url);
        }
        return url;
    }
    async updateStaging() {
        const hostIsProductionEnv = hosts["a" /* default */].isProductionEnv();
        if (hostIsProductionEnv !== undefined) {
            this.isStaging = !hostIsProductionEnv;
        }
        else if (this.profile) {
            this.isStaging = !(await this.profile.isProductionEnv());
        }
    }
    /**
     * Sets the access token in the user store and also adds a listener
     * for the token's expiry to refresh.
     *
     * @param token IMS Access token to set.
     */
    setAccessToken(token) {
        let tokenToSet = '';
        if (token) {
            this.lastAccessTokenTime = new Date().valueOf();
            this._throttledRequestUpdateAccessToken(this.calculateAccessTokenExpiry(token));
            tokenToSet = token;
        }
        // Reassign it to the profile only if the token changed
        if (this.userProfile.accessToken !== tokenToSet) {
            // Use the spread operator because we can't set the accessToken directly, as it comes marked as readonly.
            // If we try to set it directly in the profile, we get an error because we're trying to set a readonly property/
            this.userProfile = { ...this.userProfile, accessToken: tokenToSet };
        }
    }
    /**
     * Provides the milliseconds to expiry of the provided access token.
     *
     * @param token IMS Access token to set.
     * @returns Number thtat represent the time left until token expires.
     */
    calculateAccessTokenExpiry(token) {
        const currentTime = new Date().valueOf();
        try {
            // we might not have an access token. If it errors, fallback to old logic
            const data = JSON.parse(base64AToB(token.split('.')[1]));
            const expiryTime = new Date(parseInt(data.created_at) + parseInt(data.expires_in) - EXPIRY_BUFFER).valueOf();
            return expiryTime - currentTime;
        }
        catch (e) {
            return this.lastAccessTokenTime + 3600 * 23 * 1000 - currentTime;
        }
    }
    /**
     * The current IMS server configuration based on whether we are on stage or production.
     *
     * @returns Staging or production object config details.
     */
    get config() {
        const staging = {
            label: 'Stage',
            clientId: 'CCXInAppWelcomeUXP3',
            clientSecret: 's8e-x5GnvCYXy9veQGVk8Os607eSAUZTM5m5',
            clientScope: 'openid,AdobeID',
            imsServer: 'ims-na1-stg1.adobelogin.com',
        };
        const production = {
            label: 'Production',
            clientId: 'CCXInAppWelcomeUXP3',
            clientSecret: 'p8e-k8YWrcks8o0Sd_q1JOhuKvTe7d0-r5wn',
            clientScope: 'openid,AdobeID',
            imsServer: 'ims-na1.adobelogin.com',
        };
        return this.isStaging ? staging : production;
    }
}
/* harmony default export */ var imsBridge = __webpack_exports__["c"] = (new imsBridge_IMS());


/***/ }),

/***/ "FN6C":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _array = __webpack_require__("iN46");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _TabList = __webpack_require__("OQA9");

var _TabListBase = _interopRequireDefault(__webpack_require__("TOmJ"));

__webpack_require__("IEX1");

const _excluded = ["className", "id", "orientation"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let TabView = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class TabView extends _react.default.Component {
  constructor(props) {
    super(props);
    this.tabViewId = (0, _createId.default)();
    this.state = {
      selectedIndex: _TabListBase.default.getDefaultSelectedIndex(props)
    };
  }

  UNSAFE_componentWillReceiveProps(props) {
    // Reset selected index when children change
    let oldChildren = _react.default.Children.toArray(this.props.children).map(child => child.key);

    let newChildren = _react.default.Children.toArray(props.children).map(child => child.key);

    if (props.selectedIndex !== this.props.selectedIndex || !(0, _array.arraysEqual)(oldChildren, newChildren)) {
      this.setState({
        selectedIndex: props.selectedIndex || 0
      });
    }
  }

  onChange(selectedIndex) {
    if (this.props.selectedIndex == null) {
      this.setState({
        selectedIndex
      });
    }

    if (this.props.onSelect) {
      this.props.onSelect(selectedIndex);
    }
  }

  render() {
    let _this$props = this.props,
        {
      className,
      id = this.tabViewId,
      orientation
    } = _this$props,
        props = _objectWithoutProperties(_this$props, _excluded);

    const tabId = id + '-tab';
    const tabPanelId = id + '-tabpanel';

    let children = _react.default.Children.map(this.props.children, (c, i) => typeof c === 'object' && c ? /*#__PURE__*/_react.default.cloneElement(c, {
      'aria-controls': tabPanelId,
      id: tabId + '-' + i,
      renderChildren: false
    }) : c); // Clone children so that they get componentWillReceiveProps when clicking on the same tab


    let selected = children[this.state.selectedIndex];

    let body = _react.default.Children.map(selected.props.children, c => typeof c === 'object' && c ? /*#__PURE__*/_react.default.cloneElement(c) : c);

    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-TabView', 'react-spectrum-TabView--' + orientation, className)
    }, /*#__PURE__*/_react.default.createElement(_TabList.TabList, _extends({}, props, {
      orientation: orientation,
      selectedIndex: this.state.selectedIndex,
      onChange: this.onChange
    }), children), /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-TabView-body",
      role: "tabpanel",
      id: tabPanelId,
      "aria-labelledby": selected.props.id
    }, body));
  }

}, _class2.propTypes = {
  /** Class to add to the tab view */
  className: _propTypes.default.string,

  /** Id for tab view */
  id: _propTypes.default.string,

  /** Function called when a tab is selected */
  onSelect: _propTypes.default.func,

  /** Tab orientation */
  orientation: _propTypes.default.oneOf(['vertical', 'horizontal']),

  /**
   * The index of the Tab that should be selected (open). When selectedIndex is
   * specified, the component is in a controlled state and a Tab can only be selected by changing the
   * selectedIndex prop value. By default, the first Tab will be selected.
   */
  selectedIndex: _propTypes.default.number,

  /**
   * The same as selectedIndex except that the component is in an uncontrolled state.
   */
  defaultSelectedIndex: _propTypes.default.number,

  /** Children are required */
  children: _propTypes.default.node.isRequired
}, _class2.defaultProps = {
  id: (0, _createId.default)(),
  orientation: 'horizontal'
}, _temp)) || _class) || _class;

exports.default = TabView;

/***/ }),

/***/ "FV85":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
var BindingScopeEnum = {
  Request: "Request",
  Singleton: "Singleton",
  Transient: "Transient"
};
exports.BindingScopeEnum = BindingScopeEnum;
var BindingTypeEnum = {
  ConstantValue: "ConstantValue",
  Constructor: "Constructor",
  DynamicValue: "DynamicValue",
  Factory: "Factory",
  Function: "Function",
  Instance: "Instance",
  Invalid: "Invalid",
  Provider: "Provider"
};
exports.BindingTypeEnum = BindingTypeEnum;
var TargetTypeEnum = {
  ClassProperty: "ClassProperty",
  ConstructorArgument: "ConstructorArgument",
  Variable: "Variable"
};
exports.TargetTypeEnum = TargetTypeEnum;

/***/ }),

/***/ "FocD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("r97P"),
      24: __webpack_require__("2+WB")
    }
  }));
};

WrappedIcon.displayName = 'Landscape';
exports.default = WrappedIcon;

/***/ }),

/***/ "Fr31":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return UnitId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return UnitIdToMeasurement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return BleedStepValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return BleedSecondaryStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return BleedShiftStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ArtboardsShiftStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return IllustratorSecondaryStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return IllustratorShiftStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return IllustratorStepValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return InDesignSecondaryStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return InDesignShiftStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return InDesignStepValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return PhotoshopSecondaryStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return PhotoshopShiftStepMultiplier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return PhotoshopStepValues; });
/* unused harmony export convertValue */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return convert; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return FileSizeUnit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return createFileSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return UNIT_CONVERSION; });
/* harmony import */ var big_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("nc0P");
/* harmony import */ var big_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(big_js__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

var UnitId;
(function (UnitId) {
    UnitId["PIXELS"] = "pixelsUnit";
    UnitId["MILLIMETERS"] = "millimetersUnit";
    UnitId["CENTIMETERS"] = "centimetersUnit";
    UnitId["INCHES"] = "inchesUnit";
    UnitId["INCHES_DECIMALS"] = "inchesDecimalsUnit";
    UnitId["PICAS"] = "picasUnit";
    UnitId["POINTS"] = "pointsUnit";
    UnitId["HA"] = "qsUnit";
    UnitId["FEET"] = "feetsUnit";
    UnitId["FEET_INCHES"] = "feetInchesUnit";
    UnitId["METERS"] = "metersUnit";
    UnitId["YARDS"] = "yardsUnit";
    UnitId["CICEROS"] = "cicerosUnit";
    UnitId["AGATES"] = "agatesUnit";
    UnitId["CUBITS"] = "cubitsUnit";
})(UnitId || (UnitId = {}));
/**
 * Unit Id to human readable value.
 *
 * @enum {string}
 */
const UnitIdToMeasurement = {
    [UnitId.PIXELS]: 'px',
    [UnitId.MILLIMETERS]: 'mm',
    [UnitId.CENTIMETERS]: 'cm',
    [UnitId.INCHES]: 'in',
    [UnitId.PICAS]: 'pc',
    [UnitId.POINTS]: 'pt',
    [UnitId.HA]: 'ha',
    [UnitId.FEET]: 'ft',
    [UnitId.FEET_INCHES]: 'ftin',
    [UnitId.METERS]: 'm',
    [UnitId.YARDS]: 'yd',
    [UnitId.INCHES_DECIMALS]: 'in',
    [UnitId.CICEROS]: 'c',
    [UnitId.AGATES]: 'ag',
    [UnitId.CUBITS]: 'cu',
};
/**
 * Step value for bleed component up/down arrows per unit.
 *
 * @enum {number}
 */
const BleedStepValues = {
    [UnitId.PIXELS]: 1,
    [UnitId.MILLIMETERS]: 1,
    [UnitId.CENTIMETERS]: 0.1,
    [UnitId.INCHES]: 0.125,
    [UnitId.PICAS]: 1 / 12,
    [UnitId.POINTS]: 1,
    [UnitId.HA]: 1,
    [UnitId.FEET]: 1,
    [UnitId.FEET_INCHES]: 1 / 12,
    [UnitId.METERS]: 1,
    [UnitId.YARDS]: 0.0833,
};
/**
 * Multiplier for command modifier for bleed component step, per unit.
 *
 * @enum {number}
 */
const BleedSecondaryStepMultiplier = {
    [UnitId.PIXELS]: 0.1,
    [UnitId.MILLIMETERS]: 0.5,
    [UnitId.CENTIMETERS]: 0.5,
    [UnitId.INCHES]: 0.5,
    [UnitId.PICAS]: 0.1,
    [UnitId.POINTS]: 0.1,
    [UnitId.HA]: 0.5,
    [UnitId.FEET]: 0.1,
    [UnitId.FEET_INCHES]: 0.5,
    [UnitId.METERS]: 0.5,
    [UnitId.YARDS]: 0.5006,
};
/**
 * Multiplier for shift modifier for bleed component step, per unit.
 *
 * @enum {number}
 */
const BleedShiftStepMultiplier = {
    [UnitId.PIXELS]: 10,
    [UnitId.MILLIMETERS]: 10,
    [UnitId.CENTIMETERS]: 10,
    [UnitId.INCHES]: 8,
    [UnitId.PICAS]: 1,
    [UnitId.POINTS]: 10,
    [UnitId.HA]: 4,
    [UnitId.FEET]: 1,
    [UnitId.FEET_INCHES]: 1,
    [UnitId.METERS]: 1,
    [UnitId.YARDS]: 12.0048,
};
/**
 * Multiplier for shift modifier for artboards component step, per unit.
 *
 * @enum {number}
 */
const ArtboardsShiftStepMultiplier = {
    [UnitId.PIXELS]: 10,
    [UnitId.MILLIMETERS]: 10,
    [UnitId.CENTIMETERS]: 10,
    [UnitId.INCHES]: 10,
    [UnitId.PICAS]: 10,
    [UnitId.POINTS]: 10,
    [UnitId.HA]: 10,
    [UnitId.FEET]: 10,
    [UnitId.FEET_INCHES]: 1,
    [UnitId.METERS]: 10,
    [UnitId.YARDS]: 1,
};
/**
 * Multiplier for command modifier for Illustrator step, per unit.
 *
 * @enum {number}
 */
const IllustratorSecondaryStepMultiplier = {
    [UnitId.PIXELS]: 0.5,
    [UnitId.MILLIMETERS]: 0.5,
    [UnitId.CENTIMETERS]: 0.5,
    [UnitId.INCHES]: 0.5,
    [UnitId.PICAS]: 0.5,
    [UnitId.POINTS]: 0.5,
    [UnitId.HA]: 0.5,
    [UnitId.FEET]: 0.5,
    [UnitId.FEET_INCHES]: 0.5,
    [UnitId.METERS]: 0.5,
    [UnitId.YARDS]: 0.5,
};
/**
 * Multiplier for shift modifier for Illustrator step, per unit.
 *
 * @enum {number}
 */
const IllustratorShiftStepMultiplier = {
    [UnitId.PIXELS]: 10,
    [UnitId.MILLIMETERS]: 10,
    [UnitId.CENTIMETERS]: 10,
    [UnitId.INCHES]: 10,
    [UnitId.PICAS]: 120,
    [UnitId.POINTS]: 10,
    [UnitId.HA]: 10,
    [UnitId.FEET]: 10,
    [UnitId.FEET_INCHES]: 12,
    [UnitId.METERS]: 10,
    [UnitId.YARDS]: 12,
};
/**
 * Step values, per unit, for Illustrator.
 *
 * @enum {number}
 */
const IllustratorStepValues = {
    [UnitId.PIXELS]: 1,
    [UnitId.MILLIMETERS]: 0.1,
    [UnitId.CENTIMETERS]: 0.1,
    [UnitId.INCHES]: 0.1,
    [UnitId.PICAS]: 0.1 / 12,
    [UnitId.POINTS]: 0.1,
    [UnitId.HA]: 0.1,
    [UnitId.FEET]: 0.1,
    [UnitId.FEET_INCHES]: 1 / 12,
    [UnitId.METERS]: 0.1,
    [UnitId.YARDS]: 1 / 12,
};
/**
 * Multiplier for command modifier for InDesign step, per unit.
 *
 */
const InDesignSecondaryStepMultiplier = {
    [UnitId.PIXELS]: 0.1,
    [UnitId.MILLIMETERS]: 0.5,
    [UnitId.CENTIMETERS]: 0.5,
    [UnitId.INCHES]: 0.5,
    [UnitId.PICAS]: 1,
    [UnitId.POINTS]: 0.1,
    [UnitId.HA]: 0.5,
    [UnitId.CICEROS]: 1 / 3,
    [UnitId.AGATES]: 0.1,
};
/**
 * Multiplier for shift modifier for InDesign step, per unit.
 *
 */
const InDesignShiftStepMultiplier = {
    [UnitId.PIXELS]: 10,
    [UnitId.MILLIMETERS]: 10,
    [UnitId.CENTIMETERS]: 10,
    [UnitId.INCHES]: 8,
    [UnitId.PICAS]: 12,
    [UnitId.POINTS]: 10,
    [UnitId.HA]: 4,
    [UnitId.CICEROS]: 4,
    [UnitId.AGATES]: 10,
};
/**
 * Step values, per unit, for InDesign.
 *
 */
const InDesignStepValues = {
    [UnitId.PIXELS]: 1,
    [UnitId.MILLIMETERS]: 1,
    [UnitId.CENTIMETERS]: 0.1,
    [UnitId.INCHES]: 0.125,
    [UnitId.PICAS]: 1 / 12,
    [UnitId.POINTS]: 1,
    [UnitId.HA]: 1,
    [UnitId.CICEROS]: 1 / 4,
    [UnitId.AGATES]: 1,
};
/**
 * Multiplier for command modifier for Photoshop step, per unit.
 *
 */
const PhotoshopSecondaryStepMultiplier = {
    [UnitId.PIXELS]: 1,
    [UnitId.MILLIMETERS]: 1,
    [UnitId.CENTIMETERS]: 1,
    [UnitId.INCHES]: 1,
    [UnitId.PICAS]: 1,
    [UnitId.POINTS]: 1,
    [UnitId.HA]: 1,
    [UnitId.FEET]: 1,
    [UnitId.FEET_INCHES]: 1,
    [UnitId.METERS]: 1,
    [UnitId.YARDS]: 1,
};
/**
 * Multiplier for shift modifier for Photoshop step, per unit.
 *
 * @enum {number}
 */
const PhotoshopShiftStepMultiplier = {
    [UnitId.PIXELS]: 10,
    [UnitId.MILLIMETERS]: 10,
    [UnitId.CENTIMETERS]: 10,
    [UnitId.INCHES]: 10,
    [UnitId.PICAS]: 10,
    [UnitId.POINTS]: 10,
    [UnitId.HA]: 10,
    [UnitId.FEET]: 10,
    [UnitId.FEET_INCHES]: 10,
    [UnitId.METERS]: 10,
    [UnitId.YARDS]: 10,
};
/**
 * Step values, per unit, for Photoshop.
 *
 * @enum {number}
 */
const PhotoshopStepValues = {
    [UnitId.PIXELS]: 1,
    [UnitId.MILLIMETERS]: 0.1,
    [UnitId.CENTIMETERS]: 0.1,
    [UnitId.INCHES]: 0.1,
    [UnitId.PICAS]: 0.1,
    [UnitId.POINTS]: 0.1,
    [UnitId.HA]: 0.1,
    [UnitId.FEET]: 0.1,
    [UnitId.FEET_INCHES]: 0.1,
    [UnitId.METERS]: 0.1,
    [UnitId.YARDS]: 0.1,
};
/**
 * Converts the provided value using the given options.
 *
 * @param value The value to convert.
 * @param [opts] Convertion options.
 * @returns Object that can be used to convert to and from other units.
 */
function convertValue(value, opts = {}) {
    const startingValue = new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(value);
    let normalizedValue = new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0);
    const resolution = new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(opts.resolution || 72);
    const pointsPerInch = new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(opts.pointsPerInch || 72);
    const picasPerInch = new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(opts.picasPerInch || 6);
    const trim = opts.trim !== false;
    const precision = typeof opts.precision !== 'undefined' ? opts.precision : 5;
    const conversionTable = {
        m: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(1) },
        cm: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.01) },
        in: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254) },
        mm: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.001) },
        px: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254).div(resolution) },
        pt: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254).div(pointsPerInch) },
        pc: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254).div(picasPerInch) },
        ha: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254).div(101.6) },
        c: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254 * 0.177609377775) },
        ag: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254).div(14.0) },
        cu: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.0254 * 19.0512) },
        ft: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.3048) },
        ftin: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.3048) },
        yd: { factor: new big_js__WEBPACK_IMPORTED_MODULE_0___default.a(0.9144) },
    };
    return {
        from: function (value) {
            normalizedValue = startingValue.mul(conversionTable[value].factor);
            return this;
        },
        to: function (value) {
            const convertedValue = normalizedValue.div(conversionTable[value].factor);
            const stringValue = trim ? convertedValue.toFixed(precision) : convertedValue.toString();
            return Number(stringValue);
        },
    };
}
/**
 * Converts a value from a given unit to a target unit. Supported units are: m, cm, in, mm, px, pt, pc, ha, c, ag, cu, ft, ftin and yd.
 *
 * @param value  The value of the preset to convert.
 * @param fromUnit The unit to convert from.
 * @param toUnit The unit to convert to.
 * @param [config={}] Configuration used to convert the values.
 * @returns The value in the new unit.
 */
function convert(value, fromUnit, toUnit, config = {}) {
    if (fromUnit === toUnit) {
        return value;
    }
    // convert resolution to pixels-per-inch which is expected by the convert utility
    let resolutionPPI = config.resolution;
    if (config.resolution && config.resolutionUnits) {
        const resolutionUnitCode = UnitIdToMeasurement[config.resolutionUnits];
        // @todo: this unit should be checked
        if (resolutionUnitCode === 'in') {
            resolutionPPI = config.resolution;
        }
        else {
            // to/from are intentionally reversed because resolution is an inverse unit
            resolutionPPI = convertValue(config.resolution).from('in').to(resolutionUnitCode);
        }
    }
    const convertOptins = {
        picasPerInch: config.picasPerInch,
        pointsPerInch: config.pointsPerInch,
        resolution: resolutionPPI,
        trim: false,
    };
    return convertValue(value, convertOptins).from(fromUnit).to(toUnit);
}
/**
 * FileSize unit identifier.
 *
 * @enum {string}
 */
var FileSizeUnit;
(function (FileSizeUnit) {
    FileSizeUnit["B"] = "filesize_key_B";
    FileSizeUnit["KB"] = "filesize_key_KB";
    FileSizeUnit["MB"] = "filesize_key_MB";
    FileSizeUnit["GB"] = "filesize_key_GB";
    FileSizeUnit["TB"] = "filesize_key_TB";
})(FileSizeUnit || (FileSizeUnit = {}));
/**
 * Convert the file size into a formatted string.
 *
 * @param isize Value of file size. If non-positive, it will count as 0 KB.
 * @returns A FileSize object with the numeric value and unit (MB/GB/KB/etc.).
 */
function createFileSize(isize) {
    if (!isize || !window.isFinite(isize) || isize <= 0) {
        return {
            // 0 KB is the default
            val: 0,
            unit: FileSizeUnit.KB,
        };
    }
    if (isize >= 1099511627776) {
        // TB
        return {
            val: isize / 1099511627776,
            unit: FileSizeUnit.TB,
        };
    }
    else if (isize >= 1073741824) {
        // GB
        return {
            val: isize / 1073741824,
            unit: FileSizeUnit.GB,
        };
    }
    else if (isize >= 1048576) {
        // MB
        return {
            val: isize / 1048576,
            unit: FileSizeUnit.MB,
        };
    }
    else if (isize >= 1024) {
        // KB
        return {
            val: isize / 1024,
            unit: FileSizeUnit.KB,
        };
    }
    // Bytes
    return {
        val: isize,
        unit: FileSizeUnit.B,
    };
}
const UNIT_CONVERSION = {
    POINTS_PER_PICA: 12,
};


/***/ }),

/***/ "GGSb":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 * js-logger - http://github.com/jonnyreeves/js-logger
 * Jonny Reeves, http://jonnyreeves.co.uk/
 * js-logger may be freely distributed under the MIT license.
 */
(function (global) {
  "use strict"; // Top level module for the global, static logger instance.

  var Logger = {}; // For those that are at home that are keeping score.

  Logger.VERSION = "1.6.0"; // Function which handles all incoming log messages.

  var logHandler; // Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.

  var contextualLoggersByNameMap = {}; // Polyfill for ES5's Function.bind.

  var bind = function (scope, func) {
    return function () {
      return func.apply(scope, arguments);
    };
  }; // Super exciting object merger-matron 9000 adding another 100 bytes to your download.


  var merge = function () {
    var args = arguments,
        target = args[0],
        key,
        i;

    for (i = 1; i < args.length; i++) {
      for (key in args[i]) {
        if (!(key in target) && args[i].hasOwnProperty(key)) {
          target[key] = args[i][key];
        }
      }
    }

    return target;
  }; // Helper to define a logging level object; helps with optimisation.


  var defineLogLevel = function (value, name) {
    return {
      value: value,
      name: name
    };
  }; // Predefined logging levels.


  Logger.TRACE = defineLogLevel(1, 'TRACE');
  Logger.DEBUG = defineLogLevel(2, 'DEBUG');
  Logger.INFO = defineLogLevel(3, 'INFO');
  Logger.TIME = defineLogLevel(4, 'TIME');
  Logger.WARN = defineLogLevel(5, 'WARN');
  Logger.ERROR = defineLogLevel(8, 'ERROR');
  Logger.OFF = defineLogLevel(99, 'OFF'); // Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently
  // of each other.

  var ContextualLogger = function (defaultContext) {
    this.context = defaultContext;
    this.setLevel(defaultContext.filterLevel);
    this.log = this.info; // Convenience alias.
  };

  ContextualLogger.prototype = {
    // Changes the current logging level for the logging instance.
    setLevel: function (newLevel) {
      // Ensure the supplied Level object looks valid.
      if (newLevel && "value" in newLevel) {
        this.context.filterLevel = newLevel;
      }
    },
    // Gets the current logging level for the logging instance
    getLevel: function () {
      return this.context.filterLevel;
    },
    // Is the logger configured to output messages at the supplied level?
    enabledFor: function (lvl) {
      var filterLevel = this.context.filterLevel;
      return lvl.value >= filterLevel.value;
    },
    trace: function () {
      this.invoke(Logger.TRACE, arguments);
    },
    debug: function () {
      this.invoke(Logger.DEBUG, arguments);
    },
    info: function () {
      this.invoke(Logger.INFO, arguments);
    },
    warn: function () {
      this.invoke(Logger.WARN, arguments);
    },
    error: function () {
      this.invoke(Logger.ERROR, arguments);
    },
    time: function (label) {
      if (typeof label === 'string' && label.length > 0) {
        this.invoke(Logger.TIME, [label, 'start']);
      }
    },
    timeEnd: function (label) {
      if (typeof label === 'string' && label.length > 0) {
        this.invoke(Logger.TIME, [label, 'end']);
      }
    },
    // Invokes the logger callback if it's not being filtered.
    invoke: function (level, msgArgs) {
      if (logHandler && this.enabledFor(level)) {
        logHandler(msgArgs, merge({
          level: level
        }, this.context));
      }
    }
  }; // Protected instance which all calls to the to level `Logger` module will be routed through.

  var globalLogger = new ContextualLogger({
    filterLevel: Logger.OFF
  }); // Configure the global Logger instance.

  (function () {
    // Shortcut for optimisers.
    var L = Logger;
    L.enabledFor = bind(globalLogger, globalLogger.enabledFor);
    L.trace = bind(globalLogger, globalLogger.trace);
    L.debug = bind(globalLogger, globalLogger.debug);
    L.time = bind(globalLogger, globalLogger.time);
    L.timeEnd = bind(globalLogger, globalLogger.timeEnd);
    L.info = bind(globalLogger, globalLogger.info);
    L.warn = bind(globalLogger, globalLogger.warn);
    L.error = bind(globalLogger, globalLogger.error); // Don't forget the convenience alias!

    L.log = L.info;
  })(); // Set the global logging handler.  The supplied function should expect two arguments, the first being an arguments
  // object with the supplied log messages and the second being a context object which contains a hash of stateful
  // parameters which the logging function can consume.


  Logger.setHandler = function (func) {
    logHandler = func;
  }; // Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.
  // (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).


  Logger.setLevel = function (level) {
    // Set the globalLogger's level.
    globalLogger.setLevel(level); // Apply this level to all registered contextual loggers.

    for (var key in contextualLoggersByNameMap) {
      if (contextualLoggersByNameMap.hasOwnProperty(key)) {
        contextualLoggersByNameMap[key].setLevel(level);
      }
    }
  }; // Gets the global logging filter level


  Logger.getLevel = function () {
    return globalLogger.getLevel();
  }; // Retrieve a ContextualLogger instance.  Note that named loggers automatically inherit the global logger's level,
  // default context and log handler.


  Logger.get = function (name) {
    // All logger instances are cached so they can be configured ahead of use.
    return contextualLoggersByNameMap[name] || (contextualLoggersByNameMap[name] = new ContextualLogger(merge({
      name: name
    }, globalLogger.context)));
  }; // CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will
  // write to the window's console object (if present); the optional options object can be used to customise the
  // formatter used to format each log message.


  Logger.createDefaultHandler = function (options) {
    options = options || {};

    options.formatter = options.formatter || function defaultMessageFormatter(messages, context) {
      // Prepend the logger's name to the log message for easy identification.
      if (context.name) {
        messages.unshift("[" + context.name + "]");
      }
    }; // Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments
    // that don't offer a native console method.


    var timerStartTimeByLabelMap = {}; // Support for IE8+ (and other, slightly more sane environments)

    var invokeConsoleMethod = function (hdlr, messages) {
      Function.prototype.apply.call(hdlr, console, messages);
    }; // Check for the presence of a logger.


    if (typeof console === "undefined") {
      return function () {
        /* no console */
      };
    }

    return function (messages, context) {
      // Convert arguments object to Array.
      messages = Array.prototype.slice.call(messages);
      var hdlr = console.log;
      var timerLabel;

      if (context.level === Logger.TIME) {
        timerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];

        if (messages[1] === 'start') {
          if (console.time) {
            console.time(timerLabel);
          } else {
            timerStartTimeByLabelMap[timerLabel] = new Date().getTime();
          }
        } else {
          if (console.timeEnd) {
            console.timeEnd(timerLabel);
          } else {
            invokeConsoleMethod(hdlr, [timerLabel + ': ' + (new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms']);
          }
        }
      } else {
        // Delegate through to custom warn/error loggers if present on the console.
        if (context.level === Logger.WARN && console.warn) {
          hdlr = console.warn;
        } else if (context.level === Logger.ERROR && console.error) {
          hdlr = console.error;
        } else if (context.level === Logger.INFO && console.info) {
          hdlr = console.info;
        } else if (context.level === Logger.DEBUG && console.debug) {
          hdlr = console.debug;
        } else if (context.level === Logger.TRACE && console.trace) {
          hdlr = console.trace;
        }

        options.formatter(messages, context);
        invokeConsoleMethod(hdlr, messages);
      }
    };
  }; // Configure and example a Default implementation which writes to the `window.console` (if present).  The
  // `options` hash can be used to configure the default logLevel and provide a custom message formatter.


  Logger.useDefaults = function (options) {
    Logger.setLevel(options && options.defaultLevel || Logger.DEBUG);
    Logger.setHandler(Logger.createDefaultHandler(options));
  }; // Export to popular environments boilerplate.


  if (true) {
    !(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
				__WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})(this);

/***/ }),

/***/ "GXnB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var Metadata = function () {
  function Metadata(key, value) {
    this.key = key;
    this.value = value;
  }

  Metadata.prototype.toString = function () {
    if (this.key === METADATA_KEY.NAMED_TAG) {
      return "named: " + this.value.toString() + " ";
    } else {
      return "tagged: { key:" + this.key.toString() + ", value: " + this.value + " }";
    }
  };

  return Metadata;
}();

exports.Metadata = Metadata;

/***/ }),

/***/ "H2+D":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getDefaultDocumentName; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createDocument; });
__webpack_require__.d(__webpack_exports__, "k", function() { return /* binding */ startDownload; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* binding */ onItemSelected; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* binding */ onPresetDoubleClick; });
__webpack_require__.d(__webpack_exports__, "j", function() { return /* binding */ onTemplateDoubleClick; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* binding */ onPresetDeleted; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ jumpToTemplateGrid; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ jumpToPresetGrid; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ jumpToNextCollectionGrid; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ jumpToPreviousCollectionGrid; });

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/i18n.tsx
var i18n = __webpack_require__("BPvV");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/AppStore.tsx + 2 modules
var AppStore = __webpack_require__("Z1zh");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/oversized-template-container/OversizedTemplateContainer.css
var OversizedTemplateContainer = __webpack_require__("93ll");
var OversizedTemplateContainer_default = /*#__PURE__*/__webpack_require__.n(OversizedTemplateContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/oversized-template-container/OversizedTemplateContainer.ids.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const CMDN_OVERSIZED_MODAL_HEADER = 'cmdn-oversizedModalHeader';
const CMDN_OVERSIZED_MODAL_CANCEL_BUTTON = 'cmdn-oversizedModalCancelButton';
const CMDN_OVERSIZED_MODAL_CONTINUE_BUTTON = 'cmdn-oversizedModalContinueButton';

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/containers/oversized-template-container/OversizedTemplateContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/










class OversizedTemplateContainer_OversizedTemplateOverlay extends react["Component"] {
    constructor(props) {
        super(props);
        this.neverShowAgain = !this.props.store.showFileSizeWarning;
        this.continueBtn = react_default.a.createRef();
    }
    componentDidMount() {
        this.continueBtn.current && this.continueBtn.current.focus();
    }
    onCancel(event) {
        this.props.store.activeModalView = null;
    }
    onContinue(event) {
        this.props.store.activeModalView = null;
        // TODO Start download from here on the model.
        this.props.store.showFileSizeWarning = !this.neverShowAgain;
        this.props.store.downloadActiveTemplate();
    }
    render() {
        const { formatMessage } = this.props.intl;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(Heading_default.a, { id: CMDN_OVERSIZED_MODAL_HEADER, className: OversizedTemplateContainer_default.a['OversizedModal-header'], variant: "pageTitle" },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_bigtemplate_header" })),
            react_default.a.createElement("div", { className: OversizedTemplateContainer_default.a['OversizedModal-message'] },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "newdoc_bigtemplate_body" })),
            react_default.a.createElement("div", { className: OversizedTemplateContainer_default.a['OversizedModal-actions'] },
                react_default.a.createElement(Button_default.a, { id: CMDN_OVERSIZED_MODAL_CANCEL_BUTTON, defaultpreventedkeys: ['Escape'], onClick: event => this.onCancel(event) },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "cancel" })),
                react_default.a.createElement(Button_default.a, { id: CMDN_OVERSIZED_MODAL_CONTINUE_BUTTON, defaultpreventedkeys: ['Escape'], variant: "cta", onClick: event => this.onContinue(event), ref: this.continueBtn },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "continue" }))),
            react_default.a.createElement(Checkbox_default.a, { defaultpreventedkeys: ['Escape'], label: formatMessage({ id: 'never_show_again' }), checked: this.neverShowAgain, onChange: value => (this.neverShowAgain = value) })));
    }
}
const DecoratedClass = Object(mobx_module["o" /* decorate */])(OversizedTemplateContainer_OversizedTemplateOverlay, {
    neverShowAgain: mobx_module["z" /* observable */],
});
const ObservedClass = Object(AppStore["c" /* withStore */])(Object(index_es["g" /* injectIntl */])(Object(index_module["e" /* observer */])(DecoratedClass)));


// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/LockUtils.ts
var LockUtils = __webpack_require__("Yq8u");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DialogUtils.ts
var DialogUtils = __webpack_require__("ZVWO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/LibraryManager.ts
var LibraryManager = __webpack_require__("io8T");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DocumentTemplateInteractionUtils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









/**
 * Generates the default document name. This value will be correctly localized depending on the users's locale.
 *
 * @param store Reference to the store.
 * @returns Default document name.
 */
function getDefaultDocumentName(store) {
    return ((store.defaultSettings && store.defaultSettings.defaultDocumentName) ||
        i18n["a" /* default */].formatMessage('newdoc_default_docname'));
}
/**
 * Creates a new document using the active document template information and the given document name. The dialog needs
 * to be closed in order to successfully create a document.
 *
 * @param store Reference to the store.
 * @param [defaultDocumentName] Name that will be assigned to the document upon creation.
 * @param [showDialog] True if we want the legacy "New Document" dialog to open.
 * @returns True of the document was created successfully, otherwise false.
 */
async function _createDocument(store, defaultDocumentName, showDialog) {
    let result = false;
    const activeDocument = store.activeDocumentTemplate;
    if (!store || !activeDocument) {
        return result;
    }
    // only close the UXP dialog if we didn't request to open the legacy one.
    // If that was requested, it should display on top of the UXP dialog.
    if (!showDialog) {
        // we first need to close the app in order for PS to execute the command
        store.closeApp(DialogUtils["a" /* DialogCloseReason */].CREATE);
    }
    if (!activeDocument.kind) {
        logger_default.a.warn(`Active document template "kind" is not defined! Assuming "preset".`);
    }
    const docKind = activeDocument.kind;
    // we know the activeDocumentTemplate is a model, so get a snapshot before sending it to the host
    const itemToUse = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(activeDocument) ? Object(mobx_state_tree_module["f" /* getSnapshot */])(activeDocument) : activeDocument;
    if (!itemToUse) {
        return result;
    }
    let ingestAction;
    // make the create call
    switch (docKind) {
        case DocumentTemplateKind["a" /* default */].TEMPLATE:
            result = await store.openTemplate(itemToUse);
            ingestAction = 'open-template';
            break;
        case DocumentTemplateKind["a" /* default */].PRESET:
        default:
            result = await store.createDocument(itemToUse, store.documentName || defaultDocumentName, showDialog);
            ingestAction = 'preset-create';
            break;
    }
    if (showDialog) {
        ingestAction = 'more-settings';
    }
    // store the Ingest event
    const ingestData = {
        settings: {},
        activeFilter: store.activeView,
    };
    Object.assign(ingestData, store.originalPreset);
    Object.assign(ingestData.settings, itemToUse);
    const analytics = store.analytics;
    analytics.logFNFTActionClickedEvent(ingestAction, ingestData);
    analytics.flushEvent();
    // only update recents & settings when we don't want to show the legacy dialog
    if (!showDialog) {
        // update default settings so that the document name is updated properly ("Untitled-1", "Untitled-2", ...)
        await store.updateDefaultSettings();
        // update the Recents tab
        // Allow updatePresetsAndTemplates to use cached data because we just called updateDefaultSettings before.
        // This will only have an effect in ID, where we need to minimize the # of calls we make to the host one after the other.
        await store.updatePresetsAndTemplates(DocumentTemplateCategoryTypes["a" /* default */].RECENT, true);
    }
    return result;
}
const createDocument = Object(LockUtils["c" /* lockFunction */])(_createDocument, LockUtils["a" /* Lock */].CMDN_REFRESHING, LockUtils["b" /* LockMode */].WAIT_ONLY, 60);
/**
 * Initiates the download sequence of the active template.
 *
 * @param store Application Store.
 */
function startDownload(store) {
    if (store.activeDocumentTemplate) {
        const activeTemplate = store.activeDocumentTemplate;
        if (activeTemplate.isDownloading || LibraryManager["d" /* default */].isTemplateDownloaded(activeTemplate.id)) {
            return;
        }
        const { showFileSizeWarning, analytics, activeView } = store;
        if (showFileSizeWarning && activeTemplate.isTooLarge) {
            store.activeModalView = ObservedClass;
            analytics.logFNFTActionClickedEvent('too-large-render', { ...activeTemplate, activeFilter: activeView });
            return;
        }
        store.downloadActiveTemplate();
    }
}
/**
 * Sets the provided item as the active document template.
 *
 * @param store Application store.
 * @param item The document template selected.
 */
function onItemSelected(store, item) {
    if (store) {
        store.activeDocumentTemplate = item;
        store.saveFormVisible = false;
        const { analytics, activeView, previewModeEnabled } = store;
        // use a snapshot to be sure that we don't send the mobx model to Ingest
        const itemSnapshot = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(item) ? Object(mobx_state_tree_module["f" /* getSnapshot */])(item) : item;
        switch (item.kind) {
            case DocumentTemplateKind["a" /* default */].PRESET:
                analytics.logFNFTActionClickedEvent('preset-selected', itemSnapshot);
                previewModeEnabled && store.updatePreviewDocSettings();
                break;
            case DocumentTemplateKind["a" /* default */].TEMPLATE:
                analytics.logFNFTActionClickedEvent('template-selected', { ...itemSnapshot, activeFilter: activeView });
                break;
            default:
                logger_default.a.warn('Item kind not set for selected item! Please set item kind to avoid errors');
        }
    }
}
/**
 * Creates a document using the current Preset.
 *
 * @param store Application Store.
 */
function onPresetDoubleClick(store) {
    createDocument(store, getDefaultDocumentName(store));
}
/**
 * Creates a document using the current Template.
 *
 * @param store Application Store.
 * @param item The template double clicked.
 */
function onTemplateDoubleClick(store, item) {
    if (store.activeDocumentTemplate) {
        const activeTemplate = store.activeDocumentTemplate;
        if (activeTemplate.isDownloading) {
            return;
        }
        if (activeTemplate.isLicensed) {
            createDocument(store);
        }
        else {
            startDownload(store);
        }
    }
}
/**
 * Handles the deletion of a Saved Preset.
 *
 * @param store Reference to the store.
 * @param item The preset to delete.
 */
async function onPresetDeleted(store, item) {
    if (store) {
        const viewId = store.activeView;
        let presets = store.getPresetsByCategoryType(viewId);
        const selectedItemIndex = presets.findIndex(preset => preset.name === item.name);
        await store.deletePreset(item.name || '');
        // we only reload the Saved presets so the deletion is shown to the user
        await store.updatePresetCategory(DocumentTemplateCategoryTypes["a" /* default */].SAVED);
        // we reload the presets now we've reloaded the data from Photoshop
        presets = store.getPresetsByCategoryType(viewId);
        if (presets && presets.length > 0) {
            store.activeDocumentTemplate =
                selectedItemIndex === presets.length
                    ? // we select the previous item as the active preset
                        presets[Math.max(0, selectedItemIndex - 1)]
                    : // we select the next item as the active preset, keep the current index position
                        presets[selectedItemIndex];
        }
        else {
            // if we deleted all the presets, auto-select the first template
            const templates = store.getTemplatesByCategoryType(viewId);
            store.activeDocumentTemplate =
                templates && templates.length > 0
                    ? templates[0]
                    : undefined;
        }
    }
}
/**
 * Selects the first element in the template grid.
 *
 * @param store Reference to the store.
 * @param viewId Current tab ID.
 */
function jumpToTemplateGrid(store, viewId) {
    const templates = store.getTemplatesByCategoryType(viewId);
    const selectedItem = templates && templates.length > 0 && templates[0];
    selectedItem && onItemSelected(store, selectedItem);
}
/**
 * Selects the last element in the preset grid.
 *
 * @param store Reference to the store.
 * @param viewId Current tab ID.
 */
function jumpToPresetGrid(store, viewId) {
    const presets = store.getPresetsByCategoryType(viewId);
    const selectedItem = presets && presets.length > 0 && presets[presets.length - 1];
    selectedItem && onItemSelected(store, selectedItem);
}
/**
 * Selects the first element of a collection.
 *
 * @param store Reference to the store.
 * @param collectionIndex Collection index.
 */
function jumpToNextCollectionGrid(store, collectionIndex) {
    const templates = store.getTemplatesByCollectionIndex(collectionIndex);
    const selectedItem = templates === null || templates === void 0 ? void 0 : templates[0];
    selectedItem && onItemSelected(store, selectedItem);
}
/**
 * Selects the last element of a collection.
 *
 * @param store Reference to the store.
 * @param collectionIndex Collection index.
 */
function jumpToPreviousCollectionGrid(store, collectionIndex) {
    const templates = store.getTemplatesByCollectionIndex(collectionIndex);
    const selectedItem = templates === null || templates === void 0 ? void 0 : templates[templates.length - 1];
    selectedItem && onItemSelected(store, selectedItem);
}


/***/ }),

/***/ "HpQ9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ContainerSnapshot = function () {
  function ContainerSnapshot() {}

  ContainerSnapshot.of = function (bindings, middleware) {
    var snapshot = new ContainerSnapshot();
    snapshot.bindings = bindings;
    snapshot.middleware = middleware;
    return snapshot;
  };

  return ContainerSnapshot;
}();

exports.ContainerSnapshot = ContainerSnapshot;

/***/ }),

/***/ "IEX1":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "JscO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ iocContainer; });

// EXTERNAL MODULE: ./node_modules/reflect-metadata/Reflect.js
var reflect_metadata_Reflect = __webpack_require__("mNvP");

// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
var inversify = __webpack_require__("4cb6");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetCategorySections.ts
var PresetCategorySections = __webpack_require__("OVtD");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Constants.ts
var Constants = __webpack_require__("Ai3n");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetsControllerBase.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};




let PresetsControllerBase_PresetsControllerBase = class PresetsControllerBase {
    /**
     * Retuns an array of the sections maped to a given category. Order of the sections does not matter as they will be
     * processed clientside upon receiving the new data.
     *
     * @param data Object containing the preset data.
     * @param locale Locale in which the presets will be displayed.
     * @param [settings] Host Settings used to update the presets.
     * @returns Object containing the list of presets per category.
     */
    getPresetsCategories(data, locale, settings) {
        return {};
    }
    /**
     * Determines if the given preset name is invalid within the preset category. A name is considered valid, if the name
     * does not collide with an existing preset and if it is not equal an empty string.
     *
     * @param presetName Preset name that used to determine if it is valid.
     * @param presetCategories Presets for a given category used to determine a new preset name.
     * @returns True if there is a name collision inside the given preset category.
     */
    isPresetNameInvalid(presetName, presetCategories) {
        return presetName.trim() === '' || presetCategories.some(preset => preset.name === presetName);
    }
    /**
     * Generates a new name for the preset based on the current incremental localized value.
     *
     * @param baseTitle Base title used to generate the new preset name. This value is expected to be correctly localized.
     * @param presetCategories Presets for a given category used to determine a valid new preset name.
     * @returns New name given to the preset.
     */
    generateNewPresetName(baseTitle, presetCategories) {
        let increment = 0;
        let found = true;
        while (found) {
            ++increment;
            const targetTitle = `${baseTitle} ${increment}`;
            found = presetCategories.some(preset => preset.name === targetTitle);
        }
        return `${baseTitle} ${increment}`;
    }
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults. Creates a preset model using the value and settings it received.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @returns The new preset model.
     */
    createPresetModel(preset, settings) {
        return preset;
    }
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @param otherCategories Preset categories that were populated up to that point.
     * @returns The updated preset.
     */
    updatePreset(preset, settings, otherCategories) {
        return preset;
    }
    /**
     * Comparator function used for sorting Document Templates. Items are sorted based on their lastUsageTime, except
     * clipboard items which are always added first.
     *
     * @param a First item to compare.
     * @param b Second item to compare.
     * @returns -1 is a should be sorted before b, 1 if b should be sorted before a, or 0 if a and be should
     * be left unchanged.
     */
    mostRecentlyUsedComparator(a, b) {
        // This forces the clipboard to have priority
        if (a.kind === DocumentTemplateKind["a" /* default */].PRESET &&
            a.group === Constants["d" /* CLIPBOARD */]) {
            return -1;
        }
        else if (b.kind === DocumentTemplateKind["a" /* default */].PRESET &&
            b.group === Constants["d" /* CLIPBOARD */]) {
            return 1;
        }
        else if (a.lastUsedTime === undefined) {
            return 1;
        }
        else if (b.lastUsedTime === undefined) {
            return -1;
        }
        else if (a.lastUsedTime > b.lastUsedTime) {
            return -1;
        }
        else if (a.lastUsedTime < b.lastUsedTime) {
            return 1;
        }
        else if (a.lastUsedTime === b.lastUsedTime && a.title && b.title) {
            return a.title.localeCompare(b.title);
        }
        return 0;
    }
};
PresetsControllerBase_PresetsControllerBase = __decorate([
    Object(inversify["injectable"])()
], PresetsControllerBase_PresetsControllerBase);


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostNames.ts
var HostNames = __webpack_require__("U05r");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/icon/IconMapper.tsx
var IconMapper = __webpack_require__("XLCt");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/DroverPresetsController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DroverPresetsController_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};










const Thumbnail = {
    PRESET_ART: 'SP_PresetArt.png',
    PRESET_CLIPBOARD: 'SP_PresetClipboard.png',
    PRESET_CUSTOM: 'SP_PresetCustom.png',
    PRESET_FILM_VIDEO: 'SP_PresetFilmVideo.png',
    PRESET_ICONOGRAPHY_DOC: 'SP_PresetIconographyDoc.png',
    PRESET_SURFACE_PRO: 'SP_PresetSurfacePro.png',
    PRESET_MOBILE_APP_DOC: 'SP_PresetMobileAppDoc.png',
    PRESET_MOBILE_PHONE_DOC: 'SP_PresetMobilePhoneDoc.png',
    PRESET_TABLET_APP: 'SP_PresetTabletApp.png',
    PRESET_PHOTO_DOC: 'SP_PresetPhotoDoc.png',
    PRESET_WEB_DOC: 'SP_PresetWebDoc.png',
    PRESET_PRINT_DOC: 'SP_PrintDoc.png',
};
/**
 * Map thumbnail_url to group.
 *
 * @param preset The preset witch contains data for mapping.
 * @returns The mapping of thumbnail_url to group.
 */
function getIconCategory(preset) {
    let presetIcon;
    switch (preset.thumbnail_url) {
        case Thumbnail.PRESET_ART:
            presetIcon = Constants["c" /* ART_ILLUSTRATION */];
            break;
        case Thumbnail.PRESET_CLIPBOARD:
            presetIcon = Constants["d" /* CLIPBOARD */];
            break;
        case Thumbnail.PRESET_FILM_VIDEO:
            presetIcon = Constants["t" /* VIDEO */];
            break;
        case Thumbnail.PRESET_ICONOGRAPHY_DOC:
        case Thumbnail.PRESET_SURFACE_PRO:
        case Thumbnail.PRESET_MOBILE_APP_DOC:
        case Thumbnail.PRESET_MOBILE_PHONE_DOC:
        case Thumbnail.PRESET_TABLET_APP:
            presetIcon = Constants["l" /* MOBILE */];
            break;
        case Thumbnail.PRESET_PHOTO_DOC:
            presetIcon = Constants["m" /* PHOTO */];
            break;
        case Thumbnail.PRESET_WEB_DOC:
            presetIcon = Constants["u" /* WEB */];
            break;
        case Thumbnail.PRESET_PRINT_DOC:
            presetIcon = Constants["n" /* PRINT */];
            break;
        case Thumbnail.PRESET_CUSTOM:
        default:
            presetIcon = Constants["f" /* CUSTOM */];
            break;
    }
    return presetIcon;
}
let DroverPresetsController_AiPresetsController = class AiPresetsController extends PresetsControllerBase_PresetsControllerBase {
    /**
     * Retuns an array of the sections maped to a given category. Order of the sections does not matter as they will be
     * processed clientside upon receiving the new data.
     *
     * @param data Object containing the preset data.
     * @param locale Locale in which the presets will be displayed.
     * @param [settings] Host Settings used to update the presets.
     * @returns Object containing the list of presets per category.
     */
    getPresetsCategories(data, locale, settings) {
        const presetCategories = {};
        const presets = data.presets;
        const DroverPresetCategorySections = Object(PlatformUtils["d" /* getHostName */])() === HostNames["a" /* default */].ILLUSTRATOR
            ? PresetCategorySections["a" /* PresetCategorySections */][HostIds["a" /* default */].ILST]
            : PresetCategorySections["a" /* PresetCategorySections */][HostIds["a" /* default */].IDSN];
        if (presets) {
            Object.keys(DroverPresetCategorySections).forEach(key => {
                let category = presetCategories[key] || [];
                DroverPresetCategorySections[key].forEach((section) => {
                    const presetSection = presets.sections && presets.sections[section];
                    if (presetSection && presetSection.length) {
                        category = category.concat(presetSection);
                    }
                });
                presetCategories[key] = category;
            });
        }
        this.preprocessPresets(presetCategories, settings);
        return presetCategories;
    }
    /**
     * Adds the identifier used to recognize selection.
     *
     * @param presetCategories Presets to process.
     * @param [settings] Host Settings used to update the presets.
     */
    preprocessPresets(presetCategories, settings) {
        for (const category in presetCategories) {
            const presets = presetCategories[category];
            presets.forEach((preset, index) => {
                // these can't be moved to the model, we need them for the non-model presets as well
                preset.kind = DocumentTemplateKind["a" /* default */].PRESET;
                preset.name = preset.title;
                preset.identifier = `preset_${category}_${index}`;
                preset.category = category;
                preset.group = getIconCategory(preset);
                // this needs to happen here and not in the model because most of the presets aren't models
                const icon = Object(IconMapper["getPresetIconName"])({ ...preset, iconIdentifier: preset.uniqueID });
                preset.icon = icon;
            });
        }
    }
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @param otherCategories Preset categories that were populated up to that point.
     * @returns The updated preset.
     */
    updatePreset(preset, settings, otherCategories) {
        // passing the FNFT settings to the preset, so that it can be used by the model on create
        // TODO - when we remove the updatePreset functions, we can do this operation directly before model creation
        preset.fnftSettings = settings;
        preset.group = getIconCategory(preset);
        return preset;
    }
};
DroverPresetsController_AiPresetsController = DroverPresetsController_decorate([
    Object(inversify["injectable"])()
], DroverPresetsController_AiPresetsController);
/* harmony default export */ var DroverPresetsController = (DroverPresetsController_AiPresetsController);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts + 1 modules
var MathUtils = __webpack_require__("AGvf");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/UnitsUtils.ts
var UnitsUtils = __webpack_require__("Fr31");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PsPresetsController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var PsPresetsController_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};











const PsPresetCategorySections = PresetCategorySections["a" /* PresetCategorySections */][HostIds["a" /* default */].PHXS];
let PsPresetsController_PsPresetsController = class PsPresetsController extends PresetsControllerBase_PresetsControllerBase {
    constructor() {
        super(...arguments);
        this._lastActivePresetBackgroundColor = 'white';
    }
    /**
     * Retuns an array of the sections maped to a given category. Order of the sections does not matter as they will be
     * processed clientside upon receiving the new data.
     *
     * @param data Object containing the preset data.
     * @param locale Locale in which the presets will be displayed.
     * @param [settings] Host Settings used to update the presets.
     * @returns Object containing the list of presets per category.
     */
    getPresetsCategories(data, locale, settings) {
        const presetCategories = {};
        const presets = data.presets;
        if (presets) {
            // This maps Photoshop preset sections to the relevant ccx template categories.
            // It is opt-in order of items in the 'sections' arrays is important.
            // MRU are a special case;  they aren't in psPresets but get added above instead,
            // and the clipboard gets artificially forced in front of them.
            //
            // Yes, the loops are quadratic, but the number of sections is small, and unmappped
            // sections get skipped, it enables mapping a single section to multiple categories
            // if desired, and it ensures that the extension controls the ordering rather than
            // being dependent on the order of sections coming from Photoshop.
            const catToSec = PsPresetCategorySections[locale] || PsPresetCategorySections.default;
            Object.keys(catToSec).forEach(key => {
                let category = presetCategories[key] || [];
                catToSec[key].forEach((section) => {
                    const presetSection = presets.sections.find(presetSection => presetSection.section === section);
                    if (presetSection) {
                        // Filter out separator preset to match the initial implementation
                        category = category.concat(this._getPresetsWithoutSeparator(presetSection.presets, settings));
                    }
                });
                presetCategories[key] = category;
            });
        }
        const mruPresets = data.mruPresets;
        // mruPresets only available when 'Recents' are fetched
        if (mruPresets) {
            // feed in the MRU presets
            const mruArray = this.getRecentsCategories(data, presetCategories, settings);
            // Clipboard should be first then MRU and this is added on top
            presetCategories[DocumentTemplateCategoryTypes["a" /* default */].RECENT] = (presetCategories[DocumentTemplateCategoryTypes["a" /* default */].RECENT] || []).concat(mruArray);
        }
        this.addPresetIdToPresets(presetCategories);
        return presetCategories;
    }
    /**
     * Adds the identifier used to recognize selection.
     *
     * @param presetCategories Presets to process.
     */
    addPresetIdToPresets(presetCategories) {
        for (const category in presetCategories) {
            const presets = presetCategories[category];
            presets.forEach((preset, index) => {
                // TODO - clean up id / identifier here. We're overriding what's coming from the host
                preset.identifier = `preset_${category}_${index}`;
                preset.category = category;
            });
        }
    }
    /**
     * Gets the items to display in the Recents category.
     *
     * @param data Object containing the preset data.
     * @param otherCategories The other populated, preset categories. We need them to find the icon for old recents items.
     * @param [settings] Host Settings used to update the presets.
     * @returns Array of presets to show, sorted by lastUsedTime.
     */
    getRecentsCategories(data, otherCategories, settings) {
        // feed in the MRU presets
        let mruArray = (data.mruPresets && this._getPresetsWithoutSeparator(data.mruPresets.mru, settings, otherCategories)) || [];
        const mruTemplates = data && data.mruTemplates && data.mruTemplates.recentlyUsedTemplates;
        if (mruTemplates) {
            // Fixup MRU templates
            for (let mruIndex = 0; mruIndex < mruTemplates.length; ++mruIndex) {
                mruTemplates[mruIndex].template_category = [DocumentTemplateCategoryTypes["a" /* default */].RECENT];
                mruTemplates[mruIndex].kind = DocumentTemplateKind["a" /* default */].TEMPLATE;
            }
            // Combine MRU templates and MRU presets
            mruArray = mruArray.concat(mruTemplates);
        }
        return mruArray;
    }
    /**
     * Updates the given preset based on the host settings and saves the non-clipboard preset fill background,
     * to apply it to the clipboard card when it becomes active.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @param [otherCategories] Preset categories that were populated up to that point.
     * @returns The updated preset.
     */
    updatePreset(preset, settings, otherCategories) {
        const result = this.updatePresetFields(preset, settings, otherCategories);
        return this.storeAndUpdatePresetFill(result, settings);
    }
    /**
     * Updates the given preset based on the host settings. This takes care of interpreting values and applies
     * defaults.
     *
     * @param preset Preset that will be modified based on the default configuration.
     * @param [settings] Host Settings used to update the presets.
     * @param [otherCategories] Preset categories that were populated up to that point.
     * @returns The updated preset.
     */
    updatePresetFields(preset, settings, otherCategories) {
        if (settings) {
            if (preset.resolution === 'screen') {
                preset.resolution = settings.screenPresetResolution && settings.screenPresetResolution.value;
                preset.resolutionUnits = settings.screenPresetResolution && settings.screenPresetResolution.units;
            }
            else if (preset.resolution === 'print') {
                preset.resolution = settings.printPresetResolution && settings.printPresetResolution.value;
                preset.resolutionUnits = settings.printPresetResolution && settings.printPresetResolution.units;
            }
            preset.backgroundValues = settings.backgroundValues;
            preset.colorProfileLists = settings.colorProfileLists;
            preset.colorSettings = settings.colorSettings;
            preset.pointsPerInch = settings.pointsPerInch || 72;
            preset.picasPerInch = Object(MathUtils["f" /* roundDecimal */])(preset.pointsPerInch / UnitsUtils["o" /* UNIT_CONVERSION */].POINTS_PER_PICA, 4);
            preset.defaultBackground = settings.backgroundColor;
            preset.defaultBackgroundRgb = settings.backgroundColorRgb;
            preset.colorModes = settings.colorModes;
            preset.userLocaleDecimal = settings.userLocaleDecimal;
            if (!preset.mode) {
                // defaults the value to 'RGB' if available, otherwise the first colorMode in the array
                preset.mode =
                    settings.colorModes &&
                        settings.colorModes.length &&
                        (settings.colorModes.some(mode => mode.mode === 'RGB') ? 'RGB' : settings.colorModes[0].mode);
            }
            if (!preset.depth && preset.mode) {
                // find the mode
                const colorMode = settings.colorModes && settings.colorModes.find(mode => mode.mode === preset.mode);
                preset.depth = colorMode && colorMode.values && colorMode.values.length && colorMode.values[0];
            }
            // The presets in all of the tabs except Recent should already have the category set.
            // For recents, we want to look for the original tab, so that we can do a reverse-lookup of the icon.
            const originalPresetCategory = preset.category && preset.category !== 'recent'
                ? preset.category
                : Object(PresetCategorySections["b" /* getCategoryForPsSection */])(preset.group);
            preset.icon = Object(IconMapper["getPresetIconName"])(preset, originalPresetCategory ? otherCategories && otherCategories[originalPresetCategory] : undefined);
        }
        return preset;
    }
    /**
     * If the preset is not clipboard, it stores its color as the last active color. If the preset is the clipboard, it applies
     * the stored last active color as its fill color.
     *
     * @param preset The preset whose fill color will be updated or saved.
     * @param [settings] The host settings.
     *
     * @returns The preset updated with the fill color.
     */
    storeAndUpdatePresetFill(preset, settings) {
        if (preset.group === Constants["d" /* CLIPBOARD */]) {
            preset.fill = this._lastActivePresetBackgroundColor;
        }
        else {
            this._lastActivePresetBackgroundColor = preset.fill || (settings && settings.backgroundColor) || 'white';
        }
        return preset;
    }
    /**
     * Filters the presets list to only allow presets with name different than "separator" and
     * updates the given presets list based on the host settings.
     *
     * @param presets Presets list that will be filtered based on the name of each preset.
     * @param [settings] Host Settings used to update the presets.
     * @param [otherCategories]
     * @returns The filtered presets list.
     */
    _getPresetsWithoutSeparator(presets, settings, otherCategories) {
        if (!presets || !Array.isArray(presets)) {
            return presets;
        }
        return presets
            .filter(preset => preset.name !== Constants["q" /* SEPARATOR */])
            .map(preset => {
            preset.kind = DocumentTemplateKind["a" /* default */].PRESET;
            // save the iconIdentifier here, begore we have a chance to add other IDs
            // After PS-43300, we'll have presets coming in with te 'identifier' field populated with the English name of the preset
            // We're not keeping the preset.identifier as sent from the host, because Custom presets in Recent have the same identifier & will mess up grid selection and navigation
            preset.iconIdentifier = preset.identifier;
            // adjust resolution to value
            return this.updatePresetFields(preset, settings, otherCategories);
        });
    }
};
PsPresetsController_PsPresetsController = PsPresetsController_decorate([
    Object(inversify["injectable"])()
], PsPresetsController_PsPresetsController);
/* harmony default export */ var controllers_PsPresetsController = (PsPresetsController_PsPresetsController);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-icon/PresetIcon.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const PresetMobile = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M645.953 821.581H378.046c-13.098 0-23.814-10.716-23.814-23.814V279.814c0-13.098 10.716-23.814 23.814-23.814h267.907c13.098 0 23.814 10.716 23.814 23.814v517.953c0 13.098-10.716 23.814-23.814 23.814zM366.14 279.814v517.953c0 6.549 5.358 11.907 11.907 11.907h267.907c6.549 0 11.907-5.358 11.907-11.907V279.814c0-6.549-5.358-11.907-11.907-11.907H378.047c-6.549 0-11.907 5.358-11.907 11.907zm119.069 23.814h53.581v11.907h-53.581v-11.907zm38.698 461.395c0 6.549-5.358 11.907-11.907 11.907s-11.907-5.358-11.907-11.907 5.358-11.907 11.907-11.907 11.907 5.358 11.907 11.907zm8.93 0c0-11.609-9.228-20.837-20.837-20.837s-20.837 9.228-20.837 20.837S500.391 785.86 512 785.86s20.837-9.228 20.837-20.837z" })));
const PrintDoc = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M631.07 482.233h-77.395V378.94c0-3.274-2.679-5.953-5.953-5.953-1.488 0-2.977.595-4.167 1.786L358.997 555.461c-2.381 2.381-2.381 5.953 0 8.335 1.191 1.191 2.679 1.786 4.167 1.786h65.488c-16.67 42.865 4.763 90.791 47.33 107.46 42.865 16.67 90.791-4.763 107.46-47.33 0-.298 0-.298.298-.595h47.33c3.274 0 5.953-2.679 5.953-5.953V488.187c0-3.274-2.679-5.953-5.953-5.953zm-256 71.441l166.698-163.126v91.684h-41.674c-3.274 0-5.953 2.679-5.953 5.953v24.707c-25.302 3.572-47.33 18.753-60.13 40.781h-58.94zm130.977 113.117c-39.591 0-71.442-31.851-71.442-71.442s31.851-71.442 71.442-71.442 71.442 31.851 71.442 71.442-31.851 71.442-71.442 71.442zm119.069-53.582h-37.805c9.823-44.949-18.456-89.302-63.405-99.126-5.953-1.191-11.907-2.084-18.158-2.084v-17.86h119.07v119.07h.298zM285.767 244.093c-6.549 0-11.907 5.358-11.907 11.907v559.628c0 6.549 5.358 11.907 11.907 11.907h452.465c6.549 0 11.907-5.358 11.907-11.907V256c0-6.549-5.358-11.907-11.907-11.907H285.767zm452.466 571.535H285.768V256h452.465v559.628z" })));
const PresetCustom = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M583.442 258.977l148.837 148.837H583.442V258.977zm-297.675-5.954h285.767v154.791c0 6.549 5.358 11.907 11.907 11.907h154.791v392.93H285.767V253.023zm0-11.907c-6.549 0-11.907 5.358-11.907 11.907v559.628c0 6.549 5.358 11.907 11.907 11.907h452.465c6.549 0 11.907-5.358 11.907-11.907V412.874c0-3.274-1.191-6.251-3.572-8.335L586.716 244.688c-2.381-2.381-5.358-3.572-8.335-3.572H285.767zm347.386 387.87L446.511 442.344c-3.87-3.87-10.419-3.87-14.586 0l-35.126 35.126c-3.87 3.87-3.87 10.419 0 14.586l186.642 186.642c3.87 3.87 10.419 3.87 14.586 0l35.126-35.126c4.167-3.87 4.167-10.419 0-14.586zm-42.269 42.27L404.54 485.209l35.126-35.126 17.265 17.265-17.265 17.265 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-35.423 35.126zm-146.456-18.754l-21.135-21.135 49.712-49.712-7.442-7.442-55.367 55.367c-.595.595-1.191 1.191-1.191 2.084l-14.288 45.247c-.893 2.679.595 5.656 3.572 6.549.595.298.893.298 1.488.298s1.191 0 1.786-.298l42.865-16.67c.595-.298 1.191-.595 1.786-1.191l55.367-55.367-7.442-7.442-49.712 49.712zm-36.614 16.968l9.228-29.172 18.456 18.456-27.684 10.716zm219.088-197.954l-22.623-22.623c-3.87-3.572-9.823-3.572-13.395 0l-62.214 62.214 7.442 7.442 61.321-61.321 21.135 21.135-61.321 61.321 7.442 7.442 62.214-62.214c3.87-3.87 3.87-9.823 0-13.395z" })));
const PresetFilmVideo = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M440.26 634.344c5.358 3.274 11.907 3.572 17.563.595l163.423-86.028c5.953-2.977 8.037-10.121 5.06-16.074-1.191-2.084-2.679-3.572-4.763-4.763l-163.126-92.577c-8.633-4.763-19.349-1.786-24.409 6.847-1.488 2.679-2.381 5.656-2.381 8.93v167.888c0 6.251 3.274 12.205 8.633 15.181zm3.275-183.367c0-2.084 1.191-4.167 2.977-5.06.893-.595 2.084-.893 2.977-.893s2.084.298 2.977.893l163.126 92.577-163.423 86.028c-2.977 1.488-6.549.298-8.037-2.381-.595-.893-.595-1.786-.595-2.679V450.978zm351.256-147.349H247.07c-9.823 0-17.86 8.037-17.86 17.86v422.698c0 9.823 8.037 17.86 17.86 17.86h547.721c9.823 0 17.86-8.037 17.86-17.86V321.488c0-9.823-8.037-17.86-17.86-17.86zm5.953 440.558c0 3.274-2.679 5.953-5.953 5.953H247.07c-3.274 0-5.953-2.679-5.953-5.953V321.488c0-3.274 2.679-5.953 5.953-5.953h547.721c3.274 0 5.953 2.679 5.953 5.953v422.698z" })));
const PresetPhoto = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M782.884 315.535H235.163c-9.823 0-17.86 8.037-17.86 17.86v422.698c0 9.823 8.037 17.86 17.86 17.86h547.721c9.823 0 17.86-8.037 17.86-17.86V333.395c0-9.823-8.037-17.86-17.86-17.86zm-547.721 11.907h547.721c3.274 0 5.953 2.679 5.953 5.953v342.028c-24.112-28.577-89.6-96.149-112.521-96.149-11.312 0-30.363 13.693-60.726 36.316-25.005 18.456-55.963 41.674-68.465 41.674-8.633 0-37.209-39.888-55.963-66.084-35.721-49.712-58.642-80.074-75.312-80.074-38.102 0-136.93 92.874-186.642 151.516V333.394c0-3.274 2.679-5.953 5.953-5.953zm553.674 428.651c0 3.274-2.679 5.953-5.953 5.953H235.163c-3.274 0-5.953-2.679-5.953-5.953v-75.014c53.284-66.679 156.577-158.363 186.642-158.363 11.907 0 42.865 43.46 65.488 75.014 32.447 45.544 51.795 71.144 65.786 71.144 15.181 0 39.888-17.563 75.609-44.056 20.242-15.181 45.842-33.935 53.581-33.935 16.372 0 86.623 69.358 108.949 98.828 2.381 3.274 3.572 6.847 3.274 10.716v55.665h.298zM657.86 506.047c36.316 0 65.488-29.172 65.488-65.488s-29.172-65.488-65.488-65.488-65.488 29.172-65.488 65.488c0 36.019 29.47 65.488 65.488 65.488zm0-119.07c29.47 0 53.581 24.112 53.581 53.581s-24.112 53.581-53.581 53.581-53.581-24.112-53.581-53.581 24.112-53.581 53.581-53.581z" })));
const PresetCustomSavedlocal = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M763.833 770.977l-14.884 18.456c-1.191 1.191-2.977 1.488-4.465.595l-25.898-19.051h-57.749c-3.274 0-5.953 2.679-5.953 5.953v41.674c0 3.274 2.679 5.953 5.953 5.953h139.907c3.274 0 5.953-2.679 5.953-5.953V776.93c0-3.274-2.679-5.953-5.953-5.953h-36.912zm-89.6 23.814h-5.953c-2.381 0-4.465-2.084-4.465-4.465v-5.953c0-2.381 2.084-4.465 4.465-4.465h5.953c2.381 0 4.465 2.084 4.465 4.465v5.953c0 2.381-2.084 4.465-4.465 4.465zm69.06-21.433l-21.433-16.372c-1.191-.893-1.488-2.977-.595-4.167l3.87-5.06c.893-1.191 2.977-1.488 4.167-.595l14.288 10.716 27.981-38.4c.893-1.191 2.977-1.488 4.167-.595l5.06 3.87c1.191.893 1.488 2.679.595 4.167l-34.233 45.842c-.893 1.191-2.679 1.488-3.87.595zM622.14 812.651H285.768V253.023h285.767v154.791c0 6.549 5.358 11.907 11.907 11.907h154.791v288.744l11.907-14.884V412.874c0-3.274-1.191-6.251-3.572-8.335L586.717 244.688c-2.381-2.381-5.358-3.572-8.335-3.572H285.768c-6.549 0-11.907 5.358-11.907 11.907v559.628c0 6.549 5.358 11.907 11.907 11.907H622.14v-11.907zm-38.698-553.674l148.837 148.837H583.442V258.977zm49.711 370.009L446.511 442.344c-3.87-3.87-10.419-3.87-14.586 0l-35.126 35.126c-3.87 3.87-3.87 10.419 0 14.586l186.642 186.642c3.87 3.87 10.419 3.87 14.586 0l35.126-35.126c4.167-3.87 4.167-10.419 0-14.586zm-42.269 42.27L404.54 485.209l35.126-35.126 17.265 17.265-17.265 17.265 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-17.563 17.563 7.442 7.442 17.563-17.563 13.693 13.693-35.423 35.126zm-146.456-18.754l-21.135-21.135 49.712-49.712-7.442-7.442-55.367 55.367c-.595.595-1.191 1.191-1.191 2.084l-14.288 45.247c-.893 2.679.595 5.656 3.572 6.549.595.298.893.298 1.488.298s1.191 0 1.786-.298l42.865-16.67c.595-.298 1.191-.595 1.786-1.191l55.367-55.367-7.442-7.442-49.712 49.712zm-36.614 16.968l9.228-29.172 18.456 18.456-27.684 10.716zm219.088-197.954l-22.623-22.623c-3.87-3.572-9.823-3.572-13.395 0l-62.214 62.214 7.442 7.442 61.321-61.321 21.135 21.135-61.321 61.321 7.442 7.442 62.214-62.214c3.87-3.87 3.87-9.823 0-13.395z" })));
const PresetWeb = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M785.86 321.488H238.139c-9.823 0-17.86 8.037-17.86 17.86v416.744c0 9.823 8.037 17.86 17.86 17.86H785.86c9.823 0 17.86-8.037 17.86-17.86V339.348c0-9.823-8.037-17.86-17.86-17.86zm5.954 434.605c0 3.274-2.679 5.953-5.953 5.953H238.14c-3.274 0-5.953-2.679-5.953-5.953V339.349c0-3.274 2.679-5.953 5.953-5.953h547.721c3.274 0 5.953 2.679 5.953 5.953v416.744zm-446.512-375.07h410.791v11.907H345.302v-11.907zm-77.395 0h41.674v11.907h-41.674v-11.907zm241.116 65.489c-65.488 0-128 53.879-128 128 0 70.549 57.451 128 128 128s128-57.451 128-128-57.451-128-128-128zm-5.06 243.497c0 .298 0 .298 0 0-64-2.381-113.414-56.26-111.033-120.26.893-19.051 6.251-37.507 15.777-53.879 1.488 16.967 7.74 33.34 18.456 46.735 9.228 11.312 20.837 19.647 32.447 27.684 5.656 4.167 11.907 8.335 17.265 12.8 4.167 3.274 6.251 6.251 5.953 8.335-.298 1.488-1.191 3.274-2.084 4.465-1.786 2.679-2.977 5.953-3.572 9.228-.595 5.656 1.786 11.014 5.656 14.884a59.463 59.463 0 0 0 6.549 5.656c.893.595 1.786 1.488 2.977 2.084 11.907 10.419 16.67 27.088 11.609 42.27zm47.628-25.6c-1.488 2.679-2.679 5.358-3.572 8.335-.595 1.488-.893 2.977-1.488 4.167-.298.595-.595 1.488-.893 2.084-.893 2.977-2.977 5.358-5.953 6.251-.893.298-1.488.893-2.084 1.488-6.847 1.786-13.991 2.977-21.135 3.274 5.06-19.051-1.488-38.995-16.67-51.498-1.191-.893-2.084-1.786-3.274-2.381-1.786-1.191-3.572-2.679-5.06-4.167s-2.381-3.274-2.381-5.358c.298-1.488 1.191-2.977 2.084-4.465 1.786-2.679 3.274-5.953 3.572-9.228.893-8.633-5.358-14.586-10.121-18.753-5.656-4.763-11.907-9.228-17.86-13.395-11.312-8.037-22.028-15.479-30.065-25.6-13.693-17.265-19.349-39.591-14.586-57.451 13.395-15.479 30.958-26.791 50.307-33.34h.893c3.572-.595 5.358-.595 7.144.893-.298 0-.595.298-.893.298-2.977 1.786-5.06 4.465-5.953 7.74-.893 4.167-.298 8.335 2.084 11.907a26.993 26.993 0 0 0 12.8 9.526 5.965 5.965 0 0 0 8.037-2.679c.298-.893.595-1.786.595-2.679.298-2.381 1.786-4.763 3.87-5.656 2.977-1.191 6.251-1.488 9.228-.298 2.084.595 3.87 2.084 4.763 4.465.298 2.084-1.488 5.06-3.274 8.037-7.442 12.8-16.074 24.707-25.6 36.019-2.679 3.572-6.251 5.953-10.419 7.442-1.786.298-3.87.298-5.656.298-2.381 0-5.06 0-7.442.298-4.465.595-8.633 3.274-11.312 6.847-1.786 2.679-2.381 5.953-1.786 9.228 1.488 6.549 7.74 8.633 11.907 10.121 1.786.298 3.572 1.191 5.06 2.381.298.595.298 1.488.595 2.084.298.893.298 1.786.595 2.679 2.084 6.251 6.549 11.312 12.8 13.693 4.465 1.786 9.228 2.977 14.288 3.572l1.191.298c25.6 4.167 50.307 12.205 73.823 23.516 6.251 2.977 12.8 6.847 14.288 12.502 1.488 5.06-1.786 10.419-5.06 13.991-3.572 3.274-7.442 6.549-11.312 8.93-1.786 1.191-3.274 2.381-5.06 3.572-4.763 2.977-8.335 6.847-11.014 11.014zm6.549 15.182c.298-.893.893-2.084 1.191-2.977.595-2.084 1.488-4.167 2.381-5.953 2.084-2.977 4.465-5.358 7.442-7.144 1.488-1.191 3.274-2.381 4.763-3.274 4.763-2.977 9.228-6.549 13.395-10.716 7.144-7.74 10.121-17.265 7.74-25.302-2.679-10.121-11.907-15.777-20.54-19.944-24.409-11.907-50.307-20.242-77.098-24.707l-1.191-.298c-3.87-.298-7.74-1.488-11.312-2.679-2.679-.893-5.06-3.274-6.251-5.953 0-.595-.298-1.191-.298-1.786-.298-2.084-.893-4.167-1.786-5.953-2.679-3.87-6.847-6.847-11.312-7.74-1.488-.298-2.679-.893-4.167-1.786.893-.893 1.786-1.191 2.977-1.488a16.168 16.168 0 0 1 5.358 0c2.977.298 5.656 0 8.633-.595 6.549-1.786 12.502-5.656 16.67-11.014 10.121-11.609 19.051-24.409 26.791-37.805 2.381-3.572 6.251-9.823 4.763-16.67-1.488-6.251-6.251-11.312-12.502-13.098-5.953-2.381-12.8-2.084-18.456.893-3.274 1.786-6.251 4.465-8.037 7.74-.595-.595-1.488-1.191-1.786-2.084-.595-.893-.595-1.786-.298-2.679.298-.298.595-.298 1.191-.298 2.381-.595 4.167-1.786 5.953-3.572 2.977-3.572 2.679-7.442-.595-12.205 37.805-6.251 76.205 7.144 102.102 35.423l-1.191 8.93c-2.381 16.372-4.465 33.34-1.786 50.605 3.572 21.73 14.586 39.293 30.363 48.223h.298c-8.93 33.042-31.851 61.023-63.405 75.907zm44.353-126.512c-2.381-14.884-.595-30.065 1.488-45.247 17.265 24.112 24.409 53.581 19.944 82.753-11.014-7.442-18.753-21.135-21.433-37.507z" })));
const SavedPreset = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M592.372 256l148.837 148.837H592.372V256zm-297.674-5.953h285.767v154.791c0 6.549 5.358 11.907 11.907 11.907h154.791v392.93H294.698V250.047zm0-11.907c-6.549 0-11.907 5.358-11.907 11.907v559.628c0 6.549 5.358 11.907 11.907 11.907h452.465c6.549 0 11.907-5.358 11.907-11.907V409.898c0-3.274-1.191-6.251-3.572-8.335L595.647 241.712c-2.381-2.381-5.358-3.572-8.335-3.572H294.698zm304.223 439.665c-1.191 0-2.084-.298-2.977-.893l-78.586-57.153-78.586 57.153c-1.786 1.191-4.167 1.191-6.251 0-1.786-1.191-2.679-3.572-1.786-5.953L460.8 578.68l-78.586-57.153c-1.786-1.191-2.679-3.572-1.786-5.953.595-2.084 2.679-3.572 5.06-3.572h96.744l30.065-92.279c.595-2.084 2.679-3.572 5.06-3.572s4.167 1.488 5.06 3.572l30.065 92.279h97.042c2.381 0 4.167 1.488 5.06 3.572.595 2.084 0 4.465-1.786 5.953l-78.586 57.153 30.065 92.279c.595 2.084 0 4.465-1.786 5.953-1.488.595-2.381.893-3.572.893zm-81.563-69.656c1.191 0 2.084.298 2.977.893l68.763 50.009-26.195-80.67c-.595-2.084 0-4.465 1.786-5.953l68.763-50.009h-84.837c-2.381 0-4.167-1.488-5.06-3.572l-26.195-80.67-26.195 80.67c-.595 2.084-2.679 3.572-5.06 3.572h-84.837l68.763 50.009c1.786 1.191 2.679 3.572 1.786 5.953l-26.195 80.67 68.763-50.009c.893-.595 1.786-.893 2.977-.893z" })));
const ArtAndIllustration = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M709.358 484.912l-31.553-16.372c-2.977-1.488-6.549-.298-8.037 2.381l-76.205 146.456c-.595.893-.595 1.786-.595 2.679l.298 37.507c0 3.274 2.679 5.953 5.953 5.953.595 0 1.191 0 1.786-.298s1.191-.298 1.488-.893l31.256-20.837c.893-.595 1.488-1.191 2.084-2.084l76.205-146.456a5.965 5.965 0 0 0-2.679-8.037zM603.684 621.544l23.219 12.205-22.921 15.479-.298-27.684zm28.279 2.382l-23.219-12.205 68.465-131.572 23.219 12.205-68.465 131.572zM519.74 705.488c-6.251 0-12.502-.893-18.158-2.679-9.228-2.977-16.967-9.526-21.135-18.158-4.763-10.121-3.87-23.219 2.977-38.102 7.74-17.265 19.349-32.744 30.363-47.628 12.502-16.67 24.409-32.744 31.553-51.2 1.191-2.977 2.084-5.953 2.084-8.93 0-2.084-.595-4.167-2.084-5.656-2.679-2.381-8.037-1.488-12.205-.298-19.647 5.656-36.912 17.86-48.521 34.53-1.786 2.679-5.656 3.274-8.335 1.488s-3.274-5.656-1.488-8.335c13.395-19.051 32.744-33.042 55.07-39.293 10.121-2.679 17.86-1.786 23.219 2.977 4.167 3.87 6.251 9.228 5.953 14.884-.298 4.465-1.191 8.93-2.977 13.098-7.442 20.242-20.54 37.507-33.042 54.177-10.716 14.288-21.73 29.172-29.172 45.247-5.358 11.907-6.251 21.135-2.977 28.279 2.977 5.656 8.037 10.121 14.288 11.907 6.847 2.084 13.991 2.679 21.135 1.786 19.647-1.786 38.102-9.823 52.986-22.623 2.381-2.084 6.251-1.786 8.335.595s1.786 6.251-.595 8.335c-16.67 14.288-37.507 23.219-59.535 25.302-2.381.298-5.06.298-7.74.298zm230.4-455.441H297.675c-6.549 0-11.907 5.358-11.907 11.907v559.628c0 6.549 5.358 11.907 11.907 11.907H750.14c6.549 0 11.907-5.358 11.907-11.907V261.954c0-6.549-5.358-11.907-11.907-11.907zm0 571.534H297.675V261.953H750.14v559.628zM619.163 384h-23.814c-9.823 0-17.86 8.037-17.86 17.86v5.953h-136.93v-5.953c0-9.823-8.037-17.86-17.86-17.86h-23.814c-9.823 0-17.86 8.037-17.86 17.86v23.814c0 9.823 8.037 17.86 17.86 17.86h5.953v136.93h-5.953c-9.823 0-17.86 8.037-17.86 17.86v23.814c0 9.823 8.037 17.86 17.86 17.86h23.814c9.823 0 17.86-8.037 17.86-17.86v-23.814c0-9.823-8.037-17.86-17.86-17.86h-5.953v-136.93h5.953c9.823 0 17.86-8.037 17.86-17.86v-5.953h136.93v5.953c0 9.823 8.037 17.86 17.86 17.86h5.953v95.256h11.907v-95.256h5.953c9.823 0 17.86-8.037 17.86-17.86V401.86c0-9.823-8.037-17.86-17.86-17.86zM422.698 592.372c3.274 0 5.953 2.679 5.953 5.953v23.814c0 3.274-2.679 5.953-5.953 5.953h-23.814c-3.274 0-5.953-2.679-5.953-5.953v-23.814c0-3.274 2.679-5.953 5.953-5.953h23.814zm5.953-166.698c0 3.274-2.679 5.953-5.953 5.953h-23.814c-3.274 0-5.953-2.679-5.953-5.953V401.86c0-3.274 2.679-5.953 5.953-5.953h23.814c3.274 0 5.953 2.679 5.953 5.953v23.814zm196.465 0c0 3.274-2.679 5.953-5.953 5.953h-23.814c-3.274 0-5.953-2.679-5.953-5.953V401.86c0-3.274 2.679-5.953 5.953-5.953h23.814c3.274 0 5.953 2.679 5.953 5.953v23.814z" })));
const Clipboard = (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 1024 1024" },
    react_default.a.createElement("path", { d: "M720.372 239.33H305.116c-8.335 0-14.884 6.549-14.884 14.884v555.758c0 8.335 6.549 14.884 14.884 14.884h415.256c8.335 0 14.884-6.549 14.884-14.884V254.214c0-8.335-6.549-14.884-14.884-14.884zm-88.112 11.907l-16.372 49.414H409.302l-16.372-49.414h239.33zm91.089 558.735c0 1.488-1.488 2.977-2.977 2.977H305.116c-1.488 0-2.977-1.488-2.977-2.977V254.214c0-1.488 1.488-2.977 2.977-2.977h75.609l19.051 57.153c.893 2.381 2.977 4.167 5.656 4.167h215.219c2.679 0 4.763-1.786 5.656-4.167l19.051-57.153h75.014c1.488 0 2.977 1.488 2.977 2.977v555.758zM500.688 606.363c-1.786 0-3.572-.595-4.465-1.786L442.046 550.4c-1.191-1.191-1.786-2.977-1.786-4.465 0-1.786.595-3.274 1.786-4.465s2.679-1.786 4.465-1.786 3.572.595 4.465 1.786l49.712 49.712 104.781-104.781c1.191-1.191 2.977-1.786 4.465-1.786 1.786 0 3.274.595 4.465 1.786s1.786 2.977 1.786 4.465c0 1.786-.595 3.274-1.786 4.465L505.152 604.28c-.893 1.191-2.679 2.084-4.465 2.084z" })));
// TODO - handle default
// case 'default'as in thumbnailForPreset
// return 'CCX_Start_DefaultThumb_Ps_Ai_Id.png';
const iconMap = {
    photo: PresetPhoto,
    europaper: PrintDoc,
    uspaper: PrintDoc,
    video: PresetFilmVideo,
    web: PresetWeb,
    artillustration: ArtAndIllustration,
    clipboard: Clipboard,
    mobile: PresetMobile,
    iconography: PresetMobile,
    print: PrintDoc,
    custom: PresetCustom,
    saved: PresetCustomSavedlocal,
    user: PresetCustomSavedlocal,
    star: SavedPreset,
};

/**
 * Obtains the preset icon depending on the tab in which it's displayed.
 *
 * @param type The tab in which the card is displayed.
 * @returns The icon meant to be displayed inline.
 */
const getPresetIcon = (type) => iconMap[type] || PresetCustom;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-card/AiPresetCardProvider.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var AiPresetCardProvider_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};


let AiPresetCardProvider_AiPresetCardProvider = class AiPresetCardProvider {
    getCardIcon(element) {
        return getPresetIcon(element && element.group);
    }
    shouldIncludeRetroStyle() {
        return true;
    }
};
AiPresetCardProvider_AiPresetCardProvider = AiPresetCardProvider_decorate([
    Object(inversify["injectable"])()
], AiPresetCardProvider_AiPresetCardProvider);
/* harmony default export */ var preset_card_AiPresetCardProvider = (AiPresetCardProvider_AiPresetCardProvider);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/components/icon/Icons.tsx + 158 modules
var Icons = __webpack_require__("ekoL");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/preset-card/PresetCardProvider.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var PresetCardProvider_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};



let PresetCardProvider_PresetCardProvider = class PresetCardProvider {
    getCardIcon(element) {
        const iconName = (element && element.icon) || '';
        const PresetIcon = iconName && Icons["default"][iconName];
        return PresetIcon && react_default.a.createElement(PresetIcon, null);
    }
    shouldIncludeRetroStyle() {
        return false;
    }
};
PresetCardProvider_PresetCardProvider = PresetCardProvider_decorate([
    Object(inversify["injectable"])()
], PresetCardProvider_PresetCardProvider);
/* harmony default export */ var preset_card_PresetCardProvider = (PresetCardProvider_PresetCardProvider);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/types.ts
var types = __webpack_require__("ovpn");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/inversify/inversify.config.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









const iocContainer = new inversify["Container"]();
const hostName = Object(PlatformUtils["d" /* getHostName */])();
const cardProviderMap = {
    [HostNames["a" /* default */].PHOTOSHOP]: preset_card_PresetCardProvider,
    [HostNames["a" /* default */].ILLUSTRATOR]: preset_card_AiPresetCardProvider,
    [HostNames["a" /* default */].INDESIGN]: preset_card_PresetCardProvider,
};
// Presets Controller
const Controller = hostName === HostNames["a" /* default */].PHOTOSHOP ? controllers_PsPresetsController : DroverPresetsController;
const inversify_config_PresetCardProvider = cardProviderMap[hostName] || preset_card_AiPresetCardProvider;
iocContainer.bind(types["a" /* IOC_TYPES */].PresetsControllerInterface).to(Controller).inSingletonScope();
iocContainer
    .bind(types["a" /* IOC_TYPES */].PresetCardProviderInterface)
    .to(inversify_config_PresetCardProvider)
    .inSingletonScope();



/***/ }),

/***/ "KHxb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-ChevronDownSmall"
  }, _react2.default.createElement("path", {
    d: "M4 5.5a.749.749 0 0 0 .531-.22C5.137 4.7 6.5 3.242 7.77 2.041A.75.75 0 1 0 6.709.98L4 3.689 1.291.98A.75.75 0 1 0 .23 2.041L3.469 5.28A.749.749 0 0 0 4 5.5z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M5 7a.749.749 0 0 0 .531-.22L9.77 2.541A.75.75 0 1 0 8.709 1.48L5 5.189 1.291 1.48A.75.75 0 1 0 .23 2.541L4.469 6.78A.749.749 0 0 0 5 7z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'ChevronDownSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "KYvK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M11.136 9.523l-1.496 1.44-5.328-5.24 1.496-1.439 5.328 5.239zm20.665 20.754l-1.496 1.439-5.299-5.334 1.495-1.439 5.3 5.334zM11.057 1.8h2.314v4.629h-2.314zM1.8 11.057h4.629v2.314H1.8zm27.771 11.572H34.2v2.314h-4.629zm-6.942 6.942h2.314V34.2h-2.314zm-4.576-5.863l-5.84 5.878a4.1 4.1 0 1 1-5.8-5.8l5.858-5.858-2.171-2.174-5.861 5.858A7.176 7.176 0 0 0 14.388 31.76l5.842-5.874zm-.141-11.452c2.266-2.256 5.662-5.629 5.81-5.777a4.1 4.1 0 1 1 5.8 5.8c-.516.516-5.856 3.856-7.793 5.793l4.171 2.174 5.8-5.793A7.176 7.176 0 0 0 21.547 4.3l-5.807 5.78z"
}));

/***/ }),

/***/ "LKzl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_on_syntax_1 = __webpack_require__("406g");

var binding_when_syntax_1 = __webpack_require__("z4Hk");

var BindingWhenOnSyntax = function () {
  function BindingWhenOnSyntax(binding) {
    this._binding = binding;
    this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
    this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
  }

  BindingWhenOnSyntax.prototype.when = function (constraint) {
    return this._bindingWhenSyntax.when(constraint);
  };

  BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {
    return this._bindingWhenSyntax.whenTargetNamed(name);
  };

  BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {
    return this._bindingWhenSyntax.whenTargetIsDefault();
  };

  BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenTargetTagged(tag, value);
  };

  BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
    return this._bindingWhenSyntax.whenInjectedInto(parent);
  };

  BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {
    return this._bindingWhenSyntax.whenParentNamed(name);
  };

  BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenParentTagged(tag, value);
  };

  BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
    return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
  };

  BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
    return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
  };

  BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
    return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
  };

  BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
  };

  BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
    return this._bindingWhenSyntax.whenNoAncestorNamed(name);
  };

  BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
    return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
  };

  BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
    return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
  };

  BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
    return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
  };

  BindingWhenOnSyntax.prototype.onActivation = function (handler) {
    return this._bindingOnSyntax.onActivation(handler);
  };

  return BindingWhenOnSyntax;
}();

exports.BindingWhenOnSyntax = BindingWhenOnSyntax;

/***/ }),

/***/ "LgvC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var literal_types_1 = __webpack_require__("FV85");

var id_1 = __webpack_require__("d9O0");

var Binding = function () {
  function Binding(serviceIdentifier, scope) {
    this.id = id_1.id();
    this.activated = false;
    this.serviceIdentifier = serviceIdentifier;
    this.scope = scope;
    this.type = literal_types_1.BindingTypeEnum.Invalid;

    this.constraint = function (request) {
      return true;
    };

    this.implementationType = null;
    this.cache = null;
    this.factory = null;
    this.provider = null;
    this.onActivation = null;
    this.dynamicValue = null;
  }

  Binding.prototype.clone = function () {
    var clone = new Binding(this.serviceIdentifier, this.scope);
    clone.activated = false;
    clone.implementationType = this.implementationType;
    clone.dynamicValue = this.dynamicValue;
    clone.scope = this.scope;
    clone.type = this.type;
    clone.factory = this.factory;
    clone.provider = this.provider;
    clone.constraint = this.constraint;
    clone.onActivation = this.onActivation;
    clone.cache = this.cache;
    return clone;
  };

  return Binding;
}();

exports.Binding = Binding;

/***/ }),

/***/ "MON2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DUPLICATED_INJECTABLE_DECORATOR = "Cannot apply @injectable decorator multiple times.";
exports.DUPLICATED_METADATA = "Metadata key was used more than once in a parameter:";
exports.NULL_ARGUMENT = "NULL argument";
exports.KEY_NOT_FOUND = "Key Not Found";
exports.AMBIGUOUS_MATCH = "Ambiguous match found for serviceIdentifier:";
exports.CANNOT_UNBIND = "Could not unbind serviceIdentifier:";
exports.NOT_REGISTERED = "No matching bindings found for serviceIdentifier:";
exports.MISSING_INJECTABLE_ANNOTATION = "Missing required @injectable annotation in:";
exports.MISSING_INJECT_ANNOTATION = "Missing required @inject or @multiInject annotation in:";

exports.UNDEFINED_INJECT_ANNOTATION = function (name) {
  return "@inject called with undefined this could mean that the class " + name + " has " + "a circular dependency problem. You can use a LazyServiceIdentifer to  " + "overcome this limitation.";
};

exports.CIRCULAR_DEPENDENCY = "Circular dependency found:";
exports.NOT_IMPLEMENTED = "Sorry, this feature is not fully implemented yet.";
exports.INVALID_BINDING_TYPE = "Invalid binding type:";
exports.NO_MORE_SNAPSHOTS_AVAILABLE = "No snapshot available to restore.";
exports.INVALID_MIDDLEWARE_RETURN = "Invalid return type in middleware. Middleware must return!";
exports.INVALID_FUNCTION_BINDING = "Value provided to function binding must be a function!";
exports.INVALID_TO_SELF_VALUE = "The toSelf function can only be applied when a constructor is " + "used as service identifier";
exports.INVALID_DECORATOR_OPERATION = "The @inject @multiInject @tagged and @named decorators " + "must be applied to the parameters of a class constructor or a class property.";

exports.ARGUMENTS_LENGTH_MISMATCH = function () {
  var values = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    values[_i] = arguments[_i];
  }

  return "The number of constructor arguments in the derived class " + (values[0] + " must be >= than the number of constructor arguments of its base class.");
};

exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = "Invalid Container constructor argument. Container options " + "must be an object.";
exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = "Invalid Container option. Default scope must " + "be a string ('singleton' or 'transient').";
exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = "Invalid Container option. Auto bind injectable must " + "be a boolean";
exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = "Invalid Container option. Skip base check must " + "be a boolean";
exports.MULTIPLE_POST_CONSTRUCT_METHODS = "Cannot apply @postConstruct decorator multiple times in the same class";

exports.POST_CONSTRUCT_ERROR = function () {
  var values = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    values[_i] = arguments[_i];
  }

  return "@postConstruct error in class " + values[0] + ": " + values[1];
};

exports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {
  var values = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    values[_i] = arguments[_i];
  }

  return "It looks like there is a circular dependency " + ("in one of the '" + values[0] + "' bindings. Please investigate bindings with") + ("service identifier '" + values[1] + "'.");
};

exports.STACK_OVERFLOW = "Maximum call stack size exceeded";

/***/ }),

/***/ "OTUH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M21 2a12.986 12.986 0 0 0-10.578 20.538L.662 32.3a2.066 2.066 0 0 0 .106 2.934 2.066 2.066 0 0 0 2.934.105l9.76-9.76A13 13 0 1 0 21 2zm0 22a9 9 0 1 1 9-9 9 9 0 0 1-9 9z"
}));

/***/ }),

/***/ "OVtD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PresetCategorySections; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCategoryForPsSection; });
/* harmony import */ var _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cIFk");
/* harmony import */ var _utils_Constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Ai3n");
/* harmony import */ var _hosts_HostIds__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("V9pm");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Mapping of host-specific preset sections to Category Types.
 */
const PresetCategorySections = {
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].PHXS]: {
        'ja-JP': {
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].RECENT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* CLIPBOARD */ "d"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].SAVED]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* USER */ "r"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PHOTO]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* DEFAULT */ "g"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* PHOTO */ "m"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRINT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* EURO_PAPER */ "h"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* US_PAPER */ "s"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].MOBILE]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* MOBILE */ "l"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ICONOGRAPHY */ "k"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].FILM]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* VIDEO */ "t"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].WEB]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* WEB */ "u"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ART]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ART_ILLUSTRATION */ "c"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ALL]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ALL */ "a"]],
        },
        default: {
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].RECENT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* CLIPBOARD */ "d"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].SAVED]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* USER */ "r"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PHOTO]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* DEFAULT */ "g"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* PHOTO */ "m"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRINT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* US_PAPER */ "s"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* EURO_PAPER */ "h"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].MOBILE]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* MOBILE */ "l"], _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ICONOGRAPHY */ "k"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].FILM]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* VIDEO */ "t"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].WEB]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* WEB */ "u"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ART]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ART_ILLUSTRATION */ "c"]],
            [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ALL]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ALL */ "a"]],
        },
    },
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].ILST]: {
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].RECENT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* RECENT */ "o"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].MOBILE]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* MOBILE */ "l"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].WEB]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* WEB */ "u"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRINT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* PRINT */ "n"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].FILM]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* FILM */ "i"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ART]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* ART */ "b"]],
    },
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].IDSN]: {
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].RECENT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* RECENT */ "o"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].SAVED]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* SAVED */ "p"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].MOBILE]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* MOBILE */ "l"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].WEB]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* WEB */ "u"]],
        [_interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRINT]: [_utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* PRINT */ "n"]],
    },
};
/**
 * Given a section that came from the Photoshop host (mobile, video), return the tab in which that preset should be displayed.
 * For example, for iconography this should return mobile.
 *
 * @param section The host-specific section of the preset.
 * @returns The host-specific category that section belongs to.
 */
const getCategoryForPsSection = (section) => {
    if (section) {
        const PsPresetCategorySections = PresetCategorySections[_hosts_HostIds__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].PHXS].default;
        return Object.keys(PsPresetCategorySections).find(category => PsPresetCategorySections[category].find(sectionInCategory => sectionInCategory === section));
    }
    return undefined;
};


/***/ }),

/***/ "OaoV":
/***/ (function(module, exports) {

/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/***/ }),

/***/ "Q5XD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("OTUH"),
      24: __webpack_require__("l7cp")
    }
  }));
};

WrappedIcon.displayName = 'Search';
exports.default = WrappedIcon;

/***/ }),

/***/ "ROBJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cdoHostAPI", function() { return cdoHostAPI; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const cdoHostAPI = () => window.cdoHost;


/***/ }),

/***/ "RR/i":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var traverseAncerstors = function (request, constraint) {
  var parent = request.parentRequest;

  if (parent !== null) {
    return constraint(parent) ? true : traverseAncerstors(parent, constraint);
  } else {
    return false;
  }
};

exports.traverseAncerstors = traverseAncerstors;

var taggedConstraint = function (key) {
  return function (value) {
    var constraint = function (request) {
      return request !== null && request.target !== null && request.target.matchesTag(key)(value);
    };

    constraint.metaData = new metadata_1.Metadata(key, value);
    return constraint;
  };
};

exports.taggedConstraint = taggedConstraint;
var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
exports.namedConstraint = namedConstraint;

var typeConstraint = function (type) {
  return function (request) {
    var binding = null;

    if (request !== null) {
      binding = request.bindings[0];

      if (typeof type === "string") {
        var serviceIdentifier = binding.serviceIdentifier;
        return serviceIdentifier === type;
      } else {
        var constructor = request.bindings[0].implementationType;
        return type === constructor;
      }
    }

    return false;
  };
};

exports.typeConstraint = typeConstraint;

/***/ }),

/***/ "S8y1":
/***/ (function(module) {

module.exports = JSON.parse("[{\"section\":\"artillustration\",\"defaultIcon\":\"IlluArtAndIllu1080p\",\"presets\":[{\"identifier\":\"1000 pixel grid\",\"icon\":\"IlluArtAndIllu1000\"},{\"identifier\":\"2000 pixel grid\",\"icon\":\"IlluArtAndIllu2000\"},{\"identifier\":\"Poster\",\"icon\":\"IlluArtAndIlluPoster\"},{\"identifier\":\"Postcard\",\"icon\":\"IlluArtAndIlluPostcard\"},{\"identifier\":\"1080p\",\"icon\":\"IlluArtAndIllu1080p\"},{\"identifier\":\"720p\",\"icon\":\"IlluArtAndIllu720p\"}]},{\"section\":\"clipboard\",\"defaultIcon\":\"IlluClipboard\",\"presets\":[{\"identifier\":\"Clipboard\",\"icon\":\"IlluClipboard\"}]},{\"section\":\"default\",\"defaultIcon\":\"IlluPhotoDefaultPs\",\"presets\":[{\"identifier\":\"default\",\"icon\":\"IlluPhotoDefaultPs\"}]},{\"section\":\"europaper\",\"defaultIcon\":\"IlluPrintA4\",\"presets\":[{\"identifier\":\"A4\",\"icon\":\"IlluPrintA4\"},{\"identifier\":\"A6\",\"icon\":\"IlluPrintA6\"},{\"identifier\":\"A5\",\"icon\":\"IlluPrintA5\"},{\"identifier\":\"A3\",\"icon\":\"IlluPrintA3\"},{\"identifier\":\"B5\",\"icon\":\"IlluPrintB5\"},{\"identifier\":\"B5 (JIS)\",\"icon\":\"IlluPrintB5\"},{\"identifier\":\"B4\",\"icon\":\"IlluPrintB4\"},{\"identifier\":\"B4 (JIS)\",\"icon\":\"IlluPrintB4\"},{\"identifier\":\"B3\",\"icon\":\"IlluPrintB3\"},{\"identifier\":\"B3 (JIS)\",\"icon\":\"IlluPrintB3\"},{\"identifier\":\"C4\",\"icon\":\"IlluPrintC4\"},{\"identifier\":\"C5\",\"icon\":\"IlluPrintC5\"},{\"identifier\":\"C6\",\"icon\":\"IlluPrintC6\"},{\"identifier\":\"DL\",\"icon\":\"IlluPrintDL\"},{\"identifier\":\"Japanese Post Card\",\"icon\":\"IlluPrintJapanesePostCard\"}]},{\"section\":\"iconography\",\"defaultIcon\":\"IlluMobileIAndroid1080p\",\"presets\":[{\"identifier\":\"iOS 7 iPad App Icon\",\"icon\":\"IlluMobileiOS7iPadAppicon\"},{\"identifier\":\"iOS 7 iPhone App icon\",\"icon\":\"IlluMobileiOS7iPhoneAppicon\"},{\"identifier\":\"iOS 7 Spotlight\",\"icon\":\"IlluMobileiOS7Spotlight\"},{\"identifier\":\"iOS 7 Settings\",\"icon\":\"IlluMobileiOS7Settings\"},{\"identifier\":\"Mac Icon 1024\",\"icon\":\"IlluMobileMacIcon1024\"},{\"identifier\":\"Mac Icon 512\",\"icon\":\"IlluMobileMacIcon512\"},{\"identifier\":\"Mac Icon 256\",\"icon\":\"IlluMobileMacIcon256\"},{\"identifier\":\"Mac Icon 128\",\"icon\":\"IlluMobileMacIcon128\"},{\"identifier\":\"Mac Icon 48\",\"icon\":\"IlluMobileMacIcon48\"},{\"identifier\":\"Mac Icon 32\",\"icon\":\"IlluMobileMacIcon32\"},{\"identifier\":\"Mac Icon 16\",\"icon\":\"IlluMobileMacIcon16\"},{\"identifier\":\"Legacy iPad App Icon\",\"icon\":\"IlluMobileILegacyIPadAppIcon\"},{\"identifier\":\"Legacy iPhone App icon\",\"icon\":\"IlluMobileLegacyiPhoneAppIcon\"},{\"identifier\":\"Legacy iPad Spotlight\",\"icon\":\"IlluMobileLegacyIPadSpotlight\"}]},{\"section\":\"mobile\",\"defaultIcon\":\"IlluMobileIAndroid1080p\",\"presets\":[{\"identifier\":\"iPhone X\",\"icon\":\"IlluMobileIPhoneX\"},{\"identifier\":\"iPhone 8/7/6 Plus\",\"icon\":\"IlluMobileIPhone678Plus\"},{\"identifier\":\"iPhone 8/7/6\",\"icon\":\"IlluMobileIPhone678\"},{\"identifier\":\"iPad Pro 12.9 in\",\"icon\":\"IlluMobileIPadPro12\"},{\"identifier\":\"iPad Pro 10.5 in\",\"icon\":\"IlluMobileIPadPro10\"},{\"identifier\":\"iPad Retina\",\"icon\":\"IlluMobileIPadRetina\"},{\"identifier\":\"Android 1080p\",\"icon\":\"IlluMobileIAndroid1080p\"},{\"identifier\":\"Microsoft Surface Pro 4\",\"icon\":\"IlluMobileMicrosoftSurfacePro4\"},{\"identifier\":\"Microsoft Surface Pro 3\",\"icon\":\"IlluMobileIMicrosoftSurfacePro3\"},{\"identifier\":\"iPhone 5\",\"icon\":\"IlluMobileIPhone5\"},{\"identifier\":\"iPad Mini\",\"icon\":\"IlluMobileIPadMini\"},{\"identifier\":\"Apple Watch 42mm\",\"icon\":\"IlluMobileIAppleWatch42\"},{\"identifier\":\"Apple Watch 38mm\",\"icon\":\"IlluMobileIAppleWatch38\"},{\"identifier\":\"Mobile Design\",\"icon\":\"IlluMobileMobileDesign\"}]},{\"section\":\"photo\",\"defaultIcon\":\"IlluPhotoDefaultPs\",\"presets\":[{\"identifier\":\"L, Portrait\",\"description\":\"89 x 127 mm @ 300 ppi\",\"icon\":\"IlluPhotoLPortrait\"},{\"identifier\":\"2L, Portrait\",\"description\":\"127 x 178 mm @ 300 ppi\",\"icon\":\"IlluPhoto2LPortrait\"},{\"identifier\":\"Mutsugiri, Portrait\",\"description\":\"203 x 254 mm @ 300 ppi\",\"icon\":\"IlluPhotoMutsugiriPortrait\"},{\"identifier\":\"Yotsugiri, Portrait\",\"description\":\"254 x 305 mm @ 300 ppi\",\"icon\":\"IlluPhotoYotsugiriPortrait\"},{\"identifier\":\"L, Landscape\",\"description\":\"127 x 89 mm @ 300 ppi\",\"icon\":\"IlluPhotoLLandscape\"},{\"identifier\":\"2L, Landscape\",\"description\":\"178 x 127 mm @ 300 ppi\",\"icon\":\"IlluPhoto2LLandscape\"},{\"identifier\":\"Mutsugiri, Landscape\",\"description\":\"254 x 203 mm @ 300 ppi\",\"icon\":\"IlluPhotoMutsugiriLandscape\"},{\"identifier\":\"Yotsugiri, Landscape\",\"description\":\"305 x 254 mm @ 300 ppi\",\"icon\":\"IlluPhotoYotsugiriLandscape\"},{\"identifier\":\"Landscape, 3 x 2\",\"icon\":\"IlluPhotoLandscape3x2\"},{\"identifier\":\"Landscape, 2 x 3\",\"icon\":\"IlluPhotoLandscape3x2\"},{\"identifier\":\"Landscape, 6 x 4\",\"icon\":\"IlluPhotoLandscape6x4\"},{\"identifier\":\"Landscape, 4 x 6\",\"icon\":\"IlluPhotoLandscape6x4\"},{\"identifier\":\"Landscape, 8 x 6\",\"icon\":\"IlluPhotoCCKLandscape8x6\"},{\"identifier\":\"Landscape, 6 x 8\",\"icon\":\"IlluPhotoCCKLandscape8x6\"},{\"identifier\":\"Landscape, 7 x 5\",\"icon\":\"IlluPhotoLandscape7x5\"},{\"identifier\":\"Landscape, 5 x 7\",\"icon\":\"IlluPhotoLandscape7x5\"},{\"identifier\":\"Landscape, 10 x 8\",\"icon\":\"IlluPhotoLandscape10x8\"},{\"identifier\":\"Landscape, 8 x 10\",\"icon\":\"IlluPhotoLandscape10x8\"},{\"identifier\":\"Portrait, 2 x 3\",\"icon\":\"IlluPhotoPortrait3x2\"},{\"identifier\":\"Portrait, 3 x 4\",\"icon\":\"IlluPhotoTraditionalChinesePortrait3x4\"},{\"identifier\":\"Portrait, 4 x 6\",\"icon\":\"IlluPhotoPortrait6x4\"},{\"identifier\":\"Portrait, 5 x 7\",\"icon\":\"IlluPhotoPortrait7x5\"},{\"identifier\":\"Portrait, 8 x 10\",\"icon\":\"IlluPhotoPortrait10x8\"}]},{\"section\":\"user\",\"defaultIcon\":\"IlluCustomArtboardLandscapeLarge\",\"presets\":[{\"identifier\":\"\"}]},{\"section\":\"uspaper\",\"defaultIcon\":\"IlluPrintA4\",\"presets\":[{\"identifier\":\"Letter\",\"icon\":\"IlluPrintLetterHalf\"},{\"identifier\":\"Legal\",\"icon\":\"IlluPrintLegalHalf\"},{\"identifier\":\"Tabloid\",\"icon\":\"IlluPrintTabloid\"}]},{\"section\":\"video\",\"defaultIcon\":\"VideoCineonFull\",\"presets\":[{\"identifier\":\"HDTV 1080p\",\"icon\":\"VideoHDTV1920x1080\"},{\"identifier\":\"HDV/HDTV 720p\",\"icon\":\"VideoHDTV1280x720\"},{\"identifier\":\"HDV 1080p\",\"icon\":\"VideoHDV1080p\"},{\"identifier\":\"DVCPRO HD 720p\",\"icon\":\"VideoDVCPROHD720p\"},{\"identifier\":\"DVCPRO HD 1080p\",\"icon\":\"VideoDVCPROHD1080p\"},{\"identifier\":\"DCI 2K 1080p\",\"icon\":\"VideoDCI2K1080p\"},{\"identifier\":\"UHDTV/4K 2160p\",\"icon\":\"IlluVideoHDTV4K2160p\"},{\"identifier\":\"DCI 4K 2160p\",\"icon\":\"VideoDCI4K2160p\"},{\"identifier\":\"FUHDTV/8K 4320p\",\"icon\":\"VideoFUHDTV8K4320p\"},{\"identifier\":\"DCI 8K 4320p\",\"icon\":\"VideoDCI8K4320p\"},{\"identifier\":\"NTSC DV\",\"icon\":\"VideoNTSCDV\"},{\"identifier\":\"NTSC DV Widescreen\",\"icon\":\"VideoNTSCDVWidescreen\"},{\"identifier\":\"NTSC D1\",\"icon\":\"VideoNTSCD1\"},{\"identifier\":\"NTSC D1 Widescreen\",\"icon\":\"VideoNTSCD1Widescreen\"},{\"identifier\":\"NTSC D1 Square Pixel\",\"icon\":\"VideoNTSCD1SquarePixel\"},{\"identifier\":\"NTSC D1 Widescreen Square Pixel\",\"icon\":\"VideoNTSCWidescreen872x480\"},{\"identifier\":\"PAL D1/DV\",\"icon\":\"VideoPALD1DV\"},{\"identifier\":\"PAL D1/DV Widescreen\",\"icon\":\"VideoPALD1DVWidescreen\"},{\"identifier\":\"PAL D1/DV Square Pixel\",\"icon\":\"VideoPALD1DVSquarePixel\"},{\"identifier\":\"PAL D1/DV Widescreen Square Pixel\",\"icon\":\"VideoPALD1DVWidescreenSquarePixel\"},{\"identifier\":\"Cineon Half\",\"icon\":\"VideoCineonHalf\"},{\"identifier\":\"Cineon Full\",\"icon\":\"VideoCineonFull\"},{\"identifier\":\"Film (2K)\",\"icon\":\"VideoFilm2K2048x1556\"},{\"identifier\":\"Film (4K)\",\"icon\":\"VideoFilm4K4096x3112\"},{\"identifier\":\"Film (8K)\",\"icon\":\"VideoFilm8K8192x6224\"}]},{\"section\":\"web\",\"defaultIcon\":\"IlluWebMostCommon\",\"presets\":[{\"identifier\":\"Web Most Common\",\"icon\":\"IlluWebMostCommon\"},{\"identifier\":\"Web Large\",\"icon\":\"IlluWebLarge\"},{\"identifier\":\"Web Medium\",\"icon\":\"IlluWebMedium\"},{\"identifier\":\"Web Minimum\",\"icon\":\"IlluWebMinimum\"},{\"identifier\":\"Web Small\",\"icon\":\"IlluWebSmall\"},{\"identifier\":\"MacBook Pro 13 (Retina)\",\"icon\":\"IlluWebMacBookPro13\"},{\"identifier\":\"MacBook Pro 15 (Retina)\",\"icon\":\"IlluWebMacBookPro15\"},{\"identifier\":\"iMac 27\",\"icon\":\"IlluWebiMac27\"},{\"identifier\":\"Desktop HD Design\",\"icon\":\"IlluWebDesktopHDDesign\"}]},{\"section\":\"artboard\",\"defaultIcon\":\"IlluMobileIAndroid1080p\",\"description\":\"This section doesn't actually appear in the Photoshop UI, but it appears in the PS new doc list. It looks like a mashup of mobile, web and iconography\",\"presets\":[{\"identifier\":\"iPhone X\",\"icon\":\"IlluMobileIPhoneX\"},{\"identifier\":\"iPhone 8/7/6 Plus\",\"icon\":\"IlluMobileIPhone678Plus\"},{\"identifier\":\"iPhone 8/7/6\",\"icon\":\"IlluMobileIPhone678\"},{\"identifier\":\"iPad Pro 12.9 in\",\"icon\":\"IlluMobileIPadPro12\"},{\"identifier\":\"iPad Pro 10.5 in\",\"icon\":\"IlluMobileIPadPro10\"},{\"identifier\":\"iPad Retina\",\"icon\":\"IlluMobileIPadRetina\"},{\"identifier\":\"Android 1080p\",\"icon\":\"IlluMobileIAndroid1080p\"},{\"identifier\":\"Microsoft Surface Pro 4\",\"icon\":\"IlluMobileMicrosoftSurfacePro4\"},{\"identifier\":\"Microsoft Surface Pro 3\",\"icon\":\"IlluMobileIMicrosoftSurfacePro3\"},{\"identifier\":\"iPhone 5\",\"icon\":\"IlluMobileIPhone5\"},{\"identifier\":\"iPad Mini\",\"icon\":\"IlluMobileIPadMini\"},{\"identifier\":\"Apple Watch 42mm\",\"icon\":\"IlluMobileIAppleWatch42\"},{\"identifier\":\"Apple Watch 38mm\",\"icon\":\"IlluMobileIAppleWatch38\"},{\"identifier\":\"Mobile Design\",\"icon\":\"IlluMobileMobileDesign\"},{\"identifier\":\"Web Most Common\",\"icon\":\"IlluWebMostCommon\"},{\"identifier\":\"Web Large\",\"icon\":\"IlluWebLarge\"},{\"identifier\":\"Web Medium\",\"icon\":\"IlluWebMedium\"},{\"identifier\":\"Web Minimum\",\"icon\":\"IlluWebMinimum\"},{\"identifier\":\"Web Small\",\"icon\":\"IlluWebSmall\"},{\"identifier\":\"MacBook Pro 13 (Retina)\",\"icon\":\"IlluWebMacBookPro13\"},{\"identifier\":\"MacBook Pro 15 (Retina)\",\"icon\":\"IlluWebMacBookPro15\"},{\"identifier\":\"iMac 27\",\"icon\":\"IlluWebiMac27\"},{\"identifier\":\"Desktop HD Design\",\"icon\":\"IlluWebDesktopHDDesign\"},{\"identifier\":\"iOS 7 iPad App Icon\",\"icon\":\"IlluMobileiOS7iPadAppicon\"},{\"identifier\":\"iOS 7 iPhone App icon\",\"icon\":\"IlluMobileiOS7iPhoneAppicon\"},{\"identifier\":\"iOS 7 Spotlight\",\"icon\":\"IlluMobileiOS7Spotlight\"},{\"identifier\":\"iOS 7 Settings\",\"icon\":\"IlluMobileiOS7Settings\"},{\"identifier\":\"Mac Icon 1024\",\"icon\":\"IlluMobileMacIcon1024\"},{\"identifier\":\"Mac Icon 512\",\"icon\":\"IlluMobileMacIcon512\"},{\"identifier\":\"Mac Icon 256\",\"icon\":\"IlluMobileMacIcon256\"},{\"identifier\":\"Mac Icon 128\",\"icon\":\"IlluMobileMacIcon128\"},{\"identifier\":\"Mac Icon 48\",\"icon\":\"IlluMobileMacIcon48\"},{\"identifier\":\"Mac Icon 32\",\"icon\":\"IlluMobileMacIcon32\"},{\"identifier\":\"Mac Icon 16\",\"icon\":\"IlluMobileMacIcon16\"},{\"identifier\":\"Legacy iPad App Icon\",\"icon\":\"IlluMobileILegacyIPadAppIcon\"},{\"identifier\":\"Legacy iPhone App icon\",\"icon\":\"IlluMobileLegacyiPhoneAppIcon\"},{\"identifier\":\"Legacy iPad Spotlight\",\"icon\":\"IlluMobileLegacyIPadSpotlight\"}]}]");

/***/ }),

/***/ "SWQv":
/***/ (function(module) {

module.exports = JSON.parse("[{}]");

/***/ }),

/***/ "Sk89":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERRORS_MSGS = __webpack_require__("MON2");

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

function postConstruct() {
  return function (target, propertyKey, descriptor) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);

    if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {
      throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);
    }

    Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);
  };
}

exports.postConstruct = postConstruct;

/***/ }),

/***/ "T9or":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("circle", {
  cx: "18",
  cy: "10",
  r: "4"
}), React.createElement("path", {
  d: "M31 2H5a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zm-1 30h-6v-4a2 2 0 0 0 2-2v-6a4 4 0 0 0-4-4h-8a4 4 0 0 0-4 4v6a2 2 0 0 0 2 2v4H6V4h24z"
}));

/***/ }),

/***/ "TXS8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DeeplinkAction; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DeeplinkAction;
(function (DeeplinkAction) {
    DeeplinkAction["SELECT"] = "select";
    DeeplinkAction["PREVIEW"] = "preview";
    DeeplinkAction["DOWNLOAD"] = "download";
    DeeplinkAction["OPEN"] = "open";
})(DeeplinkAction || (DeeplinkAction = {}));


/***/ }),

/***/ "U05r":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var HostNames;
(function (HostNames) {
    HostNames["INDESIGN"] = "InDesign";
    HostNames["ILLUSTRATOR"] = "Illustrator";
    HostNames["PHOTOSHOP"] = "Photoshop";
    HostNames["BROWSER"] = "Browser";
})(HostNames || (HostNames = {}));
/* harmony default export */ __webpack_exports__["a"] = (HostNames);


/***/ }),

/***/ "V9pm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var HostIds;
(function (HostIds) {
    HostIds["PHXS"] = "PHXS";
    HostIds["ILST"] = "ILST";
    HostIds["IDSN"] = "IDSN";
})(HostIds || (HostIds = {}));
/* harmony default export */ __webpack_exports__["a"] = (HostIds);


/***/ }),

/***/ "VDrw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("aOLx");

/***/ }),

/***/ "VFTl":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return uxpAPI; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const uxpAPI = () => window.require && window.require('uxp');


/***/ }),

/***/ "XLCt":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CUSTOM_ICON_TRESHOLDS_PER_HOST", function() { return CUSTOM_ICON_TRESHOLDS_PER_HOST; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CUSTOM_ICON_TRESHOLDS", function() { return CUSTOM_ICON_TRESHOLDS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CUSTOM_ICON_NAMES", function() { return CUSTOM_ICON_NAMES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPresetIconNameForCustom", function() { return getPresetIconNameForCustom; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPresetIconName", function() { return getPresetIconName; });
/* harmony import */ var _utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5MlJ");
/* harmony import */ var _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Fr31");
/* harmony import */ var _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("U05r");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const hostName = Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_0__[/* getHostName */ "d"])();
const CUSTOM = 'Custom';
const ICON_MAPS = {
    Photoshop: 'icon_mappings_phxs.json',
    InDesign: 'icon_mappings_idsn.json',
};
const iconMapPath = ICON_MAPS[hostName] || ICON_MAPS.Photoshop;
// eslint-disable-next-line @typescript-eslint/no-var-requires
const IconMappings = __webpack_require__("qAiR")(`./${iconMapPath}`);
const CUSTOM_ICON_TRESHOLDS_PER_HOST = {
    Photoshop: {
        LANDSCAPE: {
            SMALL: 1200,
            MEDIUM: 2400,
        },
        SQUARE: {
            SMALL: 800,
            MEDIUM: 1200,
        },
        PORTRAIT: {
            SMALL: 1600,
            MEDIUM: 3300,
        },
    },
    InDesign: {
        LANDSCAPE: {
            SMALL: 1200,
            MEDIUM: 3181,
        },
        SQUARE: {
            SMALL: 2019,
            MEDIUM: 6712,
        },
        PORTRAIT: {
            SMALL: 3181,
            MEDIUM: 9524,
        },
    },
};
// get the custom thresholds depending on the host
const CUSTOM_ICON_TRESHOLDS = CUSTOM_ICON_TRESHOLDS_PER_HOST[hostName] || CUSTOM_ICON_TRESHOLDS_PER_HOST.Photoshop;
const CUSTOM_ICON_NAMES = {
    SQUARE_SMALL: 'IlluCustomArtboardSquareSmall',
    SQUARE_MEDIUM: 'IlluCustomArtboardSquareMedium',
    SQUARE_LARGE: 'IlluCustomArtboardSquareLarge',
    LANDSCAPE_SMALL: 'IlluCustomArtboardLandscapeSmall',
    LANDSCAPE_MEDIUM: 'IlluCustomArtboardLandscapeMedium',
    LANDSCAPE_LARGE: 'IlluCustomArtboardLandscapeLarge',
    PORTRAIT_SMALL: 'IlluCustomArtboardPortraitSmall',
    PORTRAIT_MEDIUM: 'IlluCustomArtboardPortraitMedium',
    PORTRAIT_LARGE: 'IlluCustomArtboardPortraitLarge',
};
// InDesign specific. If we need these for another host, turn this into a map
const DEFAULT_ICON_NAME = 'IlluPrintIndesignDefault';
const DEFAULT_PRESET_IDENTIFIER = 'kPrSt_DefaultName';
/**
 * From a preset dimension field, which can be number, string or undefined, return a number.
 *
 * @param value
 */
function getDimensionValue(value) {
    if (!value) {
        return 0;
    }
    if (typeof value === 'number') {
        return value;
    }
    let parsedValue = 0;
    try {
        parsedValue = Number.parseFloat(value);
    }
    catch (error) {
        // do nothing, use 0
    }
    return parsedValue;
}
/**
 * Returns the icon to be used in case of a custom preset.
 *
 * @param presetToFind The preset for which we're trying to find an icon.
 * @returns The name of the preset icon to use for Custom.
 */
function getPresetIconNameForCustom(presetToFind) {
    const width = getDimensionValue(presetToFind.width);
    const height = getDimensionValue(presetToFind.height);
    // convert the preset dimensions to pixels, so that we can compare the dimensions to our thresholds
    const widthInPixels = presetToFind.units
        ? Object(_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* convert */ "r"])(width, _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][presetToFind.units], _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PIXELS], presetToFind)
        : width;
    const heightInPixels = presetToFind.units
        ? Object(_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* convert */ "r"])(height, _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][presetToFind.units], _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PIXELS], presetToFind)
        : height;
    let icon = undefined;
    if (widthInPixels === heightInPixels) {
        // square
        const thresholds = CUSTOM_ICON_TRESHOLDS.SQUARE;
        if (widthInPixels <= thresholds.SMALL) {
            icon = CUSTOM_ICON_NAMES.SQUARE_SMALL;
        }
        else if (widthInPixels <= thresholds.MEDIUM) {
            icon = CUSTOM_ICON_NAMES.SQUARE_MEDIUM;
        }
        else {
            icon = CUSTOM_ICON_NAMES.SQUARE_LARGE;
        }
    }
    else if (widthInPixels > heightInPixels) {
        // landscape
        const thresholds = CUSTOM_ICON_TRESHOLDS.LANDSCAPE;
        if (widthInPixels <= thresholds.SMALL) {
            icon = CUSTOM_ICON_NAMES.LANDSCAPE_SMALL;
        }
        else if (widthInPixels <= thresholds.MEDIUM) {
            icon = CUSTOM_ICON_NAMES.LANDSCAPE_MEDIUM;
        }
        else {
            icon = CUSTOM_ICON_NAMES.LANDSCAPE_LARGE;
        }
    }
    else {
        // portrait
        const thresholds = CUSTOM_ICON_TRESHOLDS.PORTRAIT;
        if (heightInPixels <= thresholds.SMALL) {
            icon = CUSTOM_ICON_NAMES.PORTRAIT_SMALL;
        }
        else if (heightInPixels <= thresholds.MEDIUM) {
            icon = CUSTOM_ICON_NAMES.PORTRAIT_MEDIUM;
        }
        else {
            icon = CUSTOM_ICON_NAMES.PORTRAIT_LARGE;
        }
    }
    return icon;
}
/**
 * Determines if the current preset is a custom preset, depending on the host.
 *
 * @param presetToFind Preset for which we want to determine whether it's custom.
 */
function isCustomPreset(presetToFind) {
    if (!presetToFind) {
        return false;
    }
    const iconIdentifier = (presetToFind.iconIdentifier && presetToFind.iconIdentifier.toString()) || '';
    switch (hostName) {
        case _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].PHOTOSHOP:
            // The group conditions work in Photoshop.
            return !presetToFind.group || presetToFind.group === 'user';
        case _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].INDESIGN:
            // The category and identifier checks are for ID, for the Saved tab and the custom presets in Recent
            return ((presetToFind.category === 'saved' && !iconIdentifier.startsWith(DEFAULT_PRESET_IDENTIFIER)) ||
                iconIdentifier.startsWith(CUSTOM));
    }
    return false;
}
/**
 * Determines if the current preset is a custom preset, depending on the host.
 *
 * @param presetToFind Preset for which we want to determine whether it's custom.
 */
function isDefaultPreset(presetToFind) {
    if (!presetToFind) {
        return false;
    }
    const iconIdentifier = (presetToFind.iconIdentifier && presetToFind.iconIdentifier.toString()) || '';
    switch (hostName) {
        case _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].PHOTOSHOP:
            return false;
        case _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].INDESIGN:
            return iconIdentifier.startsWith(DEFAULT_PRESET_IDENTIFIER);
    }
    return false;
}
/**
 * Returns the icon name for the current preset. It uses the width, height and group of the preset
 * to identify the matching icon, because we don't have a preset ID coming in from the host.
 * Also, the name of the preset changes depending on the language, so that's not reliable for unique identification either.
 *
 * @param presetToFind The preset for which we're trying to find an icon.
 * @param otherPresetsInCategory An array containing the presets in the same category as presetToFind.
 * @returns The icon name for the current preset.
 */
function getPresetIconName(presetToFind, otherPresetsInCategory) {
    if (!presetToFind) {
        return '';
    }
    if (isCustomPreset(presetToFind)) {
        return getPresetIconNameForCustom(presetToFind);
    }
    if (isDefaultPreset(presetToFind)) {
        return DEFAULT_ICON_NAME;
    }
    const sectionMap = IconMappings.find(section => section.section === presetToFind.group);
    if (sectionMap) {
        if (presetToFind.iconIdentifier) {
            const matchingPreset = sectionMap.presets.find(preset => preset.identifier === presetToFind.iconIdentifier);
            if (matchingPreset && matchingPreset.icon) {
                return matchingPreset.icon;
            }
        }
        // If the preset doesn't have an identifier, but has a name, look for that in the section map.
        // This will work for presets in Recent that were first opened in English, then in a different language.
        if (presetToFind.name) {
            const matchingPreset = sectionMap.presets.find(preset => preset.identifier === presetToFind.name);
            if (matchingPreset && matchingPreset.icon) {
                return matchingPreset.icon;
            }
        }
    }
    // If the identifier and name mapping failed, we'll try to find the icon in the other tabs.
    // The presets from Recent that were opened by older versions of PS won't have the identifier, but they should have a category
    if (otherPresetsInCategory) {
        const matchingPreset = otherPresetsInCategory.find(preset => preset.name === presetToFind.name);
        if (matchingPreset && matchingPreset.icon) {
            return matchingPreset.icon;
        }
    }
    // if nothing worked until now, return the section default
    return sectionMap && sectionMap.defaultIcon;
}


/***/ }),

/***/ "Xug+":
/***/ (function(module) {

module.exports = JSON.parse("[{\"section\":\"mobile\",\"defaultIcon\":\"IlluMobileAndroid720x1280\",\"presets\":[{\"description\":\"595.276 x 841.89 px\",\"title\":\"A4\",\"identifier\":\"A4mobile\",\"icon\":\"IlluMobileA4\"},{\"description\":\"1024 x 600 px\",\"title\":\"Kindle Fire/Nook\",\"identifier\":\"Fire/Nookmobile\",\"icon\":\"IlluMobileKindleFireNook\"},{\"description\":\"1440 x 2560 px\",\"title\":\"Google Pixel XL/Samsung S7\",\"identifier\":\"Google Pixel XLmobile\",\"icon\":\"IlluMobileGooglePixelXLPixel2XL\"},{\"description\":\"1080 x 1920 px\",\"title\":\"Google Pixel/Pixel 2\",\"identifier\":\"Google Pixelmobile\",\"icon\":\"IlluMobileGooglePixel2\"},{\"description\":\"612 x 792 px\",\"title\":\"Letter\",\"identifier\":\"Lettermobile\",\"icon\":\"IlluMobileLetter\"},{\"description\":\"1440 x 2960 px\",\"title\":\"Samsung S8\",\"identifier\":\"Samsung S8mobile\",\"icon\":\"IlluMobileSamsungGalaxyS8\"},{\"description\":\"2160 x 1440 px\",\"title\":\"Microsoft Surface Pro 3\",\"identifier\":\"Windows Surface Pro 3mobile\",\"icon\":\"IlluMobileIMicrosoftSurfacePro3\"},{\"description\":\"2736 x 1824 px\",\"title\":\"Microsoft Surface Pro 4\",\"identifier\":\"Windows Surface Pro 4mobile\",\"icon\":\"IlluMobileMicrosoftSurfacePro4\"},{\"description\":\"720 x 1280 px\",\"title\":\"Android (720 x 1280)\",\"identifier\":\"Xoommobile\",\"icon\":\"IlluMobileAndroid720x1280\"},{\"description\":\"2224 x 1668 px\",\"title\":\"iPad Pro (10.5 in)\",\"identifier\":\"iPad Pro(10.5)mobile\",\"icon\":\"IlluMobileIPadPro10\"},{\"description\":\"2732 x 2048 px\",\"title\":\"iPad Pro (12.9 in)\",\"identifier\":\"iPad Pro(12.9)mobile\",\"icon\":\"IlluMobileIPadPro12\"},{\"description\":\"2048 x 1536 px\",\"title\":\"iPad Retina\",\"identifier\":\"iPad Retinamobile\",\"icon\":\"IlluMobileIPadRetina\"},{\"description\":\"1024 x 768 px\",\"title\":\"iPad\",\"identifier\":\"iPadmobile\",\"icon\":\"IlluMobileIPad\"},{\"description\":\"1242 x 2208 px\",\"title\":\"iPhone 8/7/6 Plus\",\"identifier\":\"iPhone 8/7/6 Plusmobile\",\"icon\":\"IlluMobileIPhone678Plus\"},{\"description\":\"750 x 1334 px\",\"title\":\"iPhone 8/7/6\",\"identifier\":\"iPhone 8/7/6mobile\",\"icon\":\"IlluMobileIPhone678\"},{\"description\":\"1125 x 2436 px\",\"title\":\"iPhone X\",\"identifier\":\"iPhone Xmobile\",\"icon\":\"IlluMobileIPhoneX\"}]},{\"section\":\"web\",\"defaultIcon\":\"IlluWebMostCommon\",\"presets\":[{\"description\":\"1024 x 768 px\",\"title\":\"1024 x 768\",\"identifier\":\"1024 x 768web\",\"icon\":\"IlluWebSmall\"},{\"description\":\"1240 x 620 px\",\"title\":\"1240 x 620\",\"identifier\":\"1240 x 620web\",\"icon\":\"IlluWeb1240x620\"},{\"description\":\"1280 x 800 px\",\"title\":\"1280 x 800\",\"identifier\":\"1280 x 800web\",\"icon\":\"IlluWebMedium\"},{\"description\":\"1366 x 768 px\",\"title\":\"1366 x 768\",\"identifier\":\"1366 x 768web\",\"icon\":\"IlluWebMostCommon\"},{\"description\":\"600 x 300 px\",\"title\":\"600 x 300\",\"identifier\":\"600 x 300web\",\"icon\":\"IlluWeb600x300\"},{\"description\":\"640 x 480 px\",\"title\":\"640 x 480\",\"identifier\":\"640 x 480web\",\"icon\":\"IlluWeb640x480\"},{\"description\":\"760 x 420 px\",\"title\":\"760 x 420\",\"identifier\":\"760 x 420web\",\"icon\":\"IlluWeb760x420\"},{\"description\":\"800 x 600 px\",\"title\":\"800 x 600\",\"identifier\":\"800 x 600web\",\"icon\":\"IlluWeb800x600\"},{\"description\":\"984 x 588 px\",\"title\":\"984 x 588\",\"identifier\":\"984 x 588web\",\"icon\":\"IlluWeb984x588\"},{\"description\":\"595.276 x 841.89 px\",\"title\":\"A4\",\"identifier\":\"A4web\",\"icon\":\"IlluWebA4\"},{\"description\":\"612 x 792 px\",\"title\":\"Letter\",\"identifier\":\"Letterweb\",\"icon\":\"IlluWebLetter\"}]},{\"section\":\"print\",\"defaultIcon\":\"IlluPrintIndesignA4\",\"presets\":[{\"description\":\"70p1.89 x 99p2.551\",\"title\":\"A3\",\"identifier\":\"A3print\",\"icon\":\"IlluPrintIndesignA3\"},{\"description\":\"49p7.276 x 70p1.89\",\"title\":\"A4\",\"identifier\":\"A4print\",\"icon\":\"IlluPrintIndesignA4\"},{\"description\":\"34p11.528 x 49p7.276\",\"title\":\"A5\",\"identifier\":\"A5print\",\"icon\":\"IlluPrintIndesignA5\"},{\"description\":\"41p6.898 x 59p0.661\",\"title\":\"B5\",\"identifier\":\"B5print\",\"icon\":\"IlluPrintIndesignB5\"},{\"description\":\"28p4.157 x 28p4.157\",\"title\":\"Compact Disc\",\"identifier\":\"Compact Discprint\",\"icon\":\"IlluPrintCompactDisc\"},{\"description\":\"42p0 x 51p0\",\"title\":\"Legal - Half\",\"identifier\":\"Legal - Halfprint\",\"icon\":\"IlluPrintLegalHalf\"},{\"description\":\"51p0 x 84p0\",\"title\":\"Legal\",\"identifier\":\"Legalprint\",\"icon\":\"IlluPrintLegal\"},{\"description\":\"33p0 x 51p0\",\"title\":\"Letter - Half\",\"identifier\":\"Letter - Halfprint\",\"icon\":\"IlluPrintLetterHalf\"},{\"description\":\"51p0 x 66p0\",\"title\":\"Letter\",\"identifier\":\"Letterprint\",\"icon\":\"IlluPrintLetter\"},{\"description\":\"66p0 x 102p0\",\"title\":\"Tabloid\",\"identifier\":\"Tabloidprint\",\"icon\":\"IlluPrintTabloid\"},{\"description\":\"21p0 x 12p0\",\"title\":\"US Business Card\",\"identifier\":\"US Business Cardprint\",\"icon\":\"IlluPrintBusinesscard\"},{\"description\":\"209 x 297 mm\",\"title\":\"209 mm x 297 mm (見開き)\",\"identifier\":\"209mm x 297mm (Gatefold)print\",\"icon\":\"IlluPrintIndesign209x297GatefoldPrin\"},{\"description\":\"232 x 297 mm\",\"title\":\"232 mm x 297 mm\",\"identifier\":\"232mm x 297mmprint\",\"icon\":\"IlluPrintIndesign232x297print\"},{\"description\":\"841 x 1189 mm\",\"title\":\"A0\",\"identifier\":\"A0print\",\"icon\":\"IlluPrintIndesignA0\"},{\"description\":\"594 x 841 mm\",\"title\":\"A1\",\"identifier\":\"A1print\",\"icon\":\"IlluPrintIndesignA1\"},{\"description\":\"420 x 594 mm\",\"title\":\"A2\",\"identifier\":\"A2print\",\"icon\":\"IlluPrintIndesignA2\"},{\"description\":\"210 x 257 mm\",\"title\":\"AB 判\",\"identifier\":\"ABprint\",\"icon\":\"IlluPrintIndesignABprint\"},{\"description\":\"1030 x 1456 mm\",\"title\":\"B0\",\"identifier\":\"B0JISprint\",\"icon\":\"IlluPrintIndesignB0\"},{\"description\":\"728 x 1030 mm\",\"title\":\"B1\",\"identifier\":\"B1JISprint\",\"icon\":\"IlluPrintIndesignB1\"},{\"description\":\"515 x 728 mm\",\"title\":\"B2\",\"identifier\":\"B2JISprint\",\"icon\":\"IlluPrintIndesignB2\"},{\"description\":\"364 x 515 mm\",\"title\":\"B3\",\"identifier\":\"B3JISprint\",\"icon\":\"IlluPrintIndesignB3\"},{\"description\":\"257 x 364 mm\",\"title\":\"B4\",\"identifier\":\"B4JISprint\",\"icon\":\"IlluPrintIndesignB4\"},{\"description\":\"41p6.898 x 59p0.661\",\"title\":\"B5\",\"identifier\":\"B5JISprint\",\"icon\":\"IlluPrintIndesignB5\"},{\"description\":\"128 x 182 mm\",\"title\":\"B6\",\"identifier\":\"B6JISprint\",\"icon\":\"IlluPrintIndesignB6\"},{\"description\":\"85 x 49 mm\",\"title\":\"名刺 3 号\",\"identifier\":\"Business Card 3 goprint\",\"icon\":\"IlluPrintIndesignBusinessCard3goprint\"},{\"description\":\"91 x 55 mm\",\"title\":\"名刺 4 号\",\"identifier\":\"Business Card 4 goprint\",\"icon\":\"IlluPrintIndesignBusinessCard4goprint\"},{\"description\":\"120 x 120 mm\",\"title\":\"CD ジャケット\",\"identifier\":\"CD Jacketprint\",\"icon\":\"IlluPrintIndesign120x120CDJacketprint\"},{\"description\":\"100 x 148 mm\",\"title\":\"はがき\",\"identifier\":\"Hagakiprint\",\"icon\":\"IlluPrintIndesignHagakiprint\"},{\"description\":\"103 x 182 mm\",\"title\":\"新書\",\"identifier\":\"Shinshoprint\",\"icon\":\"IlluPrintIndesignShinshoprint\"},{\"description\":\"128 x 188 mm\",\"title\":\"四六判\",\"identifier\":\"Shirokubanprint\",\"icon\":\"IlluPrintIndesignShirokubanprint\"}]}]");

/***/ }),

/***/ "YXYy":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ RasterEffectsValues; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ColorModesValues; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ PreviewModeValues; });

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ColorModeModel.ts
var ColorModeModel = __webpack_require__("u948");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/UnitsUtils.ts
var UnitsUtils = __webpack_require__("Fr31");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts + 1 modules
var MathUtils = __webpack_require__("AGvf");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/AppSpecificKeyModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const AppSpecificKeyModel = mobx_state_tree_module["h" /* types */]
    .model('AppSpecificKeyModel', {
    artboardLayout: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0.0),
    artboardRowsOrCols: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1.0),
    artboardSpacing: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 20.0),
    bleedOffset: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].number), [0.0, 0.0, 0.0, 0.0]),
    customFile: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    documentType: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1.0),
    gridColor1: mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].number),
    gridColor2: mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].number),
    height: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    isATPG: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'false'),
    isArtboardLayoutLeftToRight: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'true'),
    lockBleed: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, true),
    mode: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'CMYK'),
    numArtboards: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1.0),
    pixelAspectRatio: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1.0),
    ppi: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 72.0),
    previewMode: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 128.0),
    rasterEffectSettings: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 300.0),
    settingsFile: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    transparencyGrid: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    width: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    minBleedPixels: 0,
    maxBleedPixels: 1728,
    maxDocScale: 10.0,
})
    .actions(self => ({
    updateLock: value => {
        self.lockBleed = value;
    },
    updateValues: values => {
        self.bleedOffset = values;
    },
    updateRaster: values => {
        self.rasterEffectSettings = values;
    },
    updatePreview: values => {
        self.previewMode = values;
    },
}));
/* harmony default export */ var models_AppSpecificKeyModel = (AppSpecificKeyModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DocumentTemplateModel.ts
var DocumentTemplateModel = __webpack_require__("CQbc");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostNames.ts
var HostNames = __webpack_require__("U05r");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/RasterEffectsModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const RasterEffectsModel = mobx_state_tree_module["h" /* types */].model({
    mode: mobx_state_tree_module["h" /* types */].string,
    value: mobx_state_tree_module["h" /* types */].number,
});
/* harmony default export */ var models_RasterEffectsModel = (RasterEffectsModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/PreviewModeModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const PreviewModeModel = mobx_state_tree_module["h" /* types */].model({
    mode: mobx_state_tree_module["h" /* types */].string,
    value: mobx_state_tree_module["h" /* types */].number,
});
/* harmony default export */ var models_PreviewModeModel = (PreviewModeModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/PreviewModel.ts
var PreviewModel = __webpack_require__("tIky");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/UnitInfoModel.ts
var UnitInfoModel = __webpack_require__("jEX6");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/IllustratorPresetModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* eslint-disable @typescript-eslint/naming-convention */













var RasterEffectsValues;
(function (RasterEffectsValues) {
    RasterEffectsValues[RasterEffectsValues["High"] = 300] = "High";
    RasterEffectsValues[RasterEffectsValues["Medium"] = 150] = "Medium";
    RasterEffectsValues[RasterEffectsValues["Screen"] = 72] = "Screen";
    RasterEffectsValues[RasterEffectsValues["LargeCanvas"] = 36] = "LargeCanvas";
})(RasterEffectsValues || (RasterEffectsValues = {}));
const ColorModesValues = {
    RGB: [8, 16, 32],
    CMYK: [8, 16],
};
var PreviewModeValues;
(function (PreviewModeValues) {
    PreviewModeValues[PreviewModeValues["Default"] = 128] = "Default";
    PreviewModeValues[PreviewModeValues["Pixel"] = 64] = "Pixel";
    PreviewModeValues[PreviewModeValues["Overprint"] = 256] = "Overprint";
})(PreviewModeValues || (PreviewModeValues = {}));
const UnprocessedIllustratorPresetModel = mobx_state_tree_module["h" /* types */]
    .model('IllustratorPresetModel', {
    ...DocumentTemplateModel["b" /* Model */],
    maxDocWidth: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 300000),
    maxDocHeight: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 300000),
    minDocWidth: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
    minDocHeight: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
    maxDocScale: 1.0,
    colorModes: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(ColorModeModel["a" /* default */]), [
        {
            mode: 'RGB',
            values: ColorModesValues.RGB,
        },
        {
            mode: 'CMYK',
            values: ColorModesValues.CMYK,
        },
    ]),
    // @todo: if this is static, it can be an enum
    rasterEffects: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(models_RasterEffectsModel), [
        {
            mode: 'High',
            value: RasterEffectsValues.High,
        },
        {
            mode: 'Medium',
            value: RasterEffectsValues.Medium,
        },
        {
            mode: 'Screen',
            value: RasterEffectsValues.Screen,
        },
        {
            mode: 'LargeCanvas',
            value: RasterEffectsValues.LargeCanvas,
        },
    ]),
    // @todo: if this is static, it can be an enum
    previewModes: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(models_PreviewModeModel), [
        {
            mode: 'Default',
            value: PreviewModeValues.Default,
        },
        {
            mode: 'Pixel',
            value: PreviewModeValues.Pixel,
        },
        {
            mode: 'Overprint',
            value: PreviewModeValues.Overprint,
        },
    ]),
    artboardSpacing: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    isPreset: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'true'),
    mode: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    // we need to keep the initial value of the color mode so that we know when to display a warning
    initialColorModeValue: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    colorModeWarning: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    numArtboards: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
    template_category: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].enumeration(Object.values(DocumentTemplateCategoryTypes["a" /* default */]))),
    thumbnail_url: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    // @todo: do I need these? This are used by UnitUtils to do conversions, but it might not be required
    pointsPerInch: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 72),
    picasPerInch: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 6),
    lastOpened: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    appSpecificKey: mobx_state_tree_module["h" /* types */].optional(models_AppSpecificKeyModel, {}),
    kind: DocumentTemplateKind["a" /* default */].PRESET,
    userLocaleDecimal: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string), '.'),
    mime_type: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, 'image/illustrator'),
    minArtboards: 1,
    maxArtboards: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 100),
    // the host gives this list in the "units" field, but we use unitList to avoid confusion
    unitList: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string), [
        UnitsUtils["p" /* UnitId */].POINTS,
        UnitsUtils["p" /* UnitId */].PICAS,
        UnitsUtils["p" /* UnitId */].INCHES,
        UnitsUtils["p" /* UnitId */].MILLIMETERS,
        UnitsUtils["p" /* UnitId */].CENTIMETERS,
        UnitsUtils["p" /* UnitId */].PIXELS,
    ]),
    // these aren't used directly by the UI, but we need to keep them in order to rebuild the object before we open it in AI
    id: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    previews: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].array(PreviewModel["a" /* default */])),
    price_prompt: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    tip: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    title: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    unitInfo: mobx_state_tree_module["h" /* types */].maybe(UnitInfoModel["a" /* UnitInfoModel */]),
    previousRasterEffects: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    fittingIsValid: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, true),
    artboardExceedsCanvas: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
})
    .volatile(self => ({
    host: HostNames["a" /* default */].ILLUSTRATOR,
}))
    .views(DocumentTemplateModel["d" /* Views */])
    .views(self => ({
    get bleedValues() {
        return self.appSpecificKey.bleedOffset;
    },
    get lockBleed() {
        return self.appSpecificKey.lockBleed;
    },
}))
    .views(self => ({
    get docStep() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["h" /* IllustratorStepValues */][self.units];
    },
    get slowStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["f" /* IllustratorSecondaryStepMultiplier */][self.units];
    },
    get fastStepMultiplier() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["g" /* IllustratorShiftStepMultiplier */][self.units];
    },
    get displayMaxDocWidth() {
        if (!self.units) {
            return self.maxDocWidth;
        }
        return Object(UnitsUtils["r" /* convert */])(self.maxDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMaxDocHeight() {
        if (!self.units) {
            return self.maxDocHeight;
        }
        return Object(UnitsUtils["r" /* convert */])(self.maxDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMinDocWidth() {
        if (!self.units) {
            return self.minDocWidth;
        }
        return Object(UnitsUtils["r" /* convert */])(self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get displayMinDocHeight() {
        if (!self.units) {
            return self.minDocHeight;
        }
        return Object(UnitsUtils["r" /* convert */])(self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get minBleed() {
        if (!self.units) {
            return self.appSpecificKey.minBleedPixels;
        }
        return Object(UnitsUtils["r" /* convert */])(self.appSpecificKey.minBleedPixels, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get maxBleed() {
        if (!self.units) {
            return self.appSpecificKey.maxBleedPixels;
        }
        return Object(UnitsUtils["r" /* convert */])(self.appSpecificKey.maxBleedPixels, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][self.units], self);
    },
    get stepBleed() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["d" /* BleedStepValues */][self.units] || 1;
    },
    get shiftMultiplierBleed() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["c" /* BleedShiftStepMultiplier */][self.units] || 1;
    },
    get shiftMultiplierArtboards() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["a" /* ArtboardsShiftStepMultiplier */][self.units] || 1;
    },
    get secondaryMultiplierBleed() {
        if (!self.units) {
            return 1;
        }
        return UnitsUtils["b" /* BleedSecondaryStepMultiplier */][self.units] || 1;
    },
    get orientation() {
        if (typeof self.height === 'undefined' || typeof self.width === 'undefined') {
            return undefined; // should default from default settings
        }
        return self.height >= self.width ? DocumentTemplateModel["c" /* Orientation */].PORTRAIT : DocumentTemplateModel["c" /* Orientation */].LANDSCAPE;
    },
    get artboardLayout() {
        return self.appSpecificKey.artboardLayout || 0;
    },
}))
    .actions(self => ({
    updateDimensionUnit(newUnit) {
        if (!self.units) {
            return;
        }
        self.width = Object(UnitsUtils["r" /* convert */])(self.width || self.minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        self.height = Object(UnitsUtils["r" /* convert */])(self.height || self.minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][self.units], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
        const oldUnits = self.units;
        // This will trigger the update of the display options
        self.units = newUnit;
        // it is possible that conversion loses some precision, so cap values to [min, max] as
        // the value can get out of the interval at the edges when converting from unit to unit
        self.width = Math.min(Math.max(self.width, self.displayMinDocWidth), self.displayMaxDocWidth);
        self.height = Math.min(Math.max(self.height, self.displayMinDocHeight), self.displayMaxDocHeight);
        // updateBleed will also update the fitting
        this.updateBleedValues(self.appSpecificKey.bleedOffset.map(v => {
            const value = Object(UnitsUtils["r" /* convert */])(v || 0, UnitsUtils["q" /* UnitIdToMeasurement */][oldUnits], UnitsUtils["q" /* UnitIdToMeasurement */][newUnit], self);
            return Math.min(Math.max(value, self.minBleed), self.maxBleed);
        }));
    },
    updateNumericValue(property, value) {
        const currentValue = typeof value === 'undefined' ? NaN : value;
        self[property] = typeof currentValue === 'string' ? parseFloat(currentValue) : currentValue;
        this.updateFittingIsValid();
    },
    updateWidth(value) {
        this.updateNumericValue('width', value);
    },
    updateHeight(value) {
        this.updateNumericValue('height', value);
    },
    updateBleedValues(values) {
        self.appSpecificKey.updateValues(values);
        this.updateFittingIsValid();
    },
    updateBleedLock(value) {
        self.appSpecificKey.updateLock(value);
    },
    updateArtboards(value) {
        value =
            self.maxArtboards && self.minArtboards && Object(MathUtils["b" /* constrainToRange */])(value, self.minArtboards, self.maxArtboards);
        this.updateNumericValue('numArtboards', value);
    },
    toggleOrientation(value) {
        if (value !== self.orientation) {
            const oldWidth = self.width;
            self.width = self.height;
            self.height = oldWidth;
        }
        this.updateFittingIsValid();
    },
    updateColorMode(colorMode) {
        self.mode = colorMode;
    },
    // don't compute the fitting here, otherwise we end up with an infinite update loop
    updateRasterEffects(rasterEffects) {
        self.appSpecificKey.updateRaster(rasterEffects);
    },
    updatePreviewModes(previewModes) {
        self.appSpecificKey.updatePreview(previewModes);
    },
    updateAndCacheRasterEffects() {
        if (self.artboardExceedsCanvas) {
            self.previousRasterEffects = self.appSpecificKey.rasterEffectSettings;
            this.updateRasterEffects(RasterEffectsValues.LargeCanvas);
        }
        else {
            // if we went from a state where the fitting wasn't valid and we'd reverted to 36 PPI,
            // we can use the cached value to reset the raster effects, if different than 36 PPI
            let newRasterEffects;
            // if we have an already saved value, and it's not 36 PPI use that
            if (self.previousRasterEffects && self.previousRasterEffects !== RasterEffectsValues.LargeCanvas) {
                newRasterEffects = self.previousRasterEffects;
            }
            else {
                // otherwise, use a default depending on the color mode
                newRasterEffects = self.mode === 'CMYK' ? RasterEffectsValues.High : RasterEffectsValues.Screen;
            }
            this.updateRasterEffects(newRasterEffects);
        }
    },
    /**
     * This method checks whether the selected settings fit in a normal canvas,
     * need to be displayed in a large canvas or don't fit at all.
     *
     * @param shouldUpdateRasterEffects
     */
    updateFittingIsValid(shouldUpdateRasterEffects = true) {
        if (!self.units || !self.width || !self.height) {
            return;
        }
        // validateFitting CEP method
        const [leftBleed, topBleed, rightBleed, bottomBleed] = self.bleedValues;
        const artboardCount = self.numArtboards || 0;
        const unit = self.units ? self.units : UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS];
        const widthInPoints = Object(UnitsUtils["r" /* convert */])(self.displayWidth, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const heightInPoints = Object(UnitsUtils["r" /* convert */])(self.displayHeight, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const topBleedInPoints = Object(UnitsUtils["r" /* convert */])(topBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const bottomBleedInPoints = Object(UnitsUtils["r" /* convert */])(bottomBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const leftBleedInPoints = Object(UnitsUtils["r" /* convert */])(leftBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const rightBleedInPoints = Object(UnitsUtils["r" /* convert */])(rightBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const artboardWidthWithBleeds = widthInPoints + leftBleedInPoints + rightBleedInPoints;
        const artboardHeightWithBleeds = heightInPoints + topBleedInPoints + bottomBleedInPoints;
        const normalCanvasSizeInPoints = Object(UnitsUtils["r" /* convert */])(self.displayMaxDocHeight / self.appSpecificKey.maxDocScale, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        let totalWidth;
        let artboardRows;
        let totalHeight;
        let docScale = 1;
        let artboardCols = artboardCount;
        const spacing = self.appSpecificKey.artboardSpacing;
        if (artboardCount === 1) {
            if (artboardHeightWithBleeds > normalCanvasSizeInPoints ||
                artboardWidthWithBleeds > normalCanvasSizeInPoints) {
                docScale = self.appSpecificKey.maxDocScale;
            }
        }
        else {
            switch (self.artboardLayout) {
                case 2:
                case 6:
                    // Arrange Artboards in a single row right to left
                    totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
                    if (totalWidth > normalCanvasSizeInPoints ||
                        artboardHeightWithBleeds > normalCanvasSizeInPoints) {
                        docScale = self.appSpecificKey.maxDocScale;
                    }
                    break;
                case 0:
                case 4:
                    // Arrange Artboards in a grid by row pattern right to left
                    artboardCols = Math.floor(Math.sqrt(artboardCount - 1)) + 1;
                    artboardRows = Math.floor((artboardCount - 1) / artboardCols) + 1;
                    totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
                    totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
                    if (totalWidth > normalCanvasSizeInPoints || totalHeight > normalCanvasSizeInPoints) {
                        docScale = self.appSpecificKey.maxDocScale;
                    }
                    break;
                case 3:
                    // Arrange Artboards in a single column
                    artboardRows = artboardCount;
                    totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
                    if (totalHeight > normalCanvasSizeInPoints ||
                        artboardHeightWithBleeds > normalCanvasSizeInPoints) {
                        docScale = self.appSpecificKey.maxDocScale;
                    }
                    break;
                case 1:
                case 5:
                    // Arrange Artboards in grid by column pattern right to left
                    artboardRows = Math.floor(Math.sqrt(artboardCount - 1)) + 1;
                    artboardCols = Math.floor((artboardCount - 1) / self.appSpecificKey.artboardRowsOrCols) + 1;
                    totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
                    totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
                    if (totalWidth > normalCanvasSizeInPoints || totalHeight > normalCanvasSizeInPoints) {
                        docScale = self.appSpecificKey.maxDocScale;
                    }
                    break;
                default:
                    break;
            }
        }
        self.fittingIsValid = docScale === 1;
        const oldArtboardExceedsCanvas = self.artboardExceedsCanvas;
        self.artboardExceedsCanvas =
            artboardHeightWithBleeds > normalCanvasSizeInPoints ||
                artboardWidthWithBleeds > normalCanvasSizeInPoints;
        shouldUpdateRasterEffects &&
            oldArtboardExceedsCanvas !== self.artboardExceedsCanvas &&
            this.updateAndCacheRasterEffects();
    },
}))
    .actions(self => ({
    afterCreate() {
        self.picasPerInch = Object(MathUtils["f" /* roundDecimal */])(self.pointsPerInch / UnitsUtils["o" /* UNIT_CONVERSION */].POINTS_PER_PICA, 10);
        // check fitting, but don't auto-update the raster effects immediately after creating the model
        self.updateFittingIsValid(false);
    },
}))
    .views(self => ({
    get displayColorMode() {
        return self.mode;
    },
    get displaycolorModeWarning() {
        return self.initialColorModeValue !== self.mode;
    },
    get displayPreviewMode() {
        if (Object.values(PreviewModeValues).includes(self.appSpecificKey.previewMode)) {
            return self.appSpecificKey.previewMode;
        }
        return PreviewModeValues.Default;
    },
    get displayRasterEffect() {
        return self.appSpecificKey.rasterEffectSettings;
    },
    get displayColorModes() {
        return self.colorModes;
    },
    get displayRasterEffectList() {
        return self.rasterEffects;
    },
    get displayPreviewModes() {
        return self.previewModes;
    },
    /**
     * Checks if, with the current preset settings, we could get a valid layout.
     * We inherited the code from the CEP implementation and for the moment we decided not to rewrite it, despite the obvious duplication:
     * https://git.corp.adobe.com/CCX/ccx-start/commit/7ff647b549205bb136439bf4c14dcfb002014f9f.
     */
    get layoutChangeCouldMakeFittingValid() {
        const [leftBleed, topBleed, rightBleed, bottomBleed] = self.bleedValues;
        const artboardCount = self.numArtboards || 0;
        const unit = self.units ? self.units : UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS];
        const widthInPoints = Object(UnitsUtils["r" /* convert */])(self.displayWidth, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const heightInPoints = Object(UnitsUtils["r" /* convert */])(self.displayHeight, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const topBleedInPoints = Object(UnitsUtils["r" /* convert */])(topBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const bottomBleedInPoints = Object(UnitsUtils["r" /* convert */])(bottomBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const leftBleedInPoints = Object(UnitsUtils["r" /* convert */])(leftBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const rightBleedInPoints = Object(UnitsUtils["r" /* convert */])(rightBleed, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        const artboardWidthWithBleeds = widthInPoints + leftBleedInPoints + rightBleedInPoints;
        const artboardHeightWithBleeds = heightInPoints + topBleedInPoints + bottomBleedInPoints;
        const normalCanvasSize = Object(UnitsUtils["r" /* convert */])(self.displayMaxDocHeight / self.appSpecificKey.maxDocScale, UnitsUtils["q" /* UnitIdToMeasurement */][unit], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS]);
        // TODO - clean up duplicate code in this area. The same condition is computed over and over again
        const spacing = self.appSpecificKey.artboardSpacing;
        // Try arranging in artboard grid by row
        let artboardCols = Math.floor(Math.sqrt(artboardCount - 1)) + 1;
        let artboardRows = Math.floor((artboardCount - 1) / artboardCols) + 1;
        let totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
        let totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
        if (totalWidth <= normalCanvasSize && totalHeight <= normalCanvasSize) {
            return true;
        }
        // Arrange Artboards in grid by column pattern right to left
        artboardRows = Math.floor(Math.sqrt(artboardCount - 1)) + 1;
        artboardCols = Math.floor((artboardCount - 1) / artboardRows) + 1;
        totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
        totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
        if (totalWidth <= normalCanvasSize && totalHeight <= normalCanvasSize) {
            return true;
        }
        // Arrange Artboards in a single row
        artboardRows = 1;
        artboardCols = artboardCount;
        totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
        totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
        if (totalWidth <= normalCanvasSize && totalHeight <= normalCanvasSize) {
            return true;
        }
        // Arrange Artboards in a single column
        artboardCols = 1;
        artboardRows = artboardCount;
        totalHeight = artboardRows * (artboardHeightWithBleeds + spacing) - spacing;
        totalWidth = artboardCols * (artboardWidthWithBleeds + spacing) - spacing;
        if (totalWidth <= normalCanvasSize && totalHeight <= normalCanvasSize) {
            return true;
        }
        return false;
    },
}));
// instead of including all the host settings, including user and session ID, only keep the fields that are relevant to our model
const SNAPSHOT_PREPROCESSING_FIELDS = [
    'defaultResolutionUnits',
    'docSizeBounds',
    'maxArtboards',
    'maxDocScale',
    'resolutionUnits',
    'unitInfo',
    'colorModes',
    'previewMode',
    'rasterEffectSettings',
    'userLocaleDecimal',
    'defaultDocumentName',
    'unitList',
];
// only include in the snapshot the fields that are useful to Illustrator, otherwise the create operation fails
const SNAPSHOT_POSTPROCESSING_FIELDS = [
    'appSpecificKey',
    'artboardSpacing',
    'description',
    'height',
    'id',
    'isPreset',
    'lastUsedTime',
    'mime_type',
    'mode',
    'numArtboards',
    'previews',
    'price_prompt',
    'resolution',
    'size',
    'template_category',
    'thumbnail_url',
    'tip',
    'title',
    'units',
    'width',
];
const IllustratorPresetModel = mobx_state_tree_module["h" /* types */].snapshotProcessor(UnprocessedIllustratorPresetModel, {
    preProcessor(snapshot) {
        const { fnftSettings, ...snapshotWithoutSettings } = snapshot;
        let { template_category, title, mode, units, width, height, minDocWidth, minDocHeight, } = snapshotWithoutSettings;
        minDocHeight = typeof minDocHeight !== 'undefined' ? minDocHeight : 1;
        minDocWidth = typeof minDocWidth !== 'undefined' ? minDocWidth : 1;
        let hostSettings;
        if (fnftSettings) {
            hostSettings = SNAPSHOT_PREPROCESSING_FIELDS.reduce((acc, key) => {
                // only use the host default if the preset itself doesn't have a value set
                if (!snapshot[key] && fnftSettings[key]) {
                    acc[key] = fnftSettings[key];
                }
                return acc;
            }, {});
            if (!mode) {
                // defaults the value to 'RGB' if available, otherwise the first colorMode in the array
                mode =
                    fnftSettings.colorModes &&
                        fnftSettings.colorModes.length &&
                        (fnftSettings.colorModes.some(mode => mode.mode === 'RGB')
                            ? 'RGB'
                            : fnftSettings.colorModes[0].mode);
            }
            hostSettings.pointsPerInch = fnftSettings.pointsPerInch || 72;
            hostSettings.picasPerInch = Object(MathUtils["f" /* roundDecimal */])(hostSettings.pointsPerInch / UnitsUtils["o" /* UNIT_CONVERSION */].POINTS_PER_PICA, 10);
            const [maxDocWidth, maxDocHeight] = fnftSettings.docSizeBounds;
            hostSettings.maxDocWidth = maxDocWidth;
            hostSettings.maxDocHeight = maxDocHeight;
            // Here we restrict the width and height values to the minimum accepted value. This it to fix a possible issue
            // due to small precision errors in converting minimum value from points to current unit both on Cmd-N side as
            // well as on Illustrator side (FMNEXT-1283).
            if (units) {
                if (typeof width !== 'undefined') {
                    const convertedWidth = Object(UnitsUtils["r" /* convert */])(width, UnitsUtils["q" /* UnitIdToMeasurement */][units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], snapshot);
                    if (convertedWidth < minDocWidth) {
                        width = Object(UnitsUtils["r" /* convert */])(minDocWidth, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][units], snapshot);
                    }
                }
                if (typeof height !== 'undefined') {
                    const convertedHeight = Object(UnitsUtils["r" /* convert */])(height, UnitsUtils["q" /* UnitIdToMeasurement */][units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], snapshot);
                    if (convertedHeight < minDocHeight) {
                        height = Object(UnitsUtils["r" /* convert */])(minDocHeight, UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].PIXELS], UnitsUtils["q" /* UnitIdToMeasurement */][units], snapshot);
                    }
                }
            }
        }
        // keep all the fields except fnftSettings, just rename the ones we need for UI integration
        return {
            ...snapshotWithoutSettings,
            width,
            height,
            minDocWidth,
            minDocHeight,
            template_category: template_category,
            category: template_category,
            name: title,
            mode: mode,
            initialColorModeValue: mode,
            ...hostSettings,
        };
    },
    postProcessor(snapshot) {
        const reducedSnapshot = {};
        SNAPSHOT_POSTPROCESSING_FIELDS.reduce((acc, field) => {
            acc[field] = snapshot[field];
            return acc;
        }, reducedSnapshot);
        if (!snapshot.units) {
            return reducedSnapshot;
        }
        if (reducedSnapshot.width) {
            reducedSnapshot.width = Object(UnitsUtils["r" /* convert */])(reducedSnapshot.width, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS], snapshot);
        }
        if (reducedSnapshot.height) {
            reducedSnapshot.height = Object(UnitsUtils["r" /* convert */])(reducedSnapshot.height, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS], snapshot);
        }
        let bleedValues = reducedSnapshot.appSpecificKey && reducedSnapshot.appSpecificKey.bleedOffset;
        if (bleedValues) {
            bleedValues = bleedValues.map(value => Object(UnitsUtils["r" /* convert */])(value, UnitsUtils["q" /* UnitIdToMeasurement */][snapshot.units], UnitsUtils["q" /* UnitIdToMeasurement */][UnitsUtils["p" /* UnitId */].POINTS], snapshot));
            reducedSnapshot.appSpecificKey = { ...reducedSnapshot.appSpecificKey, bleedOffset: bleedValues };
        }
        return reducedSnapshot;
    },
});
/* harmony default export */ var models_IllustratorPresetModel = __webpack_exports__["d"] = (IllustratorPresetModel);


/***/ }),

/***/ "Yk9n":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var error_msgs_1 = __webpack_require__("MON2");

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

var LazyServiceIdentifer = function () {
  function LazyServiceIdentifer(cb) {
    this._cb = cb;
  }

  LazyServiceIdentifer.prototype.unwrap = function () {
    return this._cb();
  };

  return LazyServiceIdentifer;
}();

exports.LazyServiceIdentifer = LazyServiceIdentifer;

function inject(serviceIdentifier) {
  return function (target, targetKey, index) {
    if (serviceIdentifier === undefined) {
      throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));
    }

    var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);

    if (typeof index === "number") {
      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    } else {
      decorator_utils_1.tagProperty(target, targetKey, metadata);
    }
  };
}

exports.inject = inject;

/***/ }),

/***/ "Yq8u":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Lock; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return LockMode; });
/* unused harmony export noopLock */
/* unused harmony export checkLock */
/* unused harmony export acquireLock */
/* unused harmony export releaseLock */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return lockFunction; });
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const _logger = js_logger__WEBPACK_IMPORTED_MODULE_0___default.a.get('LockUtils');
const _locksMap = {};
/**
 * The main locking mechanism. Can be used independently, with the caller supplying the functions for check, acquire and release.
 * However, it's recommended to use @lockFunction instead, for both simplicity and consistency.
 *
 * @param func Function to wrap with the lock check, acquire and release functions.
 * @param checkLockFn Function that is called to check the lock. Should return true if the lock is set and false if it's open.
 * @param acquireLockFn Function that is called to acquire the lock.
 * @param releaseLockFn Function that is called to release the lock.
 * @param checkInterval The amount of time in ms after which to check the lock again.
 * @returns The wrapped function.
 */
function lockFunctionRaw(func, checkLockFn, acquireLockFn, releaseLockFn, checkInterval) {
    const lockedFunc = async function (...args) {
        if (checkLockFn()) {
            _logger.debug(`Rescheduling function call ${func.name}(), next check in ${checkInterval} ms`);
            return new Promise(resolve => {
                setTimeout(() => lockedFunc.apply(this, args).then(result => resolve(result)), checkInterval);
            });
        }
        acquireLockFn();
        const result = await func.apply(this, args);
        releaseLockFn();
        return result;
    };
    return lockedFunc;
}
/**
 * Available locks that can be used throughout the app to orchestrate async behavior. Add new locks here.
 */
var Lock;
(function (Lock) {
    Lock["CMDN_REFRESHING"] = "CMDN_REFRESHING";
})(Lock || (Lock = {}));
/**
 * Lock modes. Define the behavior of locked functions when wrapping them.
 */
var LockMode;
(function (LockMode) {
    // Functions locked with this mode will both check for the lock before executing and enforce the lock during execution.
    // This is the recommended mode for wrapping high-priority functions you want to wait on.
    // Note: This WON'T pause execution of other functions that were locked with WAIT_ONLY and were started prior to this. Those functions will continue their execution unguarded!
    LockMode["ENFORCE_LOCK"] = "ENFORCE_LOCK";
    // Functions locked with this mode will only check the lock before executing, but will not enforce the lock during execution.
    // This is the recommended mode for wrapping low-priority functions you want to prevent from executing too early.
    LockMode["WAIT_ONLY"] = "WAIT_ONLY";
})(LockMode || (LockMode = {}));
/**
 * No-op lock. This can be used in place of check, acquire or release so that it doesn't perform any operation.
 *
 * @returns Returns false so that when used as a check, the lock will be seen as open.
 */
function noopLock() {
    return false;
}
/**
 * Creates a lock check function based on a specific lock from the Locks enum.
 *
 * @param lock The lock to check.
 * @returns A function that checks for the specified lock. It will return true if the lock is in use or false if it's free.
 */
function checkLock(lock) {
    return () => {
        const ret = !!_locksMap[lock];
        _logger.debug(`Check lock ${lock}: ${ret ? 'LOCKED' : 'FREE'}`);
        return ret;
    };
}
/**
 * Creates a lock acquire function based on a specific lock from the Locks enum.
 *
 * @param lock The lock to acquire.
 * @returns A function that acquires the specified lock.
 */
function acquireLock(lock) {
    return () => {
        _logger.debug(`Acquire lock ${lock}`);
        _locksMap[lock] = true;
    };
}
/**
 * Creates a lock release function based on a specific lock from the Locks enum.
 *
 * @param lock The lock to release.
 * @returns A function that releases the specified lock.
 */
function releaseLock(lock) {
    return () => {
        _logger.debug(`Release lock ${lock}`);
        _locksMap[lock] = false;
    };
}
/**
 * Lock a function using a specific lock from the Locks enum, as specified by the LockMode option.
 * The function will check the lock and reschedule itself if the lock is set, retrying after the
 * specified interval (ms). If the lock mode is set to enforce the lock, then it will set the lock upon
 * beginning execution and release it after finishing; if the lock mode is set to wait only, it will
 * leave the lock unset.
 *
 * @param func Function to wrap with the lock check, acquire and release functions.
 * @param lock The name of the lock to use.
 * @param lockMode The lock mode to use. This specifies whether the lock should only be read or also be set during execution.
 * @param checkInterval In case the lock is in use when trying to execute, this specifies how long (in ms) to wait before checking again. Defaults to 0.
 * @returns The function wrapped in lock attire.
 */
function lockFunction(func, lock, lockMode, checkInterval = 0) {
    const acquireLockFn = lockMode === 'WAIT_ONLY' ? noopLock : acquireLock(lock);
    const releaseLockFn = lockMode === 'WAIT_ONLY' ? noopLock : releaseLock(lock);
    return lockFunctionRaw(func, checkLock(lock), acquireLockFn, releaseLockFn, checkInterval);
}


/***/ }),

/***/ "YsU4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("dI71");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("17x9");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);




var MAX_SIGNED_31_BIT_INT = 1073741823;
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};

function getUniqueId() {
  var key = '__global_unique_id__';
  return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;
}

function objectIs(x, y) {
  if (x === y) {
    return x !== 0 || 1 / x === 1 / y;
  } else {
    return x !== x && y !== y;
  }
}

function createEventEmitter(value) {
  var handlers = [];
  return {
    on: function on(handler) {
      handlers.push(handler);
    },
    off: function off(handler) {
      handlers = handlers.filter(function (h) {
        return h !== handler;
      });
    },
    get: function get() {
      return value;
    },
    set: function set(newValue, changedBits) {
      value = newValue;
      handlers.forEach(function (handler) {
        return handler(value, changedBits);
      });
    }
  };
}

function onlyChild(children) {
  return Array.isArray(children) ? children[0] : children;
}

function createReactContext(defaultValue, calculateChangedBits) {
  var _Provider$childContex, _Consumer$contextType;

  var contextProp = '__create-react-context-' + getUniqueId() + '__';

  var Provider = /*#__PURE__*/function (_Component) {
    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Provider, _Component);

    function Provider() {
      var _this;

      _this = _Component.apply(this, arguments) || this;
      _this.emitter = createEventEmitter(_this.props.value);
      return _this;
    }

    var _proto = Provider.prototype;

    _proto.getChildContext = function getChildContext() {
      var _ref;

      return _ref = {}, _ref[contextProp] = this.emitter, _ref;
    };

    _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      if (this.props.value !== nextProps.value) {
        var oldValue = this.props.value;
        var newValue = nextProps.value;
        var changedBits;

        if (objectIs(oldValue, newValue)) {
          changedBits = 0;
        } else {
          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;

          if (false) {}

          changedBits |= 0;

          if (changedBits !== 0) {
            this.emitter.set(nextProps.value, changedBits);
          }
        }
      }
    };

    _proto.render = function render() {
      return this.props.children;
    };

    return Provider;
  }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired, _Provider$childContex);

  var Consumer = /*#__PURE__*/function (_Component2) {
    Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(Consumer, _Component2);

    function Consumer() {
      var _this2;

      _this2 = _Component2.apply(this, arguments) || this;
      _this2.state = {
        value: _this2.getValue()
      };

      _this2.onUpdate = function (newValue, changedBits) {
        var observedBits = _this2.observedBits | 0;

        if ((observedBits & changedBits) !== 0) {
          _this2.setState({
            value: _this2.getValue()
          });
        }
      };

      return _this2;
    }

    var _proto2 = Consumer.prototype;

    _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      var observedBits = nextProps.observedBits;
      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
    };

    _proto2.componentDidMount = function componentDidMount() {
      if (this.context[contextProp]) {
        this.context[contextProp].on(this.onUpdate);
      }

      var observedBits = this.props.observedBits;
      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
    };

    _proto2.componentWillUnmount = function componentWillUnmount() {
      if (this.context[contextProp]) {
        this.context[contextProp].off(this.onUpdate);
      }
    };

    _proto2.getValue = function getValue() {
      if (this.context[contextProp]) {
        return this.context[contextProp].get();
      } else {
        return defaultValue;
      }
    };

    _proto2.render = function render() {
      return onlyChild(this.props.children)(this.state.value);
    };

    return Consumer;
  }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object, _Consumer$contextType);
  return {
    Provider: Provider,
    Consumer: Consumer
  };
}

var index = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext || createReactContext;
/* harmony default export */ __webpack_exports__["a"] = (index);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "Z1zh":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ AppStore_AppStore; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ AppStoreContext; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ withStore; });

// UNUSED EXPORTS: WAIT_FOR_CCLIBRARIES_TIMEOUT, MAX_RECENT_ITEMS_PER_KIND

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts + 6 modules
var hosts = __webpack_require__("Zghy");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/HostUtils.ts
var HostUtils = __webpack_require__("BwkI");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/DialogUtils.ts
var DialogUtils = __webpack_require__("ZVWO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/i18n.tsx
var i18n = __webpack_require__("BPvV");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const ContainerSizeModel = mobx_state_tree_module["h" /* types */].model({
    width: mobx_state_tree_module["h" /* types */].number,
    height: mobx_state_tree_module["h" /* types */].number,
});
/* harmony default export */ var models_ContainerSizeModel = (ContainerSizeModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/TemplateModel.ts + 1 modules
var TemplateModel = __webpack_require__("3iLV");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/UserModel.ts
var UserModel = __webpack_require__("sK9T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/DocumentTemplateModel.ts
var DocumentTemplateModel = __webpack_require__("CQbc");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/Analytics.ts + 1 modules
var Analytics = __webpack_require__("t9Qr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/ColorUtils.tsx + 1 modules
var ColorUtils = __webpack_require__("0mF0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetsController.ts + 8 modules
var PresetsController = __webpack_require__("+DHQ");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/WelcomeDialogController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * @type {number}
 */
const MAX_DISPLAY = 3;
class WelcomeDialogController {
    constructor(appStorageController) {
        this._appStorageController = appStorageController;
        if (this.displayCount === MAX_DISPLAY) {
            this.closeRecentsWelcome();
            this.closeSavedWelcome();
        }
    }
    /**
     * Determines whether a given banner should be displayed. If the user has not yet dismissed the banner, it is shown
     * depending on the display count.
     *
     * @param value Whether the user has dismissed the banner or not.
     * @returns True if the banner should be displayed, otherwise false.
     */
    _shouldShowWelcome(value) {
        // if it's still true, make sure it's only been displayed for 3 launches
        return value ? this.displayCount <= MAX_DISPLAY : false;
    }
    /**
     * Gets the current display count of the application. This is used to decide if we show the Welcome Banner or not.
     *
     * @returns Application display count.
     */
    get displayCount() {
        return this._appStorageController.getWelcomeDisplayCount();
    }
    /**
     * Tracks a view of the application, by increaing the display count.
     */
    increaseDisplayCount() {
        this._appStorageController.setWelcomeDisplayCount(this.displayCount + 1);
    }
    /**
     * Dismisses the Recents banner, preventing it from being displayed on subsequent runs.
     */
    closeRecentsWelcome() {
        this._appStorageController.setShowRecentsBanner(false);
    }
    /**
     * Dismisses the Saved banner, preventing it from being displayed on subsequent runs.
     */
    closeSavedWelcome() {
        this._appStorageController.setShowSavedBanner(false);
    }
    /**
     * Determines whether the Recents Banner should be displayed.
     *
     * @returns True if it should be displayed, otherwise false.
     */
    shouldShowRecentsBanner() {
        return this._shouldShowWelcome(this._appStorageController.getShowRecentsBanner());
    }
    /**
     * Determines whether the Saved Banner should be displayed.
     *
     * @returns True if it should be displayed, otherwise false.
     */
    shouldShowSavedBanner() {
        return this._shouldShowWelcome(this._appStorageController.getShowSavedBanner());
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/HostDataInterface.ts
var HostDataInterface = __webpack_require__("OaoV");
var HostDataInterface_default = /*#__PURE__*/__webpack_require__.n(HostDataInterface);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Performance.ts
var Performance = __webpack_require__("pUl/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/AppStorageController.ts + 2 modules
var AppStorageController = __webpack_require__("tr1J");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/TemplateCategoriesInterface.ts
var TemplateCategoriesInterface = __webpack_require__("Defv");
var TemplateCategoriesInterface_default = /*#__PURE__*/__webpack_require__.n(TemplateCategoriesInterface);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/LibraryManager.ts
var LibraryManager = __webpack_require__("io8T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockController.ts + 4 modules
var StockController = __webpack_require__("abot");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockUtil.ts + 1 modules
var StockUtil = __webpack_require__("iNS0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/feature-flag/FeatureFlagController.ts
var FeatureFlagController = __webpack_require__("zBY0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DeeplinkInterface.ts
var DeeplinkInterface = __webpack_require__("TXS8");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/AppStore.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var AppStore_a, AppStore_b, AppStore_c, AppStore_d, AppStore_e, AppStore_f, AppStore_g, AppStore_h, _j, _k, _l, _m, _o, _p, _q;





























const WAIT_FOR_CCLIBRARIES_TIMEOUT = 4000; // in ms
const ANONYMOUS_USER = 'ANONYMOUS_USER';
const COUNTRY_CODES_WITHOUT_STOCK = ['CN'];
const MAX_RECENT_ITEMS_PER_KIND = 20;
class AppStore_AppStore {
    /**
     * Constructor, loads the store up with host data.
     *
     * @param [userInfo] UserInfo coming from Homescreen.
     * @param [onClose] Close window handler.
     */
    constructor(userInfo, onClose) {
        this.ready = false;
        this.theme = 'dark';
        this._activeView = DocumentTemplateCategoryTypes["a" /* default */].RECENT;
        this._saveFormVisible = false;
        this._templateCategories = {};
        this._templateCollections = [];
        this._failedTemplateCollectionsFetching = false;
        this._containerSize = { width: 0, height: 0 };
        this._searchBoxText = '';
        this._previewModeEnabled = false;
        // This is a nasty hack to prevent a focus-stealing text input. Photoshop autofocuses one of the text inputs when
        // a dialog is launched. The only way we can bypass this is for the input to not be there on launch.
        // So, the hack is: on launch, start off as a visually identical span element,
        // then asynchronously switch it to a text input during onShow().
        // This mechanic will aso be used to make sure the box stays behind overlays and other absolute positioned elements.
        this._disableNativeSearchBox = false;
        this._forceFocus = false;
        // activeModal
        this._activeModalView = null;
        this._logger = logger_default.a.get('AppStore');
        this._appSettings = {};
        this._featureFlags = {};
        this._isWindowsOS = Object(PlatformUtils["g" /* isWindowsOS */])();
        this._isDialogVisible = false;
        this._isDeepLinkTemplate = false;
        this.updateStockCollections = (collections) => {
            this._templateCollections = collections;
            // add templates to the lookup map so that their status will be updated on download
            this._templateCollections.forEach(collection => {
                this.findAndSetActiveDocument(collection.files);
            });
        };
        this._analytics = new Analytics["c" /* default */]();
        this.updateColorTheme = this.updateColorTheme.bind(this);
        this.updateTemplateCategories = this.updateTemplateCategories.bind(this);
        this.userProfileChangeListener = this.userProfileChangeListener.bind(this);
        this.updateTemplateDownloadStatus = this.updateTemplateDownloadStatus.bind(this);
        this.init(userInfo, true);
        this._onClose = onClose;
    }
    /**
     * Initializes the store, loading the languages.
     *
     * @param [userProfileSnapshot] User profile snapshot received from Homescreen.
     * @param [resetSession=false] True if initializing for new session.
     */
    async init(userProfileSnapshot, resetSession = false) {
        var _a;
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].LoadTime);
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].DataTime);
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].InteractiveTime);
        // we reset the internal structures
        StockController["c" /* default */].clearTemplateLookupMap();
        this._templateCategories = {};
        this._isDialogVisible = false;
        // Use this to distinguish between init and show
        Performance["b" /* Performance */].setMeasurement(Performance["a" /* MeasurementIDS */].RiotMountApp, 1);
        // First get the user profile so we can initialise local storage.
        const userProfile = await hosts["a" /* default */].getUserProfile(userProfileSnapshot, this.userProfileChangeListener);
        this._user = UserModel["b" /* default */].create(userProfile);
        // get the service code from the host and store it on the user
        this._user.setServiceCode(hosts["a" /* default */].serviceCode);
        const contryCode = this._user ? this._user.UserProfile.countryCode : 'US';
        const localeFeatureFlag = await hosts["a" /* default */].getLocaleFeatureFlag();
        // Loads the relevant feature flags
        this._featureFlags = {
            [FeatureFlagController["b" /* FeatureFlags */].STOCK]: this.isStockEnabledInCountry(contryCode),
            [FeatureFlagController["b" /* FeatureFlags */].ROMAN_FS]: FeatureFlagController["b" /* FeatureFlags */].ROMAN_FS === localeFeatureFlag,
            [FeatureFlagController["b" /* FeatureFlags */].JAPANESE_FS]: FeatureFlagController["b" /* FeatureFlags */].JAPANESE_FS === localeFeatureFlag,
            [FeatureFlagController["b" /* FeatureFlags */].MENA_FS]: FeatureFlagController["b" /* FeatureFlags */].MENA_FS === localeFeatureFlag,
        };
        const language = i18n["a" /* default */].getLanguage(hosts["a" /* default */].language);
        // Host will have a local storage which is bound to the user
        this._appStorageController = new AppStorageController["b" /* default */]('1.17.4', this.user.UserProfile.userId || ANONYMOUS_USER, language);
        hosts["a" /* default */].appStorageController = this._appStorageController;
        if (resetSession) {
            this._appStorageController.resetSessionLoggedInUsers();
        }
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].HostData);
        // update default settings so that the document name is updated properly ("Untitled-1", "Untitled-2", ...)
        await this.updateDefaultSettings();
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].HostData);
        // Setup the language
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].i18nJSON);
        const languageStrings = await this.getLanguageStrings(language);
        // push language and strings to i18n so we can access it "below" the store (in LibraryManager etc.)
        i18n["a" /* default */].setLocaleAndStrings(language, languageStrings);
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].i18nJSON);
        // Init the app settings
        // Register the themchanged update
        hosts["a" /* default */].addEventListener('themechanged', this.updateColorTheme);
        // Trigger it once so we have the current theme
        await this.updateColorTheme();
        // Register the cmdnDialogClose event
        hosts["a" /* default */].addEventListener('cmdnDialogClose', this._onClose);
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].HostPresetData);
        // Allow updatePresetCategory to use cached data because we just called updateDefaultSettings before.
        // This will only have an effect in ID, where we need to minimize the # of calls we make to the host one after the other.
        await this.updatePresetCategory(this.activeView, true);
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].HostPresetData);
        // init welcome banner controller
        this._welcomeController = new WelcomeDialogController(this._appStorageController);
        // init analytics with the user information
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].IngestConfig);
        await this.analytics.config(hosts["a" /* default */], this._user, this._appSettings, '1.17.4');
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].IngestConfig);
        // mark store initialization as ready
        this.ready = true;
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].InteractiveTime);
        // Register event handlers for the StockController and LibraryManager
        if (this.isStockEnabled) {
            const hostId = this.appSettings.hostID || hosts["a" /* default */].id;
            const hostLanguage = this.appSettings.language || hosts["a" /* default */].language;
            StockController["c" /* default */].init(this.user.UserProfile.userId, hostId, hostLanguage, this.user.isStaging, this.analytics);
            // attach listener for stock initialization event
            StockController["c" /* default */].on(StockController["b" /* StockEvents */].STOCK_INITIALIZED, ({ templates }) => {
                const categories = StockController["c" /* default */].getTemplateCategories(this._templateCategories, templates);
                this.updateTemplateCategories(categories);
                // Report performance when stock and collections (if enabled and ready) have data, otherwise report when stock has data.
                // The last one here does the reporting.
                LibraryManager["d" /* default */].licensedTemplateDataAvailable &&
                    StockController["c" /* default */].readyToReportPerformance(hosts["a" /* default */].isStockCollectionsEnabled) &&
                    this.reportStats();
            });
            if (hosts["a" /* default */].isStockCollectionsEnabled) {
                StockController["c" /* default */].on(StockController["b" /* StockEvents */].STOCK_COLLECTIONS_INITIALIZED, ({ collections, isError }) => {
                    const templateCollections = StockController["c" /* default */].getStockCollections(this._templateCollections, collections || []);
                    this._failedTemplateCollectionsFetching = isError;
                    this.updateStockCollections(templateCollections);
                    if (!this._activeDocumentTemplate) {
                        this.setDefaultActiveDocumentTemplate();
                    }
                    // Report performance when stock and collections (if enabled and ready) have data, otherwise report when stock has data.
                    // The last one here does the reporting.
                    LibraryManager["d" /* default */].licensedTemplateDataAvailable &&
                        StockController["c" /* default */].readyToReportPerformance(hosts["a" /* default */].isStockCollectionsEnabled) &&
                        this.reportStats();
                });
            }
            // get template data. At this point we most likely don't have licensed templates,
            // but it's a good opportunity to get the stock data (unlicensed templates)
            hosts["a" /* default */].getAndInitializeTemplates(this._appSettings, ((_a = this._presetCategories) === null || _a === void 0 ? void 0 : _a[DocumentTemplateCategoryTypes["a" /* default */].RECENT]) || []);
            // When LibrariesEvents.CHANGE is triggered, we have at least one library available,
            // so we can read the library lookup and initialize licensed templates.
            // This call will most likely use already cached stock data that we got in the previous call
            LibraryManager["d" /* default */].on(LibraryManager["b" /* LibrariesEvents */].CHANGE, () => {
                var _a;
                // something changed in the overall status, so we need to flush the cache
                // stockController.clearTemplateLookupMap();
                hosts["a" /* default */].getAndInitializeTemplates(this._appSettings, ((_a = this._presetCategories) === null || _a === void 0 ? void 0 : _a[DocumentTemplateCategoryTypes["a" /* default */].RECENT]) || []);
            });
            // update the model on download status changes
            LibraryManager["d" /* default */].on(LibraryManager["b" /* LibrariesEvents */].DOWNLOAD_STATUS, this.updateTemplateDownloadStatus);
        }
        else {
            // presets-only, report directly
            this.reportStats();
        }
    }
    /**
     * Returns the template collections;
     */
    get templateCollections() {
        return this._templateCollections;
    }
    /**
     * Updates the status of downloading templates.
     *
     * @param status Template status.
     */
    updateTemplateDownloadStatus(status) {
        var _a, _b, _c;
        const template = (_a = StockController["c" /* default */].templateLookupMap) === null || _a === void 0 ? void 0 : _a[status.templateId];
        if (template) {
            const prevStatus = (_b = template.downloadStatus) === null || _b === void 0 ? void 0 : _b.downloadStatus;
            template.updateStatus(status);
            // we only update the model if the template didn't have already the 'saved' category
            if (template.addTemplateCategory(DocumentTemplateCategoryTypes["a" /* default */].SAVED)) {
                const templatesInCategory = this._templateCategories[DocumentTemplateCategoryTypes["a" /* default */].SAVED];
                if (templatesInCategory.find(item => item.id === template.id) === undefined) {
                    templatesInCategory.push(template);
                    templatesInCategory.sort(PresetsController["a" /* PresetsController */].mostRecentlyUsedComparator);
                }
            }
            if (!prevStatus && status.downloadStatus === LibraryManager["a" /* DownloadStatus */].DOWNLOADING) {
                // this means we just started a download, and we need to give control back to our dialog
                this.forceFocus = true;
                this.analytics.logFNFTActionClickedEvent('download-start', {
                    ...template,
                    activeFilter: this.activeView,
                });
            }
            else if (status.downloadStatus === LibraryManager["a" /* DownloadStatus */].DOWNLOADED) {
                this.analytics.logFNFTActionClickedEvent('download-end', {
                    ...template,
                    activeFilter: this.activeView,
                });
                // we only update the model if the template finished downloading
                if (template.addTemplateCategory(DocumentTemplateCategoryTypes["a" /* default */].RECENT)) {
                    const templatesInCategory = (_c = this._templateCategories) === null || _c === void 0 ? void 0 : _c[DocumentTemplateCategoryTypes["a" /* default */].RECENT];
                    if (templatesInCategory.find(item => item.id === template.id) === undefined) {
                        templatesInCategory.push(template);
                        templatesInCategory.sort(PresetsController["a" /* PresetsController */].mostRecentlyUsedComparator);
                    }
                    if (this.activeDocumentTemplate && this.activeDocumentTemplate.identifier === template.identifier) {
                        this.activeDocumentTemplate = template;
                    }
                }
            }
        }
    }
    /**
     * Updates the internal representation of the template data.
     *
     * @param templateCategories Object containing the templates available per category.
     */
    updateTemplateCategories(templateCategories) {
        this._templateCategories = templateCategories;
        Object.keys(this._templateCategories).forEach(key => {
            this.findAndSetActiveDocument(this._templateCategories[key]);
        });
        // updatePresetsAndTemplates is called asynchronously on dialog show, and if we're on recents, we need to refresh the selection
        if (this.activeView === DocumentTemplateCategoryTypes["a" /* default */].RECENT) {
            this.setDefaultActiveDocumentTemplateAndFocus();
        }
    }
    findAndSetActiveDocument(templates) {
        templates === null || templates === void 0 ? void 0 : templates.map(template => {
            var _a;
            if (template.identifier === ((_a = this.activeDocumentTemplate) === null || _a === void 0 ? void 0 : _a.identifier)) {
                // Also update the activeDocumentTemplate if there's an updated version of it.
                this.activeDocumentTemplate = template;
            }
        });
    }
    /**
     * Gets the recently used document templates. This includes clipboard, presets and templates.
     *
     * @returns Array containing the recently used document templates.
     */
    get mixedRecentData() {
        // We now have both recent templates and presets coming from the host
        const presets = this.recentPresets;
        const templates = this.recentTemplates;
        const mixed = []
            .concat(presets)
            .concat(templates);
        return mixed.sort(PresetsController["a" /* PresetsController */].mostRecentlyUsedComparator);
    }
    get recentPresets() {
        var _a;
        const presetsData = ((_a = this._presetCategories) === null || _a === void 0 ? void 0 : _a[DocumentTemplateCategoryTypes["a" /* default */].RECENT]) || [];
        return this.getCategoryItems(presetsData, DocumentTemplateKind["a" /* default */].PRESET);
    }
    get recentTemplates() {
        var _a;
        const templatesData = ((_a = this._templateCategories) === null || _a === void 0 ? void 0 : _a[DocumentTemplateCategoryTypes["a" /* default */].RECENT]) || [];
        return this.getCategoryItems(templatesData, DocumentTemplateKind["a" /* default */].TEMPLATE);
    }
    /**
     * Whether Stock integration is enabled or not.
     *
     * @returns <code>true</code> if stock integration is enabled, otherwise <code>false</code>.
     */
    get isStockEnabled() {
        return FeatureFlagController["a" /* FeatureFlagController */].hasFeatureFlags(this._featureFlags, [FeatureFlagController["b" /* FeatureFlags */].STOCK]);
    }
    /**
     * Whether Stock Collections are enabled or not.
     *
     * @returns true if Stock Collections are enabled, otherwise false.
     */
    get shouldDisplayTemplatesTab() {
        var _a, _b;
        return !!(hosts["a" /* default */].isStockCollectionsEnabled &&
            this.isStockEnabled && ((_a = this._templateCollections) === null || _a === void 0 ? void 0 : _a.length) && ((_b = this._templateCollections) === null || _b === void 0 ? void 0 : _b.some(collection => { var _a; return (_a = collection.files) === null || _a === void 0 ? void 0 : _a.length; })));
    }
    /**
     * Whether binding is enabled or not.
     *
     * @returns <code>true</code> if binding is enabled, otherwise <code>false</code>.
     */
    get isBindingEnabled() {
        return (FeatureFlagController["a" /* FeatureFlagController */].hasFeatureFlags(this._featureFlags, [FeatureFlagController["b" /* FeatureFlags */].JAPANESE_FS]) ||
            FeatureFlagController["a" /* FeatureFlagController */].hasFeatureFlags(this._featureFlags, [FeatureFlagController["b" /* FeatureFlags */].MENA_FS]));
    }
    /**
     * Whether japanese is enabled or not.
     *
     * @returns <code>true</code> if japanese is enabled, otherwise <code>false</code>.
     */
    get isJapaneseEnabled() {
        return FeatureFlagController["a" /* FeatureFlagController */].hasFeatureFlags(this._featureFlags, [FeatureFlagController["b" /* FeatureFlags */].JAPANESE_FS]);
    }
    /**
     * Object containing the enabled feature flags.
     *
     * @returns Object contained the feature flags.
     */
    get featureFlags() {
        return this._featureFlags;
    }
    /**
     * Object containing the app settings data.
     *
     * @returns Object contained the app settings data.
     */
    get appSettings() {
        return this._appSettings;
    }
    /**
     * Gets country code and based on that disables/enables STOCK.
     *
     * @param code Code representing the contry code.
     * @returns Returns if stock is enabled=true/disabled=false in the current country.
     */
    isStockEnabledInCountry(code) {
        return !COUNTRY_CODES_WITHOUT_STOCK.includes(code);
    }
    /**
     * Filters, sorts and limit the number of documents.
     *
     * @param documents The documents to be sorted.
     * @param kind The kind of the document.
     * @returns Documents after filter, sort and limitation.
     */
    getCategoryItems(documents, kind) {
        const modifiedDocuments = documents
            .filter(document => document.kind === kind)
            .sort(PresetsController["a" /* PresetsController */].mostRecentlyUsedComparator);
        return modifiedDocuments.slice(0, MAX_RECENT_ITEMS_PER_KIND);
    }
    /**
     * Reports initialization information.
     */
    reportStats() {
        // only measure and report when we're tracking the load times
        if (Performance["b" /* Performance */].isTracked(Performance["a" /* MeasurementIDS */].DataTime)) {
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].DataTime);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].LoadTime);
            if (this.isStockEnabled) {
                // If the CC library is already loaded, the library script load and init measurements won't be in the list.
                // For consistency, let's add them with the value 0.
                if (!Performance["b" /* Performance */].isTracked(Performance["a" /* MeasurementIDS */].LoadLibraryFile)) {
                    Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].LoadLibraryFile);
                    Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].LoadLibraryFile);
                }
                if (!Performance["b" /* Performance */].isTracked(Performance["a" /* MeasurementIDS */].InitLibrary)) {
                    Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].InitLibrary);
                    Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].InitLibrary);
                }
            }
            hosts["a" /* default */].reportPerformance(Performance["b" /* Performance */].uniqueMeasurements);
            Performance["b" /* Performance */].clearMeasurements();
        }
    }
    /**
     * Reinitializes the AppStore with the new user profile.
     *
     * @param updatedUserProfile Updated user profile.
     * @param accessTokenOnly True if only the access token changed. We don't need a full store reinitialization in that case, just a token update.
     */
    userProfileChangeListener(updatedUserProfile, accessTokenOnly = false) {
        if (accessTokenOnly) {
            if (this.user && updatedUserProfile) {
                this.user.setAccessToken(updatedUserProfile.accessToken);
            }
        }
        else {
            try {
                // reinitialize the App store completely because the user changed
                if (!this.user || this.user.UserProfile.userId !== updatedUserProfile.UserProfile.userId) {
                    StockController["c" /* default */].clearLicensedTemplateCache();
                }
                this.ready = false;
                this.init(updatedUserProfile);
                // data will be reloaded, so let's refocus
                this.forceFocus = true;
            }
            catch (e) {
                this._logger.error('Failed to update user profile:', e);
            }
        }
    }
    /**
     * Returns the locale strings for the current language.
     *
     * @param hostLanguage Language reported from the host.
     * @returns Key-Value object containing the translated strings for the given locale.
     */
    async getLanguageStrings(hostLanguage) {
        let strings;
        if (this._appStorageController) {
            // We have local storage, so we try to read data from there
            const languageData = this._appStorageController.getLanguageStrings();
            // Checking if the host language is the same with the language from our local storage
            if (languageData && languageData.language === hostLanguage && typeof languageData.strings !== 'undefined') {
                // If we have local strings we just load the data from there
                return languageData.strings;
            }
            // We don't have local strings so we need to get and store them in the local storage
            strings = await i18n["a" /* default */].fetchLocaleStrings(hostLanguage);
            this._appStorageController.setLanguageStrings({ language: hostLanguage, strings: strings });
            return strings;
        }
        // We don't have local storage - so we first need to get local data for the host language
        strings = await i18n["a" /* default */].fetchLocaleStrings(hostLanguage);
        return strings;
    }
    /**
     * Updates the default settings from the host application.
     */
    async updateDefaultSettings() {
        var _a, _b, _c, _d, _e, _f, _g, _h;
        this._appSettings = await hosts["a" /* default */].getDefaultSettings();
        // Populate the account status and country code from the user, if we don't have that already from the host.
        // In AI, these don't come in the host JSON.
        if (!this._appSettings.accountStatus) {
            this._appSettings.accountStatus = (_a = this._user) === null || _a === void 0 ? void 0 : _a.subscriptionStatus;
        }
        if (!this._appSettings.countryCode) {
            this._appSettings.countryCode = (_c = (_b = this._user) === null || _b === void 0 ? void 0 : _b.UserProfile) === null || _c === void 0 ? void 0 : _c.countryCode;
        }
        this._defaultSettings = (_d = this._appSettings) === null || _d === void 0 ? void 0 : _d.fnftSettings;
        // pre-convert the background color to RGB, so that we do not do this call for every preset
        if ((_e = this._defaultSettings) === null || _e === void 0 ? void 0 : _e.backgroundColor) {
            this._defaultSettings.backgroundColorRgb =
                (await Object(ColorUtils["a" /* convertToRgb */])(this._defaultSettings.backgroundColor)) || undefined;
        }
        this.documentName = ((_f = this._defaultSettings) === null || _f === void 0 ? void 0 : _f.defaultDocumentName) || '';
        this.updatePreviewModeEnabled(!!((_h = (_g = this._appSettings) === null || _g === void 0 ? void 0 : _g.fnftSettings) === null || _h === void 0 ? void 0 : _h.previewModeEnabled));
    }
    /**
     * Updates the app color theme from the host app.
     */
    async updateColorTheme() {
        const theme = await hosts["a" /* default */].getTheme();
        // Match the theming logic from Homescreen. This is due to React-spectrum-uxp only supporting two themes.
        this.theme = theme === 'lightest' || theme === 'light' ? 'light' : 'dark';
    }
    /**
     * Reloads the underlying data for a given category.
     *
     * @param category The category to reload.
     * @param [useCachedData] Whether can return cached data.
     */
    async updatePresetsAndTemplates(category = DocumentTemplateCategoryTypes["a" /* default */].ALL, useCachedData) {
        var _a;
        await this.updatePresetCategory(category, useCachedData);
        // set focus anyway after an update
        this.setDefaultActiveDocumentTemplateAndFocus();
        // we handle this via a callback because it takes a long time
        if (this.isStockEnabled) {
            hosts["a" /* default */].updateTemplates(this._appSettings, ((_a = this._presetCategories) === null || _a === void 0 ? void 0 : _a[DocumentTemplateCategoryTypes["a" /* default */].RECENT]) || [], category === DocumentTemplateCategoryTypes["a" /* default */].RECENT);
        }
    }
    /**
     * Initializes the preset categories object.
     *
     * @param category The name of the category to load.
     * @param useCachedData Whether can return cached data.
     */
    async updatePresetCategory(category = DocumentTemplateCategoryTypes["a" /* default */].ALL, useCachedData) {
        if (hosts["a" /* default */].getPresetJSON) {
            const categoryPresets = await hosts["a" /* default */].getPresetJSON(category, useCachedData);
            if (categoryPresets) {
                const categories = PresetsController["a" /* PresetsController */].getPresetsCategories(categoryPresets, this.language, this.defaultSettings);
                // Note: _presetCategories is an observable ref,
                // so mobx will only know it changed if we assign a new reference.
                // This is why we use Object.assign() below.
                if (typeof this._presetCategories === 'undefined' || category === DocumentTemplateCategoryTypes["a" /* default */].ALL) {
                    this._presetCategories = Object.assign({}, this._presetCategories, categories);
                }
                else {
                    // we only replace the provided category as we are doing an update
                    this._presetCategories = Object.assign({}, this._presetCategories, {
                        [category]: categories[category],
                    });
                }
            }
        }
    }
    /**
     * Resets the UI to the initial state. This is used when the application is reopened after it had already been
     * initialized.
     *
     * @param documentPath the path where the New Document Dialog should open at.
     */
    resetUIState(documentPath) {
        this.saveFormVisible = false;
        // If we have a documentPath it means that the CmdN was opened using HS Deeplink
        if (documentPath === null || documentPath === void 0 ? void 0 : documentPath.view) {
            this._activeView = documentPath.view;
            if (documentPath.document) {
                this.activeDocumentTemplate = documentPath.document;
            }
            else {
                this.activeDocumentTemplate = undefined;
                this.setDefaultActiveDocumentTemplate();
            }
        }
        else {
            this.activeDocumentTemplate = undefined;
            this.switchToRecentView();
        }
        this.searchBoxText = '';
        this.activeModalView = null;
        this.disableNativeSearchBox = true;
    }
    /**
     * Switches to recents view and sets the first preset to active.
     */
    switchToRecentView() {
        this._activeView = DocumentTemplateCategoryTypes["a" /* default */].RECENT;
        this.setDefaultActiveDocumentTemplate();
    }
    /**
     * Switches to the Saved tab and focuses the recent created preset (if we just created one). Focuses the first preset otherwise.
     *
     * @param presetName The name of the recent created preset.
     */
    switchToSavedView(presetName) {
        this._activeView = DocumentTemplateCategoryTypes["a" /* default */].SAVED;
        if (presetName) {
            const presets = this.getPresetsByCategoryType(this.activeView);
            const preset = presets.find(element => element['name'] === presetName);
            if (preset) {
                this.activeDocumentTemplate = preset;
                this.forceFocus = true;
                return;
            }
        }
        this.setDefaultActiveDocumentTemplateAndFocus();
    }
    /**
     * Finds a suitable document template to select. If presets are available, it will select the first, otherwise it
     * will select first template if possible. It could still produce <code>activeDocumentTemplate</code> to be
     * <code>undefined</code> if no valid document template is found.
     */
    setDefaultActiveDocumentTemplate() {
        var _a, _b, _c;
        const presets = this.getPresetsByCategoryType(this.activeView);
        if (presets === null || presets === void 0 ? void 0 : presets.length) {
            this.activeDocumentTemplate = presets[0];
            // InDesign specific. Update previewed doc if preview is enabled - when dialog first shows and when switching tabs.
            this.previewModeEnabled && this.updatePreviewDocSettings();
        }
        else if (!this.activeDocumentTemplate) {
            if (this.activeView === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES) {
                this.activeDocumentTemplate = (_c = (_b = (_a = this._templateCollections) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.files) === null || _c === void 0 ? void 0 : _c[0];
            }
            else {
                // in case we ended up without a selection, we try the templates
                const templates = this.getTemplatesByCategoryType(this.activeView);
                this.activeDocumentTemplate = templates === null || templates === void 0 ? void 0 : templates[0];
            }
        }
    }
    /**
     * Sets the default active document template and tells the UI to focus it.
     */
    setDefaultActiveDocumentTemplateAndFocus() {
        this.setDefaultActiveDocumentTemplate();
        this.forceFocus = true;
    }
    /**
     * Gets the presets that match a given category type.
     *
     * @param type Category type to get the presets.
     * @returns Return an array of presets that match the given category name.
     */
    getPresetsByCategoryType(type) {
        if (this._presetCategories && !Object.prototype.hasOwnProperty.call(this._presetCategories, type)) {
            // This will update the observable and update the UI when ready
            this.updatePresetCategory(type);
        }
        // for Recents, for hosts other than hosts included in splitRecentViewForHostId, we have mixed templates and presets, so we can use those
        // for Recents, for host included in splitRecentViewForHostId, we return recentPresets - limited to 20
        if (type === DocumentTemplateCategoryTypes["a" /* default */].RECENT) {
            return Object(HostUtils["e" /* splitRecentViewForHostId */])(this._appSettings.hostID) ? this.recentPresets : this.mixedRecentData;
        }
        return this._presetCategories[type] || [];
    }
    /**
     * Gets the presets that match a given category type.
     *
     * @param type Category type to get the templates.
     * @returns Return an array of presets that match the given category name.
     */
    getTemplatesByCategoryType(type) {
        var _a;
        if (!this.isStockEnabled) {
            return [];
        }
        // for Recents we return recentTemplates - limited to 20 - should only be called with Recent category for PS
        if (type === DocumentTemplateCategoryTypes["a" /* default */].RECENT) {
            return (this.recentTemplates || []);
        }
        return ((_a = this._templateCategories) === null || _a === void 0 ? void 0 : _a[type]) || [];
    }
    /**
     * Gets a preset or a template that matches the given category type, collection and selector(identifier or index).
     * If both an identifier and an index are given, the document matching the identifier will be returned.
     *
     * @param categoryType Category type in which to look for presets/templates.
     * @param collection The collection inside the category the desired document is a part of. (e.g "preset", "template")
     * @param documentSelector The identifier or the index by which to find the document inside the collection.
     * @param bypassCCLibrariesWait If `true` it will no longer wait for CCLibraries to be loaded first.
     * @returns The document (preset or template) from the given categoryType, collection and matching the documentSelector.
     */
    async getDocumentByCategoryAndCollection(categoryType, collection, documentSelector, bypassCCLibrariesWait = false) {
        var _a, _b;
        let documents;
        const { identifier, index } = documentSelector;
        // if neither `identifier` nor `index` are provided, we won't know what document to return
        if (identifier === undefined && index === undefined) {
            return undefined;
        }
        const isMixedView = categoryType === DocumentTemplateCategoryTypes["a" /* default */].RECENT &&
            !Object(HostUtils["e" /* splitRecentViewForHostId */])(this._appSettings.hostID);
        if (!bypassCCLibrariesWait && (collection !== DocumentTemplateKind["a" /* default */].PRESET || isMixedView)) {
            try {
                const errorMessage = 'There was a problem with CCLibraries.';
                if (!LibraryManager["d" /* default */].ccLibrariesIsFunctional) {
                    throw new Error(errorMessage);
                }
                // Wait for the CCLibraries to be loaded
                // CCLibraries is needed for Template Licensing information and Template Download
                await Object(mobx_module["I" /* when */])(() => LibraryManager["d" /* default */].ccLibrariesIsLoaded || !LibraryManager["d" /* default */].ccLibrariesIsFunctional, {
                    timeout: WAIT_FOR_CCLIBRARIES_TIMEOUT,
                });
                if (!LibraryManager["d" /* default */].ccLibrariesIsFunctional) {
                    throw new Error(errorMessage);
                }
            }
            catch (error) {
                this._logger.warn('CCLibraries is not loaded! Template Licensing information may not be accurate.', error);
            }
        }
        if (collection === DocumentTemplateKind["a" /* default */].PRESET || isMixedView) {
            // if the presets for this category were not already initialised, update them
            if (!((_b = (_a = this._presetCategories) === null || _a === void 0 ? void 0 : _a[categoryType]) === null || _b === void 0 ? void 0 : _b.length)) {
                await this.updatePresetCategory(categoryType);
            }
            documents = this.getPresetsByCategoryType(categoryType);
        }
        else if (collection === DocumentTemplateKind["a" /* default */].TEMPLATE) {
            documents = this.getTemplatesByCategoryType(categoryType);
        }
        else if (categoryType === DocumentTemplateCategoryTypes["a" /* default */].TEMPLATES) {
            documents = this.getTemplatesByCollectionIndex(collection);
        }
        if (!(documents === null || documents === void 0 ? void 0 : documents.length)) {
            return undefined;
        }
        let selectedDocument;
        identifier !== undefined &&
            (selectedDocument = documents.find(document => {
                // For Templates, the identifiers can only be numbers
                // For Presets, the identifiers can only be strings
                return (document.identifier ===
                    (document.kind === DocumentTemplateKind["a" /* default */].TEMPLATE ? Number(identifier) : identifier.toString()));
            }));
        !selectedDocument && index !== undefined && (selectedDocument = documents[index]);
        this.isDeepLinkTemplate = true;
        return selectedDocument;
    }
    /**
     * Gets the templates from a specific collection index.
     *
     * @param index Index of the template collection.
     * @returns Return an array of presets that match the given category name.
     */
    getTemplatesByCollectionIndex(index) {
        var _a, _b;
        if (!this.isStockEnabled) {
            return [];
        }
        return ((_b = (_a = this._templateCollections) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.files) || [];
    }
    /**
     * Indicates the host to open a new document with the provided document template.
     *
     * @param template Template used to create a new document.
     * @returns Whether the document opened successfully or not.
     */
    async openTemplate(template) {
        // TODO - revisit this when we port to other products. Adding it here so we don't forget about it
        if (this._appSettings.hostID !== HostIds["a" /* default */].PHXS && this._appStorageController && template.id) {
            this._appStorageController.setTemplateLastUsedTimestamp(template.id, Date.now());
        }
        return await hosts["a" /* default */].openTemplate(template);
    }
    /**
     * Returns whether the underlying OS is Microsoft Windows.
     *
     * @returns True if the platform is Windows, false otherwise.
     */
    get isWindowsOS() {
        return this._isWindowsOS;
    }
    /**
     * Returns the language that UI will use.
     *
     * @returns Language as defined by the host.
     */
    get language() {
        return i18n["a" /* default */].getLoadedLocale();
    }
    /**
     * Returns the language that UI will use.
     *
     * @returns Language as defined by the host.
     */
    get languageStrings() {
        return i18n["a" /* default */].getLoadedStrings();
    }
    get defaultSettings() {
        return this._defaultSettings;
    }
    get activeModalView() {
        return this._activeModalView;
    }
    set activeModalView(value) {
        this._activeModalView = value;
        this.disableNativeSearchBox = !!value;
        // if the modal was closed, reset the focus in the grid
        this.forceFocus = !value;
    }
    get boundariesElement() {
        return this._boundariesElement;
    }
    set boundariesElement(value) {
        this._boundariesElement = value;
    }
    get activeView() {
        return this._activeView;
    }
    set activeView(view) {
        if (Object.values(DocumentTemplateCategoryTypes["a" /* default */]).indexOf(view) === -1) {
            return;
        }
        // force the activeElement to reset on tab switch, so that we can set it from the containers on mount
        this._activeDocumentTemplate = undefined;
        this._activeView = view;
        this.analytics.logFNFTActionClickedEvent('tab-selected', { activeFilter: view });
        this.analytics.logFNFTActionClickedEvent('tab-rendered', { activeFilter: view });
    }
    /**
     * Returns whether the preset save form is visible.
     *
     * @returns Whether the preset save form is visible.
     */
    get saveFormVisible() {
        return this._saveFormVisible;
    }
    /**
     * Sets preset save form visibility.
     *
     * @param value Whether the preset save form should be visible.
     */
    set saveFormVisible(value) {
        this._saveFormVisible = value;
    }
    /**
     * Returns the document name as provided by the user.
     *
     * @returns Current document name.
     */
    get documentName() {
        return this._documentName;
    }
    set documentName(value) {
        this._documentName = value;
    }
    /**
     * Returns the active document template that can be used to create a new document. It can be either a preset or a
     * template.
     *
     * @returns Active document template.
     */
    get activeDocumentTemplate() {
        return this._activeDocumentTemplate;
    }
    /**
     * Sets the active document template.
     *
     * @param value Document template to set as active.
     */
    set activeDocumentTemplate(value) {
        if (value) {
            if (value.kind === DocumentTemplateKind["a" /* default */].PRESET) {
                this._activeDocumentTemplate = PresetsController["a" /* PresetsController */].createPresetModel(value, this.defaultSettings);
            }
            else {
                // @todo figure out a better way to check that value is a template model
                this._activeDocumentTemplate = Object.prototype.hasOwnProperty.call(value, 'updateStatus')
                    ? value
                    : TemplateModel["a" /* default */].create(JSON.parse(JSON.stringify(value)));
            }
        }
        else {
            this._activeDocumentTemplate = undefined;
        }
    }
    async downloadActiveTemplate() {
        const activeTemplate = this.activeDocumentTemplate;
        if (!activeTemplate) {
            this._logger.warn('Attempting to download active template, but store.activeDocumentTemplate is not a template.');
            return;
        }
        if (LibraryManager["d" /* default */].isTemplateDownloaded(activeTemplate.id)) {
            this._logger.warn('Attempting to download active template, but template is already downloaded');
            return;
        }
        this.analytics.logFNFTActionClickedEvent('download', { ...activeTemplate, activeFilter: this.activeView });
        if (activeTemplate.isDownloading) {
            this._logger.warn('Attempting to download active template, but template is already downloading');
            return;
        }
        activeTemplate.updateStatus({
            licenseStatus: StockController["a" /* LicenseStatus */].REQUESTED,
        });
        // start the licensing process
        this.analytics.logFNFTActionClickedEvent('license-template', {
            ...activeTemplate,
            activeFilter: this.activeView,
        });
        const response = await hosts["a" /* default */].requestLicenseDialog(activeTemplate);
        if (response && response.state === StockUtil["a" /* LicensingPossible */].NOT_POSSIBLE) {
            activeTemplate.updateStatus({ licenseStatus: StockController["a" /* LicenseStatus */].ERROR });
        }
    }
    /**
     * Gets the preset that the (possibly edited) activeDocumentTemplate is based on.
     *
     * @returns If a document template is active, it returns the original preset (unedited), otherwise undefined.
     */
    get originalPreset() {
        const presets = this.getPresetsByCategoryType(this._activeView);
        return presets && this._activeDocumentTemplate
            ? presets.find(preset => this._activeDocumentTemplate && this._activeDocumentTemplate.identifier === preset.identifier)
            : undefined;
    }
    /**
     * Gets an object that contains the size of the container.
     *
     * @returns Size of the container that holds the app.
     */
    get containerSize() {
        return this._containerSize;
    }
    /**
     * Sets an object that contains the size of the container that holds the app.
     *
     * @param value Size of the container that holds the app.
     */
    set containerSize(value) {
        this._containerSize = value;
    }
    /**
     * InDesign specific. Gets the current state of preview mode checkbox.
     *
     * @returns Boolean representing previewMode checkbox state.
     */
    get previewModeEnabled() {
        return this._previewModeEnabled;
    }
    /**
     * InDesign specific. Gets the current state of preview mode checkbox, by making a request to the host.
     */
    async getPreviewModeEnabledFromHost() {
        this._previewModeEnabled = await hosts["a" /* default */].getIsPreviewEnabled();
    }
    /**
     * InDesign specific. Gets the current state of preview mode checkbox, by making a request to the host.
     *
     * @param value The value to be set.
     */
    async updatePreviewModeEnabled(value) {
        this._previewModeEnabled = value;
        this._appSettings &&
            this._appSettings.fnftSettings &&
            (this._appSettings.fnftSettings.previewModeEnabled = value);
    }
    /**
     * Opens the color pickers based on the host capabilities.
     *
     * @param color Color object used to initialize the picker.
     * @param context Localized string context for the color picker dialog.
     * @returns The new color selected by the user.
     */
    async openColorPicker(color, context) {
        return await hosts["a" /* default */].openColorPicker(color, context);
    }
    /**
     * Create a new Preset from the current preset/template.
     *
     * @param presetJSON String containing the document parameters as JSON.
     * @returns [description].
     */
    async createPreset(presetJSON) {
        return await hosts["a" /* default */].createPreset(presetJSON);
    }
    /**
     * Deletes the preset that names the given name.
     *
     * @param presetName String containing the document name.
     * @returns [description].
     */
    async deletePreset(presetName) {
        return await hosts["a" /* default */].deletePreset(presetName);
    }
    /**
     * Creates a new document using the preset information and the given document name. The dialog
     * needs to be closed in order to successfully create a document.
     *
     * @param presetJSON Object containing the preset information for the new document.
     * @param documentName Name that will be assigned to the document upon creation.
     * @param showDialog Boolean that shows the state (visible or not) of the dialog.
     * @returns True of the document was created successfully, otherwise false.
     */
    async createDocument(presetJSON, documentName, showDialog = false) {
        return await hosts["a" /* default */].createDocumentFromTemplate(JSON.stringify(presetJSON), documentName, showDialog);
    }
    /**
     * InDesign specific. Updates the currently previewed preset document to be the active document.
     *
     * @returns True of the document was created successfully, otherwise false.
     */
    async updatePreviewDocSettings() {
        if (this.previewModeEnabled &&
            this.isDialogVisible &&
            this.activeDocumentTemplate &&
            this.activeDocumentTemplate.kind === DocumentTemplateKind["a" /* default */].PRESET // For mixed data, the first item may be a template
        ) {
            await hosts["a" /* default */].updatePreviewDocSettings(JSON.stringify(Object(mobx_state_tree_module["f" /* getSnapshot */])(this.activeDocumentTemplate)), this.documentName || i18n["a" /* default */].formatMessage('newdoc_default_docname'));
        }
    }
    /**
     * Signals the application that the App should be closed.
     *
     * @param reason Reason why the application will be closed.
     */
    closeApp(reason) {
        this.isDialogVisible = false;
        this.resetUIState();
        // we notify the application loader that the App needs to be closed
        typeof this._onClose === 'function' && this._onClose(reason);
    }
    /**
     * Called after the application has been closed. It is used to record the reason into analytics.
     *
     * @param reason Reason why the application was closed.
     */
    afterCloseApp(reason) {
        this.isDialogVisible = false;
        const ingestData = {
            settings: {},
            activeFilter: this.activeView,
        };
        // we know the activeDocumentTemplate is a model, so get a snapshot before using it
        const activeDocument = Object(mobx_state_tree_module["g" /* isStateTreeNode */])(this.activeDocumentTemplate)
            ? Object(mobx_state_tree_module["f" /* getSnapshot */])(this.activeDocumentTemplate)
            : this.activeDocumentTemplate;
        Object.assign(ingestData, this.originalPreset);
        Object.assign(ingestData.settings, activeDocument);
        // If the application has been closed because a preset/template was created (the reason is 'create')
        // then is not necessary to log this.
        if (reason !== DialogUtils["a" /* DialogCloseReason */].CREATE) {
            const ingestAction = this.activeDocumentTemplate && this.activeDocumentTemplate.kind === DocumentTemplateKind["a" /* default */].TEMPLATE
                ? 'close-template'
                : 'close';
            this.analytics.logFNFTActionClickedEvent(ingestAction, ingestData);
            this.analytics.flushEvent();
        }
        // InDesign specific - close preview on dialog close.
        hosts["a" /* default */].processDocForCmdnDialogClose();
    }
    /**
     * Open welcome banner controller and register event handlers .
     */
    openWelcomeBanner() {
        if (typeof this._welcomeController !== 'undefined' &&
            (this.shouldShowRecentsBanner || this.shouldShowSavedBanner)) {
            if (this._appStorageController !== undefined && this._appStorageController.addSessionLoggedInUser()) {
                this._welcomeController.increaseDisplayCount();
            }
            if (this.shouldShowRecentsBanner) {
                this.analytics.logFNFTActionClickedEvent('welcome-recents-rendered', {
                    displayCount: this._welcomeController.displayCount,
                    activeFilter: this._activeView,
                });
            }
            if (this.shouldShowSavedBanner) {
                this.analytics.logFNFTActionClickedEvent('welcome-saved-rendered', {
                    displayCount: this._welcomeController.displayCount,
                    activeFilter: this._activeView,
                });
            }
        }
    }
    closeRecentsWelcome() {
        if (typeof this._welcomeController !== 'undefined') {
            this._welcomeController.closeRecentsWelcome();
            this.forceFocus = true;
            this.analytics.logFNFTActionClickedEvent('welcome-recents-closed', { activeFilter: this._activeView });
        }
    }
    get shouldShowRecentsBanner() {
        const welcomeCtrl = this._welcomeController;
        if (typeof welcomeCtrl !== 'undefined') {
            return welcomeCtrl.shouldShowRecentsBanner();
        }
        else {
            return false;
        }
    }
    closeSavedWelcome() {
        const welcomeCtrl = this._welcomeController;
        if (typeof welcomeCtrl !== 'undefined') {
            welcomeCtrl.closeSavedWelcome();
            this.forceFocus = true;
            this.analytics.logFNFTActionClickedEvent('welcome-saved-closed', { activeFilter: this._activeView });
        }
    }
    get shouldShowSavedBanner() {
        const welcomeCtrl = this._welcomeController;
        if (typeof welcomeCtrl !== 'undefined') {
            return welcomeCtrl.shouldShowSavedBanner();
        }
        else {
            return false;
        }
    }
    get showFileSizeWarning() {
        const appStoreCtrl = this._appStorageController;
        return appStoreCtrl ? appStoreCtrl.getShowFileSizeWarning() : true;
    }
    set showFileSizeWarning(value) {
        const appStoreCtrl = this._appStorageController;
        appStoreCtrl === null || appStoreCtrl === void 0 ? void 0 : appStoreCtrl.setShowFileSizeWarning(value);
    }
    get user() {
        return this._user;
    }
    get isDialogVisible() {
        return this._isDialogVisible;
    }
    set isDialogVisible(value) {
        this._isDialogVisible = value;
    }
    /**
     * Gets the analytics object used to track user interaction.
     *
     * @returns Analytics instance used by the AppStore.
     */
    get analytics() {
        return this._analytics;
    }
    get forceFocus() {
        return this._forceFocus;
    }
    /**
     * We use this flag to force the grid view to focus when the dialog is first shown.
     *
     * @param value New value of the force focus flag.
     */
    set forceFocus(value) {
        this._forceFocus = value;
    }
    get searchBoxText() {
        return this._searchBoxText;
    }
    set searchBoxText(value) {
        this._searchBoxText = value;
    }
    get disableNativeSearchBox() {
        return this._disableNativeSearchBox;
    }
    /**
     * We use this flag to force the search bar to sometimes render as a span so it doesn't steal focus or overlap.
     *
     * @param value New value of the disable native search box flag.
     */
    set disableNativeSearchBox(value) {
        this._disableNativeSearchBox = value;
    }
    get isDeepLinkTemplate() {
        return this._isDeepLinkTemplate;
    }
    set isDeepLinkTemplate(value) {
        this._isDeepLinkTemplate = value;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "ready", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], AppStore_AppStore.prototype, "theme", void 0);
__decorate([
    mobx_module["z" /* observable */].ref,
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "_presetCategories", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (AppStore_a = typeof DocumentTemplateModel["DocumentTemplateInterface"] !== "undefined" && DocumentTemplateModel["DocumentTemplateInterface"]) === "function" ? AppStore_a : Object)
], AppStore_AppStore.prototype, "_activeDocumentTemplate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (AppStore_b = typeof DocumentTemplateCategoryTypes["a" /* default */] !== "undefined" && DocumentTemplateCategoryTypes["a" /* default */]) === "function" ? AppStore_b : Object)
], AppStore_AppStore.prototype, "_activeView", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], AppStore_AppStore.prototype, "_documentName", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "_saveFormVisible", void 0);
__decorate([
    mobx_module["z" /* observable */].ref,
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "_templateCategories", void 0);
__decorate([
    mobx_module["z" /* observable */].ref,
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "_templateCollections", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "_failedTemplateCollectionsFetching", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (AppStore_c = typeof /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined) === "function" ? AppStore_c : Object)
], AppStore_AppStore.prototype, "_containerSize", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], AppStore_AppStore.prototype, "_searchBoxText", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "_previewModeEnabled", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "_disableNativeSearchBox", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], AppStore_AppStore.prototype, "_forceFocus", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "_activeModalView", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "_boundariesElement", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "updateTemplateDownloadStatus", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (AppStore_d = typeof TemplateCategoriesInterface_default.a !== "undefined" && TemplateCategoriesInterface_default.a) === "function" ? AppStore_d : Object]),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "updateTemplateCategories", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], AppStore_AppStore.prototype, "updateStockCollections", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "mixedRecentData", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "isStockEnabled", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "shouldDisplayTemplatesTab", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "isBindingEnabled", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "isJapaneseEnabled", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (AppStore_e = typeof FeatureFlagController["FeatureFlagsType"] !== "undefined" && FeatureFlagController["FeatureFlagsType"]) === "function" ? AppStore_e : Object),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "featureFlags", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (AppStore_f = typeof HostDataInterface_default.a !== "undefined" && HostDataInterface_default.a) === "function" ? AppStore_f : Object),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "appSettings", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object, Boolean]),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "userProfileChangeListener", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (AppStore_g = typeof DeeplinkInterface["DocumentPath"] !== "undefined" && DeeplinkInterface["DocumentPath"]) === "function" ? AppStore_g : Object]),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "resetUIState", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "switchToRecentView", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "switchToSavedView", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "setDefaultActiveDocumentTemplate", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], AppStore_AppStore.prototype, "setDefaultActiveDocumentTemplateAndFocus", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "isWindowsOS", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "language", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "languageStrings", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [Object])
], AppStore_AppStore.prototype, "activeModalView", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (AppStore_h = typeof HTMLElement !== "undefined" && HTMLElement) === "function" ? AppStore_h : Object),
    __metadata("design:paramtypes", [Object])
], AppStore_AppStore.prototype, "boundariesElement", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_j = typeof DocumentTemplateCategoryTypes["a" /* default */] !== "undefined" && DocumentTemplateCategoryTypes["a" /* default */]) === "function" ? _j : Object),
    __metadata("design:paramtypes", [typeof (_k = typeof DocumentTemplateCategoryTypes["a" /* default */] !== "undefined" && DocumentTemplateCategoryTypes["a" /* default */]) === "function" ? _k : Object])
], AppStore_AppStore.prototype, "activeView", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [Boolean])
], AppStore_AppStore.prototype, "saveFormVisible", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [String])
], AppStore_AppStore.prototype, "documentName", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [Object])
], AppStore_AppStore.prototype, "activeDocumentTemplate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "originalPreset", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_p = typeof /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined) === "function" ? _p : Object),
    __metadata("design:paramtypes", [typeof (_q = typeof /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "ContainerSizeInterface" in "./node_modules/@ccx/ccx-create-new/src/models/ContainerSizeModel.ts" (known exports: default, known reexports: ) */ undefined) === "function" ? _q : Object])
], AppStore_AppStore.prototype, "containerSize", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AppStore_AppStore.prototype, "previewModeEnabled", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [Boolean])
], AppStore_AppStore.prototype, "isDeepLinkTemplate", null);
const AppStoreContext = react_default.a.createContext({});
/**
 * Encapsulates the given component in a consumer of the AppStoreContext.
 *
 * @param Component The component that uses the AppStoreContext.
 * @returns The given React component surrounded by a consumer for the AppStoreContext.
 */
function withStore(Component) {
    return function StoreComponent(props) {
        return react_default.a.createElement(AppStoreContext.Consumer, null, store => react_default.a.createElement(Component, Object.assign({}, props, { store: store })));
    };
}



/***/ }),

/***/ "Z7ej":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("T9or"),
      24: __webpack_require__("Aay3")
    }
  }));
};

WrappedIcon.displayName = 'Portrait';
exports.default = WrappedIcon;

/***/ }),

/***/ "ZJ9f":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
/** Used to stand-in for `undefined` hash values. */

var HASH_UNDEFINED = '__lodash_hash_undefined__';
/** Used as references for various `Number` constants. */

var INFINITY = 1 / 0,
    MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var argsTag = '[object Arguments]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]';
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */

var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/**
 * A faster alternative to `Function#apply`, this function invokes `func`
 * with the `this` binding of `thisArg` and the arguments of `args`.
 *
 * @private
 * @param {Function} func The function to invoke.
 * @param {*} thisArg The `this` binding of `func`.
 * @param {Array} args The arguments to invoke `func` with.
 * @returns {*} Returns the result of `func`.
 */

function apply(func, thisArg, args) {
  switch (args.length) {
    case 0:
      return func.call(thisArg);

    case 1:
      return func.call(thisArg, args[0]);

    case 2:
      return func.call(thisArg, args[0], args[1]);

    case 3:
      return func.call(thisArg, args[0], args[1], args[2]);
  }

  return func.apply(thisArg, args);
}
/**
 * A specialized version of `_.includes` for arrays without support for
 * specifying an index to search from.
 *
 * @private
 * @param {Array} [array] The array to inspect.
 * @param {*} target The value to search for.
 * @returns {boolean} Returns `true` if `target` is found, else `false`.
 */


function arrayIncludes(array, value) {
  var length = array ? array.length : 0;
  return !!length && baseIndexOf(array, value, 0) > -1;
}
/**
 * This function is like `arrayIncludes` except that it accepts a comparator.
 *
 * @private
 * @param {Array} [array] The array to inspect.
 * @param {*} target The value to search for.
 * @param {Function} comparator The comparator invoked per element.
 * @returns {boolean} Returns `true` if `target` is found, else `false`.
 */


function arrayIncludesWith(array, value, comparator) {
  var index = -1,
      length = array ? array.length : 0;

  while (++index < length) {
    if (comparator(value, array[index])) {
      return true;
    }
  }

  return false;
}
/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */


function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }

  return array;
}
/**
 * The base implementation of `_.findIndex` and `_.findLastIndex` without
 * support for iteratee shorthands.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {Function} predicate The function invoked per iteration.
 * @param {number} fromIndex The index to search from.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function baseFindIndex(array, predicate, fromIndex, fromRight) {
  var length = array.length,
      index = fromIndex + (fromRight ? 1 : -1);

  while (fromRight ? index-- : ++index < length) {
    if (predicate(array[index], index, array)) {
      return index;
    }
  }

  return -1;
}
/**
 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} value The value to search for.
 * @param {number} fromIndex The index to search from.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function baseIndexOf(array, value, fromIndex) {
  if (value !== value) {
    return baseFindIndex(array, baseIsNaN, fromIndex);
  }

  var index = fromIndex - 1,
      length = array.length;

  while (++index < length) {
    if (array[index] === value) {
      return index;
    }
  }

  return -1;
}
/**
 * The base implementation of `_.isNaN` without support for number objects.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
 */


function baseIsNaN(value) {
  return value !== value;
}
/**
 * Checks if a cache value for `key` exists.
 *
 * @private
 * @param {Object} cache The cache to query.
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function cacheHas(cache, key) {
  return cache.has(key);
}
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function getValue(object, key) {
  return object == null ? undefined : object[key];
}
/**
 * Checks if `value` is a host object in IE < 9.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
 */


function isHostObject(value) {
  // Many host objects are `Object` objects that can coerce to strings
  // despite having improperly defined `toString` methods.
  var result = false;

  if (value != null && typeof value.toString != 'function') {
    try {
      result = !!(value + '');
    } catch (e) {}
  }

  return result;
}
/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */


function setToArray(set) {
  var index = -1,
      result = Array(set.size);
  set.forEach(function (value) {
    result[++index] = value;
  });
  return result;
}
/** Used for built-in method references. */


var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to detect overreaching core-js shims. */

var coreJsData = root['__core-js_shared__'];
/** Used to detect methods masquerading as native. */

var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/** Used to resolve the decompiled source of functions. */


var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/** Built-in value references. */

var Symbol = root.Symbol,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    splice = arrayProto.splice,
    spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeMax = Math.max;
/* Built-in method references that are verified to be native. */

var Map = getNative(root, 'Map'),
    Set = getNative(root, 'Set'),
    nativeCreate = getNative(Object, 'create');
/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Hash(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */


function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
}
/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function hashDelete(key) {
  return this.has(key) && delete this.__data__[key];
}
/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function hashGet(key) {
  var data = this.__data__;

  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }

  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}
/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
}
/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */


function hashSet(key, value) {
  var data = this.__data__;
  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
  return this;
} // Add methods to `Hash`.


Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function ListCache(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */


function listCacheClear() {
  this.__data__ = [];
}
/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }

  var lastIndex = data.length - 1;

  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }

  return true;
}
/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);
  return index < 0 ? undefined : data[index][1];
}
/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}
/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */


function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }

  return this;
} // Add methods to `ListCache`.


ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function MapCache(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */


function mapCacheClear() {
  this.__data__ = {
    'hash': new Hash(),
    'map': new (Map || ListCache)(),
    'string': new Hash()
  };
}
/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function mapCacheDelete(key) {
  return getMapData(this, key)['delete'](key);
}
/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}
/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}
/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */


function mapCacheSet(key, value) {
  getMapData(this, key).set(key, value);
  return this;
} // Add methods to `MapCache`.


MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
/**
 *
 * Creates an array cache object to store unique values.
 *
 * @private
 * @constructor
 * @param {Array} [values] The values to cache.
 */

function SetCache(values) {
  var index = -1,
      length = values ? values.length : 0;
  this.__data__ = new MapCache();

  while (++index < length) {
    this.add(values[index]);
  }
}
/**
 * Adds `value` to the array cache.
 *
 * @private
 * @name add
 * @memberOf SetCache
 * @alias push
 * @param {*} value The value to cache.
 * @returns {Object} Returns the cache instance.
 */


function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);

  return this;
}
/**
 * Checks if `value` is in the array cache.
 *
 * @private
 * @name has
 * @memberOf SetCache
 * @param {*} value The value to search for.
 * @returns {number} Returns `true` if `value` is found, else `false`.
 */


function setCacheHas(value) {
  return this.__data__.has(value);
} // Add methods to `SetCache`.


SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */

function assocIndexOf(array, key) {
  var length = array.length;

  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }

  return -1;
}
/**
 * The base implementation of `_.flatten` with support for restricting flattening.
 *
 * @private
 * @param {Array} array The array to flatten.
 * @param {number} depth The maximum recursion depth.
 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
 * @param {Array} [result=[]] The initial result value.
 * @returns {Array} Returns the new flattened array.
 */


function baseFlatten(array, depth, predicate, isStrict, result) {
  var index = -1,
      length = array.length;
  predicate || (predicate = isFlattenable);
  result || (result = []);

  while (++index < length) {
    var value = array[index];

    if (depth > 0 && predicate(value)) {
      if (depth > 1) {
        // Recursively flatten arrays (susceptible to call stack limits).
        baseFlatten(value, depth - 1, predicate, isStrict, result);
      } else {
        arrayPush(result, value);
      }
    } else if (!isStrict) {
      result[result.length] = value;
    }
  }

  return result;
}
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */


function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */


function baseRest(func, start) {
  start = nativeMax(start === undefined ? func.length - 1 : start, 0);
  return function () {
    var args = arguments,
        index = -1,
        length = nativeMax(args.length - start, 0),
        array = Array(length);

    while (++index < length) {
      array[index] = args[start + index];
    }

    index = -1;
    var otherArgs = Array(start + 1);

    while (++index < start) {
      otherArgs[index] = args[index];
    }

    otherArgs[start] = array;
    return apply(func, this, otherArgs);
  };
}
/**
 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {Function} [iteratee] The iteratee invoked per element.
 * @param {Function} [comparator] The comparator invoked per element.
 * @returns {Array} Returns the new duplicate free array.
 */


function baseUniq(array, iteratee, comparator) {
  var index = -1,
      includes = arrayIncludes,
      length = array.length,
      isCommon = true,
      result = [],
      seen = result;

  if (comparator) {
    isCommon = false;
    includes = arrayIncludesWith;
  } else if (length >= LARGE_ARRAY_SIZE) {
    var set = iteratee ? null : createSet(array);

    if (set) {
      return setToArray(set);
    }

    isCommon = false;
    includes = cacheHas;
    seen = new SetCache();
  } else {
    seen = iteratee ? [] : result;
  }

  outer: while (++index < length) {
    var value = array[index],
        computed = iteratee ? iteratee(value) : value;
    value = comparator || value !== 0 ? value : 0;

    if (isCommon && computed === computed) {
      var seenIndex = seen.length;

      while (seenIndex--) {
        if (seen[seenIndex] === computed) {
          continue outer;
        }
      }

      if (iteratee) {
        seen.push(computed);
      }

      result.push(value);
    } else if (!includes(seen, computed, comparator)) {
      if (seen !== result) {
        seen.push(computed);
      }

      result.push(value);
    }
  }

  return result;
}
/**
 * Creates a set object of `values`.
 *
 * @private
 * @param {Array} values The values to add to the set.
 * @returns {Object} Returns the new set.
 */


var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function (values) {
  return new Set(values);
};
/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */

function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}
/**
 * Checks if `value` is a flattenable `arguments` object or array.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
 */


function isFlattenable(value) {
  return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
}
/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */


function isKeyable(value) {
  var type = typeof value;
  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
}
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to process.
 * @returns {string} Returns the source code.
 */


function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}
/**
 * Gets the last element of `array`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Array
 * @param {Array} array The array to query.
 * @returns {*} Returns the last element of `array`.
 * @example
 *
 * _.last([1, 2, 3]);
 * // => 3
 */


function last(array) {
  var length = array ? array.length : 0;
  return length ? array[length - 1] : undefined;
}
/**
 * This method is like `_.union` except that it accepts `comparator` which
 * is invoked to compare elements of `arrays`. Result values are chosen from
 * the first array in which the value occurs. The comparator is invoked
 * with two arguments: (arrVal, othVal).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Array
 * @param {...Array} [arrays] The arrays to inspect.
 * @param {Function} [comparator] The comparator invoked per element.
 * @returns {Array} Returns the new array of combined values.
 * @example
 *
 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
 *
 * _.unionWith(objects, others, _.isEqual);
 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
 */


var unionWith = baseRest(function (arrays) {
  var comparator = last(arrays);

  if (isArrayLikeObject(comparator)) {
    comparator = undefined;
  }

  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
});
/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */

function eq(value, other) {
  return value === other || value !== value && other !== other;
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


function isArguments(value) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
}
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */


var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */


function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * This method returns `undefined`.
 *
 * @static
 * @memberOf _
 * @since 2.3.0
 * @category Util
 * @example
 *
 * _.times(2, _.noop);
 * // => [undefined, undefined]
 */


function noop() {// No operation performed.
}

module.exports = unionWith;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "ZVWO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DialogCloseReason; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Dialog close reasons.
 *
 * @enum {string}
 */
var DialogCloseReason;
(function (DialogCloseReason) {
    DialogCloseReason["CLOSE"] = "close";
    DialogCloseReason["CREATE"] = "create";
})(DialogCloseReason || (DialogCloseReason = {}));


/***/ }),

/***/ "Zghy":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/imsBridge.ts + 3 modules
var imsBridge = __webpack_require__("EgDT");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/AppStorageController.ts + 2 modules
var AppStorageController = __webpack_require__("tr1J");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockController.ts + 4 modules
var StockController = __webpack_require__("abot");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/UXPAPI.ts
var UXPAPI = __webpack_require__("VFTl");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/feature-flag/FeatureFlagController.ts
var FeatureFlagController = __webpack_require__("zBY0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Constants.ts
var Constants = __webpack_require__("Ai3n");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/ApplicationBase.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* eslint-disable @typescript-eslint/no-empty-function */









/**
 * Base class that represents the start host app.
 */
class ApplicationBase_ApplicationBase {
    constructor(appStorageController) {
        this._logger = logger_default.a.get('ApplicationBase');
        this.mruPathCache = [];
        this.PRODUCTION_TOKEN = 'prod';
        this._uxp = Object(PlatformUtils["f" /* isUXP */])() ? Object(UXPAPI["a" /* uxpAPI */])() : undefined;
        this._appStorageController =
            appStorageController || new AppStorageController["b" /* default */]('1.17.4', '', this.language);
    }
    /**
     * Application specific storage.
     *
     * @returns The controller in charge of application storage.
     */
    get appStorageController() {
        return this._appStorageController;
    }
    /**
     * Sets the application specific storage.
     *
     * @param appStorageController Application specific storage.
     */
    set appStorageController(appStorageController) {
        this._appStorageController = appStorageController;
    }
    /**
     * Returns the user profile of the logged in user.
     *
     * @param userProfileSnapshot User profile snapshot that we got from Homescreen.
     * @param [userProfileChangeListener] Callback to be called when user profile changes.
     * @returns The user profile of the logged in user or the ERROR_ADOBEID string.
     */
    async getUserProfile(userProfileSnapshot, userProfileChangeListener) {
        try {
            if (!imsBridge["c" /* default */].initialized) {
                await imsBridge["c" /* default */].init(userProfileSnapshot, userProfileChangeListener);
            }
            return imsBridge["c" /* default */].userProfile;
        }
        catch (e) {
            this._logger.error('Could not get user profile', e);
            return 'ERROR_ADOBEID';
        }
    }
    /**
     * The SAP ID of the product.
     *
     * @returns The SAP ID of the product.
     */
    get id() {
        return this._uxp.host.appCode;
    }
    /**
     * Application Name.
     *
     * @returns The application name.
     */
    get name() {
        return this._uxp.host.name;
    }
    /**
     * Application Version.
     *
     * @returns The application version.
     */
    get version() {
        return this._uxp.host.version;
    }
    /**
     * Application UI Locale.
     *
     * @returns The application UI locale.
     */
    get language() {
        if (Object(PlatformUtils["f" /* isUXP */])()) {
            let modLocale = this._uxp.host.locale;
            // eslint-disable-next-line @typescript-eslint/naming-convention
            if (!modLocale || (!(modLocale in { en_US: 1, en_GB: 1 }) && modLocale.match(/en_??/))) {
                modLocale = 'en_US';
            }
            return modLocale;
        }
        return window.navigator.language;
    }
    /**
     * Returns the current logged in user's quota or
     * 1 if quota method via cdoHost is not available.
     *
     * @returns user's quota.
     */
    get userQuota() {
        var _a, _b, _c;
        return (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.cdoHost) === null || _a === void 0 ? void 0 : _a.getUserQuota) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : 1;
    }
    /**
     * Returns if analytics collection should be enabled by the host app.
     *
     * @returns If analytics collection should be enabled by the host app.
     */
    async isAnalyticsEnabled() {
        return await this._uxp.host.canLogAnalyticsData;
    }
    ////////////////////////////////////////////////////////////////////
    // Properties likely to be overridden by the host app.
    ///////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////
    // Static Overrides/Configuration
    ///////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////
    // Life-cycle methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Initialize the observables available from the host app. Good place to add event listeners.
     */
    async init() { }
    /**
     * Initialize the observables that can be delaye and do not impact the initial rendering of start.
     *
     */
    async lateLoad() { }
    ///////////////////////////////////////////////////////////////////
    // Data Access
    ///////////////////////////////////////////////////////////////////
    /**
     * Returns the Guid of the application's session for tracking purposes.
     *
     * @returns The Guid of the application's session.
     */
    async getSessionId() {
        return '';
    }
    /**
     * Returns the current logged in user's GUID.
     *
     * @returns The current logged in user's GUID.
     */
    async getDelegateGUID() {
        let profile = await this._uxp.licensing.fetchProfile();
        try {
            profile = JSON.parse(profile);
            return profile.UserProfile.userId;
        }
        catch (_a) {
            return 'ERROR_ADOBEGUID';
        }
    }
    /**
     * Returns the current color theme of the user interface.
     *
     * @returns The current color theme of the user interface.
     */
    async getTheme() {
        return this._uxp.host.getTheme();
    }
    /**
     * Adds an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    addEventListener(eventName, callback) {
        if (eventName === 'cmdnDialogClose') {
            return;
        }
        this._uxp.host.addEventListener(eventName, callback);
    }
    /**
     * Removes an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    removeEventListener(eventName, callback) {
        if (eventName === 'cmdnDialogClose') {
            return;
        }
        this._uxp.host.removeEventListener(eventName, callback);
    }
    /**
     * Returns the init settings of the app.
     *
     * @returns The init settings of the app.
     */
    async getDefaultSettings() {
        return {};
    }
    /**
     * Opens the host's color picker allowing the user to pick a new color.
     *
     * @param color Color object used to initialize the picker.
     * @param context Localized string context for the color picker dialog.
     * @returns Object representing the user picked color.
     */
    async openColorPicker(color, context) {
        throw new Error('Not implemented');
    }
    /**
     * Given the a valid color JSON string, it returns its representation in the RGBColor space.
     *
     * @param color Color object to convert to RGB.
     * @returns The transformed color to the RGBColor type.
     */
    async convertColorToRGB(color) {
        throw new Error('Not implemented');
    }
    /**
     * Determines whether Stock Integration is enabled.
     *
     * @returns Whether stock integration is enabled in the application or not.
     */
    async isStockEnabled() {
        return true;
    }
    /**
     * Determines whether Stock Collections is enabled.
     *
     * @returns Whether Stock Collections are enabled in the application or not.
     */
    get isStockCollectionsEnabled() {
        return false;
    }
    async getLocaleFeatureFlag() {
        return FeatureFlagController["b" /* FeatureFlags */].ROMAN_FS;
    }
    /**
     * Get if PreviewMode is enabled or not.
     *
     * @returns A bool value in a promise, representing the state of previewModeEnabled flag.
     */
    async getIsPreviewEnabled() {
        return false;
    }
    /**
     * Expects a boolean representing if preview mode is enabled or not.
     * Set the value for preview mode, this is persistent between cmd+n session.
     *
     * @param isEnabled Boolean representing preview mode status.
     */
    async updateIsPreviewEnabled(isEnabled) { }
    /**
     * Updates document as per new Json data, expects stringified json data for preset.
     *
     * @param presetJSON String containing the document parameters as JSON.
     * @param documentName The name of the document.
     */
    async updatePreviewDocSettings(presetJSON, documentName) { }
    /**
     * Called to process the previewed document on host side after closing the Cmd-N dialog.
     *
     */
    async processDocForCmdnDialogClose() { }
    async requestLicenseDialog(template) {
        return {};
    }
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() { }
    /**
     * Gets the data from Photoshop required to build the host application JSON.
     *
     * @param category Category of presets that will be requested.
     * @param [useCachedData] Whether can return cached data.
     * @returns JSON representation of the data.
     */
    async getPresetJSON(category = DocumentTemplateCategoryTypes["a" /* default */].ALL, useCachedData) {
        return {};
    }
    /**
     * Reports the performance measurements.
     *
     * @param records Measurements to report.
     */
    reportPerformance(records) { }
    /**
     * Open a document with the specified file path.
     *
     * @param templateJSON
     * @param docName
     * @param showDialog
     * @returns A boolean value if the document openned successfully or not.
     */
    async createDocumentFromTemplate(templateJSON, docName, showDialog) {
        return false;
    }
    async deletePreset(presetName) { }
    async createPreset(templateJSON) { }
    /**
     * Indicates the host to open a new document with the provided document template.
     *
     * @param templateJSON Template used to create a new document.
     * @returns Whether the document opened successfully or not.
     */
    async openTemplate(templateJSON) {
        return false;
    }
    async openDocumentWithPath(filepath, pipMethod, isTemplate, ccLibElementRef) {
        return false;
    }
    /**
     * This is a wrapper for the stockController call to fetch and initialize templates.
     *
     * @param defaultAppSettings Host settings.
     * @param recentPresets List of recent presets & templates we got from the host.
     */
    getAndInitializeTemplates(defaultAppSettings, recentPresets) {
        this.userQuota > 0 &&
            StockController["c" /* default */].getAndInitializeTemplates(defaultAppSettings, recentPresets, this.appStorageController, this.isStockCollectionsEnabled);
    }
    /**
     * Refreshes the template data. It will only be swapped when the loading has finished.
     *
     * @param defaultAppSettings Host settings.
     * @param recentPresets List of recent presets & templates we got from the host.
     * @param recentsOnly If this is set to true, we just want to update the licensed templates, not all of the stock data.
     */
    updateTemplates(defaultAppSettings, recentPresets, recentsOnly = true) {
        // if we just want to refresh licensed template data, we call getAndInitializeTemplates to update licensed templates
        // and merge them with the existing stock data
        if (recentsOnly) {
            StockController["c" /* default */].getAndInitializeTemplates(defaultAppSettings, recentPresets, this.appStorageController, this.isStockCollectionsEnabled);
        }
        else {
            StockController["c" /* default */].loadAndCacheStockData(defaultAppSettings, recentPresets, this.appStorageController);
            if (this.isStockCollectionsEnabled) {
                StockController["c" /* default */].loadAndCacheStockCollectionsData(defaultAppSettings, recentPresets, this.appStorageController);
            }
        }
    }
    get serviceCode() {
        return Constants["e" /* CREATIVE_CLOUD */];
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/controllers/PresetCategorySections.ts
var PresetCategorySections = __webpack_require__("OVtD");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/MathUtils.ts + 1 modules
var MathUtils = __webpack_require__("AGvf");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Performance.ts
var Performance = __webpack_require__("pUl/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/ColorUtils.tsx + 1 modules
var ColorUtils = __webpack_require__("0mF0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/LibraryManager.ts
var LibraryManager = __webpack_require__("io8T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/UserModel.ts
var UserModel = __webpack_require__("sK9T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/UnitsUtils.ts
var UnitsUtils = __webpack_require__("Fr31");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/Photoshop.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* eslint @typescript-eslint/naming-convention: off */












/**
 * Photoshop Host UXP Interface.
 */
// TODO executeWhileModal: true will be deprecated soon, leave only modalBehavior later on
const EXECUTE_OPERATION_IN_MODAL = {
    modalBehavior: 'execute',
    executeWhileModal: true,
};
const WAIT_FOR_MODAL_TO_CLOSE = {
    modalBehavior: 'wait',
};
const PsPresetCategorySections = PresetCategorySections["a" /* PresetCategorySections */][HostIds["a" /* default */].PHXS].default;
class Photoshop_Photoshop extends ApplicationBase_ApplicationBase {
    constructor(appStorageController) {
        super(appStorageController);
        this.CANCEL_ERROR_CODE = 8007;
        // move the import here, so that it's only processed if Photoshop is instantiated.
        // otherwise, it throws errors for other hosts
        // eslint-disable-next-line @typescript-eslint/no-var-requires
        const photoshopAPI = __webpack_require__("vpAJ").photoshopAPI;
        const psAPI = photoshopAPI();
        this.photoshopAction = psAPI.action;
        this.photoshopCore = psAPI.core;
        // eslint-disable-next-line @typescript-eslint/no-var-requires
        const cdoHostAPI = __webpack_require__("ROBJ").cdoHostAPI;
        this.cdoHost = cdoHostAPI();
    }
    /**
     * Creates a 'get' command for Photoshop, requesting a property.
     *
     * @param propertyKey The name of the property to get.
     * @param options Options passed to the command.
     * @returns Get command object.
     */
    buildGetCommand(propertyKey, options = {}) {
        return Object.assign({
            _obj: 'get',
            _target: {
                _ref: [{ _property: propertyKey }, { _ref: 'application' }],
            },
        }, options);
    }
    /**
     * This method is needed for the color profiles as the profile has to be the encoding of the type.
     *
     * @param [str] The type.
     * @returns A number representing the converted osType.
     */
    OSTypeToNum(str) {
        if (!str || str.length < 4) {
            return 0;
        }
        if (str[0] === '$' && str.length === 5) {
            str = str.substr(1, 4);
        }
        return (str.charCodeAt(0) << 24) + (str.charCodeAt(1) << 16) + (str.charCodeAt(2) << 8) + str.charCodeAt(3);
    }
    /**
     * Get the current UI locale.
     *
     * @returns String containing the locale ID.
     */
    getLocale() {
        let modLocale = this._uxp.host.locale;
        if (!(modLocale in { en_US: 1, en_GB: 1 })) {
            if (modLocale.match(/en_??/)) {
                modLocale = 'en_US';
            }
        }
        return modLocale;
    }
    /**
     * Get basic config data from Photoshop.
     *
     * @returns JSON containing basic config data as provided by Photoshop.
     */
    async getFNFTConfigInfoJSON() {
        if (typeof this.photoshopCore === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const fnftConfigInfo = (await this.getAppProperty('$CXNc'));
        let configInfo = {};
        if (typeof fnftConfigInfo !== 'undefined') {
            try {
                configInfo =
                    typeof fnftConfigInfo.json === 'string' ? JSON.parse(fnftConfigInfo.json) : fnftConfigInfo.json;
            }
            catch (error) {
                this._logger.error('Failed to basic config data from Photoshop', error);
                this.photoshopCore.showAlert({ message: error });
            }
        }
        return configInfo;
    }
    /**
     * Get the list of most recently used (MRU) PS Presets.
     *
     * @returns JSON array containing the list of MRU presets.
     */
    async getRecentlyUsedPresetsJSON() {
        return await this.getAppProperty('newDocPresetMRUlist', {
            forFNFTDialog: true,
        });
    }
    /**
     * Get the list of PS Presets to include.
     *
     * @param category The category type to request.
     * @returns JSON array containing the presets.
     */
    async getPSPresetsJSON(category = DocumentTemplateCategoryTypes["a" /* default */].ALL) {
        // since every category may contain multiple sections, we need to request the preset data for each section
        // independently
        const mappedSections = PsPresetCategorySections[category].map(section => ({
            presetKind: section,
            forFNFTDialog: true,
        }));
        return await this.getAppProperty('newDocPresetJSON', mappedSections);
    }
    /**
     * Get the list of most recently used (MRU) Adobe Stock templates.
     *
     * @returns JSON array containing the list of MRU templates.
     */
    async getRecentlyUsedTemplatesJSON() {
        return await this.getAppProperty('recentlyUsedCCLibrariesTemplateElements');
    }
    /**
     * Build a dictionary of mode-specific color profiles.
     *
     * @returns Object containing all the color profiles.
     */
    async getColorProfileLists() {
        const profiles = ['$rStd', '$rInp', '$cSIn', '$cInp', '$gStd', '$gInp'];
        const args = profiles.map(profile => ({ profile: this.OSTypeToNum(profile) }));
        // execute the commands in batch
        const result = await this.getAppProperty('colorProfileList', args, false);
        let obj = undefined;
        if (result && result instanceof Array && result.length !== 0) {
            obj = {
                RGB: {
                    STANDARD: result[profiles.indexOf('$rStd')] || {},
                    OTHER: result[profiles.indexOf('$rInp')] || {},
                },
                CMYK: {
                    STANDARD: result[profiles.indexOf('$cSIn')] || {},
                    OTHER: result[profiles.indexOf('$cInp')] || {},
                },
                grayscale: {
                    STANDARD: result[profiles.indexOf('$gStd')] || {},
                    OTHER: result[profiles.indexOf('$gInp')] || {},
                },
            };
        }
        return obj;
    }
    /**
     * Get various app and user config information.
     *
     * @returns JSON containing the config info.
     */
    async getEnvironmentInfoJSON() {
        const w = {
            userTrackingEnabled: false,
            firstName: '',
            lastName: '',
            subscription: UserModel["a" /* SubscriptionStatus */].PAID,
            secondsLeftInTrial: 0,
            appStartClockTime: 0,
            countryCode: 'US',
            sessionGUID: '',
            accountType: '',
            displayMode: 'fnft',
            buttonInfo: {
                create_button_newdocs: {},
                create_button_open: {},
            },
        };
        try {
            const welcomeDesc = (await this.getAppProperty('$wlcm'));
            if (typeof welcomeDesc !== 'undefined' || JSON.stringify(welcomeDesc) !== '{}') {
                w.userTrackingEnabled = welcomeDesc.optin;
                w.firstName = welcomeDesc.first;
                w.lastName = welcomeDesc.last;
                // NOTE: These should be grabbed from fetchProfile json
                // w.subscription        = (welcomeDesc.getInteger(kentryStatusStr) === 1) ? SubscriptionStatus.TRIAL : SubscriptionStatus.PAID;
                // w.accountType         = welcomeDesc.getString(kaccountTypeStr);
                // w.secondsLeftInTrial  = (w.subscription === SubscriptionStatus.PAID) ? 0 : welcomeDesc.getLargeInteger(kleftStr);
                // w.appStartClockTime   = welcomeDesc.getLargeInteger(kstartTimeStr);
                // w.countryCode         = welcomeDesc.getString(kisoCountryCodeStr);
                // TODO - the old code was removing the hyphens for some reason, but HS uses it as-is
                // Clean this up when we sure it's not necessary
                // w.sessionGUID = welcomeDesc.sessionID.replace(/-/g, '');
                w.sessionGUID = welcomeDesc.sessionID;
                if (welcomeDesc.welcomeScreenOpen) {
                    w.displayMode = welcomeDesc.welcomeScreenOpen;
                }
                if (welcomeDesc.new) {
                    w.buttonInfo.create_button_newdocs.shortcut = welcomeDesc.new;
                }
                if (welcomeDesc.open) {
                    w.buttonInfo.create_button_open.shortcut = welcomeDesc.open;
                }
            }
        }
        catch (error) {
            this._logger.log('Photoshop: Property $wlcm could not be loaded', error);
        }
        w.colorProfileLists = await this.getColorProfileLists();
        w.appVersion = this._uxp.host.version;
        w.locale = this.getLocale();
        w.userGUID = await this.getDelegateGUID();
        w.radarVersion = '1.17.4';
        w.radarSessionGUID = Object(JsUtils["f" /* generateGUID */])();
        return w;
    }
    /**
     * Retrieve list of pixel scale factors that may be applied to new documents.
     *
     * @returns JSON string representation of {
     * pixelScaleFactorList: <Array>.<{
     * custom: boolean,
     * name: string,
     * value: number}>}.
     */
    async getPixelScaleFactorJSON() {
        const pixelScaleFactor = await this.getAppProperty('pixelScaleFactorList');
        return Array.isArray(pixelScaleFactor) ? pixelScaleFactor : [];
    }
    /**
     * Gets the application default settings.
     *
     * @returns The init settings of the app.
     */
    async getDefaultSettings() {
        return this.buildHostData(await this.getInitJSON());
    }
    /**
     * Gets the data from Photoshop required to build the host application JSON.
     *
     * @returns JSON representation of the data.
     */
    async getInitJSON() {
        // Retrieve all the JSON blocks we need from PS so that we can put all behind one async evalExtendScript call
        const supportJSONBlocks = {
            envInfo: await this.getEnvironmentInfoJSON(),
        };
        try {
            supportJSONBlocks.pixelScaleFactorList = await this.getPixelScaleFactorJSON();
            supportJSONBlocks.fnftConfigInfo = await this.getFNFTConfigInfoJSON();
        }
        catch (error) {
            this._logger.error('Error occurred while calling Init JSON', error);
        }
        return supportJSONBlocks;
    }
    /**
     * Gets the data from Photoshop required to build the host application JSON.
     *
     * @param category Category of presets that will be requested.
     * @returns JSON representation of the data.
     */
    async getPresetJSON(category = DocumentTemplateCategoryTypes["a" /* default */].ALL) {
        // Retrieve all the JSON blocks we need from PS so that we can put all behind one async evalExtendScript call
        let supportJSONBlocks = {};
        const commands = [];
        if (category === DocumentTemplateCategoryTypes["a" /* default */].RECENT || category === DocumentTemplateCategoryTypes["a" /* default */].ALL) {
            // get recent presets and templates
            commands.push({
                name: 'newDocPresetMRUlist',
                args: {
                    forFNFTDialog: true,
                },
                mapToField: 'mruPresets',
            }, {
                name: 'recentlyUsedCCLibrariesTemplateElements',
                args: {
                    forFNFTDialog: true,
                },
                mapToField: 'mruTemplates',
            });
        }
        // get all presets sections
        if (category !== DocumentTemplateCategoryTypes["a" /* default */].RECENT) {
            const mappedSections = PsPresetCategorySections[category].map(section => ({
                presetKind: section,
                forFNFTDialog: true,
            }));
            commands.push({
                name: 'newDocPresetJSON',
                args: mappedSections,
                mapToField: 'presets',
            });
        }
        supportJSONBlocks = await this.getBatchAppProperties(commands);
        return supportJSONBlocks;
    }
    /**
     * Returns the recents presets combined with the templates.
     *
     * @returns Recent presets.
     */
    async getRecentPresets() {
        const supportJSONBlocks = {};
        supportJSONBlocks.mruPresets = await this.getRecentlyUsedPresetsJSON();
        supportJSONBlocks.mruTemplates = await this.getRecentlyUsedTemplatesJSON();
        return supportJSONBlocks;
    }
    /**
     * Create a new Preset from the current preset/template.
     *
     * @param templateJSON  String containing the document parameters as JSON.
     * @returns The result of the createPreset operation.
     */
    async createPreset(templateJSON) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        // Note: include templateName in a 'name' parameter in the JSON
        const makeCommand = {
            descriptor: {
                _obj: 'make',
                null: {
                    _ref: 'newDocumentPreset',
                },
                newDocPresetJSON: templateJSON,
            },
            options: {
                // allows the make command to be recorded in the actions panel
                suppressPlayLevelIncrease: true,
            },
        };
        let result;
        try {
            result = await this.photoshopAction.batchPlay([makeCommand], {
                // reports the error if the system is out of disk space
                propagateErrorToDefaultHandler: true,
                ...EXECUTE_OPERATION_IN_MODAL,
            });
        }
        catch (error) {
            this._logger.error('Failed to create preset', error);
        }
        return (result && result.length && result[0]) || {};
    }
    /**
     * Deletes the current preset.
     *
     * @param presetName String containing the document name.
     * @returns The result of the delete operation (an empty object or an object containing an error message).
     */
    async deletePreset(presetName) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const deleteCommand = {
            descriptor: {
                _obj: 'delete',
                null: {
                    _ref: 'newDocumentPreset',
                    _name: presetName,
                },
            },
        };
        let result = undefined;
        try {
            result = await this.photoshopAction.batchPlay([deleteCommand], { ...EXECUTE_OPERATION_IN_MODAL });
        }
        catch (error) {
            this._logger.error('Failed to delete preset', error);
        }
        return result;
    }
    /**
     * Create a document from the host preset/template.
     *
     * @param templateJSON String containing the document parameters as JSON.
     * @param docName String containing the document name.
     * @param showDialog Boolean to open the native dialog or not.
     * @returns True of the document was created successfully, otherwise false.
     */
    async createDocumentFromTemplate(templateJSON, docName, showDialog) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const documentDescriptor = {
            forFNFTDialog: true,
            method: 'FNFT',
        };
        if (templateJSON) {
            documentDescriptor.presetJSON = templateJSON;
        }
        if (docName) {
            documentDescriptor.name = docName;
        }
        if (!docName && !templateJSON) {
            documentDescriptor.useDefault = true;
        }
        const makeCommand = {
            descriptor: {
                _obj: 'make',
                new: {
                    _obj: 'document',
                    _value: documentDescriptor,
                },
                forceRecording: true,
            },
            options: {
                dialogOptions: showDialog ? 'display' : 'dontDisplay',
                // allows the make command to be recorded in the actions panel
                suppressPlayLevelIncrease: true,
            },
        };
        let result = false;
        try {
            result = await this.photoshopAction.batchPlay([makeCommand], {
                // reports the error if the system is out of disk space
                propagateErrorToDefaultHandler: true,
                ...WAIT_FOR_MODAL_TO_CLOSE,
            });
        }
        catch (error) {
            this._logger.error('Failed to create document from template', error);
        }
        return result && result[0] && typeof result[0].documentID !== 'undefined';
    }
    /**
     * Indicates the host to open a new document with the provided document template.
     *
     * @param templateJSON Template used to create a new document.
     * @returns Whether the document opened successfully or not.
     */
    async openTemplate(templateJSON) {
        return this.openDocumentWithPath(templateJSON.url || '', 'ccx.create.new stocktemplate', true, templateJSON.elementRef);
    }
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() {
        var _a;
        return ((_a = this.cdoHost) === null || _a === void 0 ? void 0 : _a.environment) ? this.cdoHost.environment === this.PRODUCTION_TOKEN : undefined;
    }
    /**
     * Open a document with the specified file path.
     *
     * @param filepath Path to the requested file.
     * @param pipMethod PipMethod string.
     * @param [isTemplate] Whether the path represents a template or not.
     * @param [ccLibElementRef] CC Libraties Asset path.
     * @returns A boolean value if the document opened successfully or not.
     */
    async openDocumentWithPath(filepath, pipMethod, isTemplate, ccLibElementRef) {
        if (typeof this.photoshopAction === 'undefined' || typeof this.photoshopCore === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const openCommand = {
            descriptor: {
                _obj: 'open',
                null: { _path: filepath },
                forceRecording: true,
                overrideOpen: true,
                method: pipMethod,
            },
            options: {
                // allows the font resolution dialog to be displayed
                dialogOptions: 'display',
                // allows the make command to be recorded in the actions panel
                suppressPlayLevelIncrease: true,
            },
        };
        if (isTemplate && ccLibElementRef) {
            openCommand.descriptor.template = true;
            openCommand.descriptor.ccLibrariesElement = {
                elementReference: ccLibElementRef,
            };
        }
        let result = false;
        try {
            result = await this.photoshopAction.batchPlay([openCommand], {
                // reports the error if the system is out of disk space
                propagateErrorToDefaultHandler: true,
                ...WAIT_FOR_MODAL_TO_CLOSE,
            }, (err, descriptors, errors) => {
                if (typeof this.photoshopAction === 'undefined' || typeof this.photoshopCore === 'undefined') {
                    throw new Error('Photoshop API is not available');
                }
                if (descriptors && descriptors.message) {
                    // Note: the missing file will come back on descriptor, rather than errors
                    const deleteCommand = {
                        descriptor: {
                            _obj: 'delete',
                            _target: {
                                _ref: 'recentFiles',
                                name: filepath,
                            },
                            missing: true,
                        },
                    };
                    this.photoshopAction.batchPlay([deleteCommand], { ...WAIT_FOR_MODAL_TO_CLOSE });
                    this.photoshopCore.showAlert({
                        message: `Cannot open ${filepath} because it's missing`,
                    });
                }
            });
        }
        catch (error) {
            this._logger.error('Failed to open document with path', error);
        }
        return result && result[0] && typeof result[0].documentID !== 'undefined';
    }
    /**
     * Open the color picker dialog, seeded with the given color, and return a new color upon completion.
     *
     * @example openColorPicker({type:"RGBColor", red: 255, green: 0, blue:0}, "test")
     * @param color Color object used to initialize the picker.
     * @param context Localized string context for the color picker dialog.
     * @returns The color picked by the user or <code>null</code> no color was picked.
     */
    async openColorPicker(color, context) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const command = {
            descriptor: {
                _obj: 'showColorPicker',
                context,
                newDocPresetJSON: true,
                color: JSON.stringify(color),
            },
            options: {},
        };
        let result = null;
        try {
            result = await this.photoshopAction.batchPlay([command], { ...EXECUTE_OPERATION_IN_MODAL });
        }
        catch (error) {
            this._logger.error('Photoshop: failed to pick a new color', error);
            return null;
        }
        const colorDesc = result && result.length && result[0];
        // no color was picked by the user, so we return null
        if (!colorDesc || !colorDesc.value) {
            return null;
        }
        try {
            // typically the description also includes an RGBFloatColor, if this is the case, we reuse it as it can be
            // converted in the clientside instead of asking the host to do the conversion
            // @todo: reenable this with proper color management.
            // if (typeof colorDesc.RGBFloatColor === 'string') {
            //     return JSON.parse(colorDesc.RGBFloatColor);
            // } else
            if (typeof colorDesc.color === 'string') {
                return Object(ColorUtils["c" /* normalizeColorObject */])(JSON.parse(colorDesc.color));
            }
            else {
                return null;
            }
        }
        catch (error) {
            this._logger.error('Photoshop: failed to pick a new color', error);
            return null;
        }
    }
    /**
     * Given the a valid color JSON string, it returns its representation in the RGBColor space.
     *
     * @param color Color object to convert to RGB.
     * @returns The transformed color to the RGBColor type.
     */
    async convertColorToRGB(color) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const command = {
            descriptor: {
                _obj: 'convertColorToSpace',
                newDocPresetJSON: true,
                color: JSON.stringify(color),
                colorSpace: {
                    _enum: 'colorSpace',
                    _value: 'RGB',
                },
            },
            options: {},
        };
        let result = null;
        try {
            result = await this.photoshopAction.batchPlay([command], { ...EXECUTE_OPERATION_IN_MODAL });
        }
        catch (error) {
            this._logger.error('Photoshop: failed to convert color to RGB', error);
            return null;
        }
        const colorDesc = result && result.length && result[0];
        // we use a try/catch since the JSON.parse could fail
        try {
            return colorDesc && typeof colorDesc.color === 'string'
                ? Object(ColorUtils["c" /* normalizeColorObject */])(JSON.parse(colorDesc.color))
                : null;
        }
        catch (error) {
            return null;
        }
    }
    /**
     * Builds the host json, minus the preset info.
     *
     * @param supportData Object containing support data for populating the host object.
     * @returns Host data object.
     */
    buildHostData(supportData) {
        const phsxEnvInfo = (supportData && supportData.envInfo) || {};
        const userData = {
            hostID: HostIds["a" /* default */].PHXS,
            appVersion: phsxEnvInfo.appVersion,
            displayMode: phsxEnvInfo.displayMode,
            sessionGUID: phsxEnvInfo.sessionGUID,
            userTrackingEnabled: phsxEnvInfo.userTrackingEnabled,
            language: phsxEnvInfo.locale,
            countryCode: phsxEnvInfo.countryCode,
            adobeGUID: phsxEnvInfo.userGUID,
            accountStatus: phsxEnvInfo.subscription,
            accountType: phsxEnvInfo.accountType,
            radarSessionGUID: phsxEnvInfo.radarSessionGUID,
            radarVersion: phsxEnvInfo.radarVersion,
        };
        userData.fnftSettings = this.getFNFTData(supportData);
        userData.displayMode = 'fnft';
        return userData;
    }
    /**
     * Gets the File New From Template settings from the preferences.
     *
     * @param supportData Object containing support data for populating the fnft settings.
     * @returns JSON representation of the data.
     */
    getFNFTData(supportData = {}) {
        const configInfo = supportData.fnftConfigInfo || {};
        const envInfo = supportData.envInfo || {};
        const pixelScaleFactor = supportData.pixelScaleFactorList || [];
        // convert pixel ratios list into a slightly more view-friendly format
        const pixelAspectRatios = pixelScaleFactor.map((item, index) => ({
            label: item.name + (index === 0 ? '' : ` (${Object(MathUtils["f" /* roundDecimal */])(item.value, 2)})`),
            value: item.value,
        }));
        const settings = {
            // min/max size bounds in pixels for a document
            docSizeBounds: [300000, 300000],
            // units to be displayed in the size(w/h) dropdown
            units: [UnitsUtils["p" /* UnitId */].PIXELS, UnitsUtils["p" /* UnitId */].INCHES, UnitsUtils["p" /* UnitId */].CENTIMETERS, UnitsUtils["p" /* UnitId */].MILLIMETERS, UnitsUtils["p" /* UnitId */].POINTS, UnitsUtils["p" /* UnitId */].PICAS],
            // units to be displayed in the resolution dropdown
            resolutionUnits: [UnitsUtils["p" /* UnitId */].INCHES, UnitsUtils["p" /* UnitId */].CENTIMETERS],
            // color modes to be displayed in the color mode/bit depth dropdown
            // the mode parameter acts as both a setting and as a translation keystring
            colorModes: [
                { mode: 'bitmap', values: [1] },
                { mode: 'grayscale', values: [8, 16, 32] },
                { mode: 'RGB', values: [8, 16, 32] },
                { mode: 'CMYK', values: [8, 16] },
                { mode: 'Lab', values: [8, 16] },
            ],
            // background modes to be set in the background dropdown
            // value acts both a setting and as a translation keystring
            backgroundValues: ['white', 'black', 'background', 'transparent', 'custom'],
            // current background color of photoshop
            backgroundColor: Object(ColorUtils["c" /* normalizeColorObject */])(configInfo.backgroundColor),
            // conversion constant from points to picas from preferences
            pointsPerInch: configInfo.pointsPerInch,
            // default document name
            defaultDocumentName: configInfo.defaultNewDocName || null,
            // List of valid color profiles
            colorProfileLists: envInfo.colorProfileLists,
            // Information about current color settings, including workingProfile and policy
            colorSettings: configInfo.colorSettings || {},
            // Information about the user locale decimal
            userLocaleDecimal: configInfo.userLocaleDecimal || '.',
            // starting attributes
            defaultPresetSettings: configInfo.startingPreset || null,
            // list of valid pixel aspect ratios
            pixelAspectRatios: pixelAspectRatios,
            // can we use events to create docs from FNFT?
            psSupportsDocCreationViaCEPEvents: configInfo.supportsDocCreationViaCEPEvents || false,
            // configuration for 'print' resolution
            printPresetResolution: configInfo.printPresetResolution,
            // configuration for 'screen' resolution
            screenPresetResolution: configInfo.screenPresetResolution,
        };
        return settings;
    }
    /**
     * Reports the performance measurements.
     *
     * @param records Measurements to report.
     */
    reportPerformance(records) {
        if (typeof this.photoshopCore === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        if (records && records.length) {
            const measurements = records.filter(measurement => measurement.mode === 'measure');
            const highBeamData = measurements.reduce((acc, currentMeasurement) => {
                acc[currentMeasurement.id] = currentMeasurement.deltaT;
                return acc;
            }, {});
            this._logger.log('Performance summary', measurements.map(measurement => `${measurement.id}:${measurement.deltaT}`).join(','));
            this.photoshopCore.logHighbeamDataGroup('startup_performance', highBeamData);
            Performance["b" /* Performance */].reportToConsole(records);
        }
    }
    /**
     * Get a named application property from Photoshop.
     *
     * @param propertyKey The name of the property to get.
     * @param argsDesc Options passed to the command.
     * @param [mergeResults=true] If this is set to true, the function will return a single merged object. If it's false, the function returns the array as-is.
     * @returns The specified property from Photoshop, or undefined if not available.
     *
     */
    async getAppProperty(propertyKey, argsDesc = {}, mergeResults = true) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        if (propertyKey && propertyKey.length) {
            const commandArgs = Array.isArray(argsDesc) ? argsDesc : [argsDesc];
            const commands = commandArgs.map(item => this.buildGetCommand(propertyKey, item));
            try {
                const psGetResult = await this.photoshopAction.batchPlay(commands, { ...EXECUTE_OPERATION_IN_MODAL });
                if (psGetResult && psGetResult instanceof Array) {
                    const mappedResult = psGetResult.map(value => {
                        const data = value[propertyKey];
                        return typeof data === 'string' ? JSON.parse(data) : data;
                    });
                    // if result merging is enabled, return a single object
                    if (mergeResults) {
                        return mappedResult.reduce((acc, value) => Object(JsUtils["h" /* merge */])(acc, value)) || {};
                    }
                    // if merging is set to false, return the array of objects as-is
                    return mappedResult;
                }
            }
            catch (error) {
                this._logger.error('Failed to get Photoshop property', error);
            }
        }
        return mergeResults ? {} : [];
    }
    /**
     * This function will execute a group of PS commands in batch, and return an object map containing the processed
     * results.
     *
     * @param {Array<any>} commands A list of PS commands to play in batch.
     *
     * @returns {Promise<any>} The result of the command execution.
     */
    async getBatchAppProperties(commands) {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        let commandsToPlay = [];
        const commandNameMap = {};
        if (commands && commands.length) {
            commands.forEach(commandObject => {
                const { name, args, mapToField } = commandObject;
                const commandArgs = Array.isArray(args) ? args : [args];
                commandNameMap[name] = mapToField;
                commandsToPlay = commandsToPlay.concat(commandArgs.map(item => this.buildGetCommand(name, item)));
            });
            try {
                const psGetResult = await this.photoshopAction.batchPlay(commandsToPlay, {
                    ...EXECUTE_OPERATION_IN_MODAL,
                });
                if (psGetResult && psGetResult instanceof Array) {
                    return psGetResult.reduce((processedValues, value) => {
                        // the value will be in this format: { commandName: valueObject }, so we have to list the keys
                        // and see if it's mappable to anything from the commandNameMap
                        const keysToInclude = (value && Object.keys(value).filter(key => commandNameMap[key])) || [];
                        return keysToInclude.reduce((acc, key) => {
                            let data = value[key];
                            try {
                                data = typeof data === 'string' ? JSON.parse(data) : data;
                            }
                            catch (error) {
                                this._logger.error('Failed to parse JSON response', error);
                            }
                            const mapTo = commandNameMap[key];
                            const alreadyMapped = acc[mapTo];
                            acc[mapTo] = alreadyMapped ? Object(JsUtils["h" /* merge */])(alreadyMapped, data) : data;
                            return acc;
                        }, processedValues);
                    }, {});
                }
            }
            catch (error) {
                this._logger.error('Failed to get Photoshop properties in batch', error);
            }
        }
        return {};
    }
    /**
     * Determines whether Stock is enabled or not. This is done through a feature flag set at Photoshop level.
     *
     * @returns True if Stock integration is enabled, otherwise false.
     */
    async isStockEnabled() {
        if (typeof this.photoshopAction === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        const featureInfoCommand = {
            descriptor: {
                _obj: 'featureInfo',
                _target: {
                    _ref: 'application',
                },
                command: 'getFeatureActive',
                feature: 'UXPStock',
            },
            options: {},
        };
        // creating a document in a modal causes an exception, therefore changing this to wait
        let res = undefined;
        try {
            res = await this.photoshopAction.batchPlay([featureInfoCommand], {
                ...EXECUTE_OPERATION_IN_MODAL,
            });
        }
        catch (error) {
            this._logger.error('Failed to get feature flag', error);
        }
        return res && res.length > 0 ? res[0].active : false;
    }
    /**
     * Triggers the license check for the given template.
     *
     * @param template Template for which the license check should be performed.
     * @returns The response object of the license check operation.
     */
    async requestLicenseDialog(template) {
        if (typeof this.photoshopCore === 'undefined') {
            throw new Error('Photoshop API is not available');
        }
        let library = undefined;
        let result = undefined;
        try {
            library = await LibraryManager["d" /* default */].getTemplateLibrary();
        }
        catch (error) {
            this._logger.error('Failed to get template library', error);
        }
        if (library && library.id) {
            const skipQuotaCheck = typeof template.is_free !== 'undefined' ? template.is_free : template.price_prompt === 'free';
            const renditionDetails = {
                path: template.thumbnail_url,
                width: template.thumbnail_width,
                height: template.thumbnail_height,
            };
            const payloadString = JSON.stringify({
                contentId: template.id,
                renditionDetails,
                skipQuotaCheck,
                addToLibraryID: library.id,
                elementType: LibraryManager["c" /* TEMPLATE_ELEMENT_TYPE */],
            });
            try {
                result = await this.photoshopCore.licenseStockAsset({
                    payload: payloadString,
                    playLevel: 0,
                    eventLevel: 0,
                });
            }
            catch (error) {
                this._logger.error('Failed to license template', error);
            }
        }
        return result;
    }
    /**
     * Gets the service code from the host. This setting is used in the Ingest payload.
     */
    get serviceCode() {
        return (this.cdoHost && this.cdoHost.getServiceCode && this.cdoHost.getServiceCode()) || Constants["e" /* CREATIVE_CLOUD */];
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/mocks/empty-mock.json
var empty_mock = __webpack_require__("SWQv");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/Browser.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class Browser_Browser extends ApplicationBase_ApplicationBase {
    /**
     * Returns the user profile of the logged in user.
     *
     * @returns Representing the profile of the user.
     */
    async getUserProfile() {
        return Promise.resolve({
            AppProfile: {},
            LegacyProfile: {},
            AdditionalLegacyProfiles: {},
            RelationshipProfile: [],
            UserProfile: {
                userId: 'ADSDWDSAWE10A4C98A2@adobe.com',
                firstName: 'John',
                lastName: 'Doe',
                email: 'johndoe@adobe.com',
                countryCode: 'RO',
                displayName: 'John doe',
                accountType: 'type3',
            },
        });
    }
    /**
     * The SAP ID of the product.
     *
     * @returns String representing the id of the browser.
     */
    get id() {
        return HostIds["a" /* default */].PHXS;
    }
    /**
     * Application Name.
     *
     * @returns Application name.
     */
    get name() {
        return window.navigator.appName;
    }
    /**
     * Application Version.
     *
     * @returns Version of the application.
     */
    get version() {
        return window.navigator.appVersion;
    }
    /**
     * Gets the Preset JSON.
     *
     * @returns Version of the application.
     */
    async getPresetJSON() {
        // FMNEXT-1705 bundle shows that there is significant size occupied by files mocked, so we are setting this to empty string
        return Promise.resolve(empty_mock);
    }
    async getRecentPresets() {
        // FMNEXT-1705 bundle shows that there is significant size occupied by files mocked , so we are setting this to empty string
        return Promise.resolve(empty_mock);
    }
    async getDefaultSettings() {
        return Promise.resolve(empty_mock);
    }
    /**
     * Logs if a a preset was created.
     *
     * @param presetJSON Preset object converted to string.
     * @returns Empty object if the preset was created.
     */
    async createPreset(presetJSON) {
        this._logger.log('Browser: Create Preset', presetJSON);
        return Promise.resolve({});
    }
    /**
     * Logs if a preset was deleted.
     *
     * @param presetName Name of the deleted preset.
     */
    async deletePreset(presetName) {
        this._logger.log('Browser: Delete Preset', presetName);
    }
    /**
     * Logs if a document was created from a template.
     *
     * @param templateJSON Object representing the template that needs to be created.
     * @param docName Name of the template that needs to be created.
     * @param showDialog Boolean representing the status of the dialog.
     * @returns Boolean representing if the document loggs were printed in the console.
     */
    async createDocumentFromTemplate(templateJSON, docName, showDialog) {
        this._logger.log(`Browser: Document Name: ${docName}`);
        this._logger.log(`Browser: Document Properties: ${JSON.stringify(templateJSON, null, 4)}`);
        alert('Check the console :)');
        return true;
    }
    /**
     * Indicates the host to open a new document with the provided document template.
     *
     * @param templateJSON Template used to create a new document.
     * @returns Whether the document opened successfully or not.
     */
    async openTemplate(templateJSON) {
        return this.openDocumentWithPath(templateJSON.url || '', 'ccx.create.new stocktemplate', true, templateJSON.elementRef);
    }
    /**
     * Returns if analytics collection should be enabled by the host app.
     *
     * @param filepath Path to the document that needs to be open.
     * @param pipMethod Name o the pip method.
     * @param [isTemplate] Is tamplate or not.
     * @param [ccLibElementRef] Reference to CC libraries element.
     * @returns Boolean representing if analytics collection should be enabled by the host.
     */
    async openDocumentWithPath(filepath, pipMethod, isTemplate, ccLibElementRef) {
        this._logger.log('Browser: Path:', filepath);
        this._logger.log('Browser: Pip Method:', pipMethod);
        this._logger.log('Browser: isTemplate:', isTemplate);
        this._logger.log('Browser: CC Libraries Element Ref:', ccLibElementRef);
        alert('Check the console :)');
        return true;
    }
    /**
     * Returns if analytics collection should be enabled by the host app.
     *
     * @returns Boolean representing if analytics collection should be enabled by the host.
     */
    async isAnalyticsEnabled() {
        return false;
    }
    /**
     * Opens the host's color picker allowing the user to pick a new color.
     *
     * @param color Color object used to initialize the picker.
     * @param context Localized string context for the color picker dialog.
     * @returns Object representing the user picked color.
     */
    async openColorPicker(color, context) {
        return {
            red: 254,
            green: 127,
            blue: 156,
            type: 'RGBColor',
        };
    }
    /**
     * Given a valid color JSON string, it returns its representation in the RGBColor space.
     *
     * @param color Color object to convert to RGB.
     * @returns The transformed color to the RGBColor type.
     */
    async convertColorToRGB(color) {
        return {
            red: 254,
            green: 127,
            blue: 156,
            type: 'RGBColor',
        };
    }
    /**
     * Returns the current color theme of the user interface.
     *
     * @returns Theme of the user interface.
     */
    async getTheme() {
        return Promise.resolve('dark');
    }
    /**
     * Adds an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    addEventListener(eventName, callback) {
        if (eventName === 'cmdnDialogClose') {
            return;
        }
        window.addEventListener(eventName, callback);
    }
    /**
     * Removes an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    removeEventListener(eventName, callback) {
        if (eventName === 'cmdnDialogClose') {
            return;
        }
        window.removeEventListener(eventName, callback);
    }
    /**
     * Reports the performance measurements.
     *
     * @param records The name of the event.
     */
    reportPerformance(records) {
        Performance["b" /* Performance */].reportToConsole(records);
    }
    /**
     * Method that gets Templates and initialie them.
     *
     * @param defaultAppSettings Host settings.
     * @param recentPresets List of recent presets & templates we got from the host.
     */
    getAndInitializeTemplates(defaultAppSettings, recentPresets) {
        // FMNEXT-1705 bundle shows that there is significant size occupied by files mocked with tmplates so we are setting this to empty object
        StockController["c" /* default */].trigger(StockController["b" /* StockEvents */].STOCK_INITIALIZED, empty_mock);
    }
    /**
     * Refreshes the template data. It will only be swapped when the loading has finished.
     *
     * @param defaultAppSettings Host settings.
     * @param recentPresets List of recent presets & templates we got from the host.
     * @param recentsOnly If this is set to true, we just want to update the licensed templates, not all of the stock data.
     */
    updateTemplates(defaultAppSettings, recentPresets, recentsOnly) {
        // @todo: we may want to keep an internal object of 'saved' so we can test this in the browser.
        // FMNEXT-1705 bundle shows that there is significant size occupied by files mocked with tmplates so we are setting this to empty object
        StockController["c" /* default */].trigger(StockController["b" /* StockEvents */].STOCK_INITIALIZED, empty_mock);
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/IllustratorPresetModel.ts + 3 modules
var IllustratorPresetModel = __webpack_require__("YXYy");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/DroverApplicationBase.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const UNAVAILABLE_CDO_API_ERROR = 'CDO API is not available';
class DroverApplicationBase_DroverApplicationBase extends ApplicationBase_ApplicationBase {
    constructor(appStorageController) {
        super(appStorageController);
        // move the import here, so that it's only processed if Illustrator / InDesign is instantiated.
        // otherwise, it throws errors for other hosts
        // eslint-disable-next-line @typescript-eslint/no-var-requires
        const cdoHostAPI = __webpack_require__("ROBJ").cdoHostAPI;
        this.cdoHost = cdoHostAPI();
    }
    /**
     * Throws an error if CDO host API is not available.
     */
    checkCDOHostApiAvailability() {
        if (typeof this.cdoHost === 'undefined') {
            throw new Error(UNAVAILABLE_CDO_API_ERROR);
        }
    }
    /**
     * Adds an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    addEventListener(eventName, callback) {
        this.checkCDOHostApiAvailability();
        if (eventName === 'cmdnDialogClose') {
            this.cdoHost && this.cdoHost.addEventListener && this.cdoHost.addEventListener('cmdnDialogClose', callback);
            return;
        }
        super.addEventListener(eventName, callback);
    }
    /**
     * Removes an event listener to the host application.
     *
     * @param eventName The name of the event.
     * @param callback The event callback.
     */
    removeEventListener(eventName, callback) {
        this.checkCDOHostApiAvailability();
        if (eventName === 'cmdnDialogClose') {
            this.cdoHost &&
                this.cdoHost.removeEventListener &&
                this.cdoHost.removeEventListener('cmdnDialogClose', callback);
            return;
        }
        super.removeEventListener(eventName, callback);
    }
    /**
     * Get basic config data from Illustrator.
     *
     * @returns The basic config data as provided by Illustrator.
     */
    async getUserJSONData() {
        this.checkCDOHostApiAvailability();
        try {
            const userJSON = this.cdoHost && this.cdoHost.getCCXUserJSONData ? await this.cdoHost.getCCXUserJSONData('fnft') : '';
            this.settingsCache = JSON.parse(userJSON);
        }
        catch (error) {
            this._logger.error('Could not fetch host default settings: ', error);
            this.settingsCache = {};
        }
        return this.settingsCache;
    }
    /**
     * Returns the init settings of the app.
     *
     * @returns The init settings of the app.
     */
    async getDefaultSettings() {
        // reload data
        await this.getUserJSONData();
        // return all the values, except the templates
        const { templates, adobeid, adobeGUID, appVersion, displayMode, fnftEnabled, hostID, language, platform, sessionGUID, userTrackingEnabled, ...rest } = this.settingsCache;
        const hostData = {
            hostID: hostID,
            appVersion: appVersion,
            displayMode: displayMode,
            sessionGUID: sessionGUID,
            userTrackingEnabled: userTrackingEnabled,
            language: language,
            adobeGUID: adobeid || adobeGUID,
            fnftEnabled: fnftEnabled,
            platform: platform,
            fnftSettings: this.getFNFTData({ ...rest }),
        };
        return hostData;
    }
    /**
     * Gets the File New From Template settings from the preferences.
     *
     * @param supportData Object containing support data for populating the fnft settings.
     * @returns JSON representation of the data.
     */
    getFNFTData(supportData = {}) {
        const { fnftSettings, ...otherSupportData } = supportData;
        const { colorMode, decimalPoint, documentName, units, previewMode, previewModeEnabled, maxDocScale, rasterEffectSettings, ...otherFnftSettings } = fnftSettings || {};
        const processedColorMode = colorMode &&
            colorMode.map(value => ({
                mode: value.mode,
                values: IllustratorPresetModel["a" /* ColorModesValues */][value.mode] || IllustratorPresetModel["a" /* ColorModesValues */].RGB,
            }));
        const processedRasterEffectSettings = rasterEffectSettings &&
            rasterEffectSettings.map(value => ({
                mode: value.mode,
                value: IllustratorPresetModel["c" /* RasterEffectsValues */][value.mode] || IllustratorPresetModel["c" /* RasterEffectsValues */].Screen,
            }));
        const processedPreviewMode = previewMode &&
            previewMode.map(value => ({
                mode: value.mode,
                value: IllustratorPresetModel["b" /* PreviewModeValues */][value.mode] || IllustratorPresetModel["b" /* PreviewModeValues */].Default,
            }));
        return {
            ...otherSupportData,
            ...otherFnftSettings,
            colorModes: processedColorMode,
            previewMode: processedPreviewMode,
            rasterEffectSettings: processedRasterEffectSettings,
            userLocaleDecimal: decimalPoint || '.',
            defaultDocumentName: documentName,
            units: units,
            maxDocScale,
        };
    }
    /**
     * Gets the object structure that contains the list of presets based on response received from getCCXUserJSONData.
     *
     * @param settings The settings received from getCCXUserJSONData.
     * @param category Category of presets that will be requested.
     * @returns JSON representation of the data.
     */
    getStructuredPresetData(settings, category) {
        const presets = (settings && settings.templates) || [];
        const groupedPresets = presets.reduce((acc, preset) => {
            let category = acc[preset.template_category];
            if (!category) {
                category = [];
                acc[preset.template_category] = category;
            }
            category.push(preset);
            return acc;
        }, {});
        // we're mirroring the structure returned by the PS host here: {presets: {sections: {category1: [...], category2: [...]}}}
        const presetsList = { sections: {} };
        if (category === DocumentTemplateCategoryTypes["a" /* default */].ALL) {
            presetsList.sections = groupedPresets;
        }
        else if (groupedPresets[category]) {
            presetsList.sections = { [category]: groupedPresets[category] };
        }
        return presetsList;
    }
    /**
     * Gets the data from App required to build the host application JSON.
     *
     * @param category Category of presets that will be requested.
     * @param useCachedData
     * @returns JSON representation of the data.
     */
    async getPresetJSON(category = DocumentTemplateCategoryTypes["a" /* default */].ALL, useCachedData) {
        // TODO decide if we want to reload every time or not
        const allSettings = await this.getUserJSONData();
        const presetsList = this.getStructuredPresetData(allSettings, category);
        // Workaround to convert preset’s lastUsedTime of AI to local time
        const recentPresets = presetsList && presetsList.sections && presetsList.sections[DocumentTemplateCategoryTypes["a" /* default */].RECENT];
        if (recentPresets) {
            const offset = new Date().getTimezoneOffset() * 60000;
            recentPresets.map(preset => (preset.lastUsedTime += offset));
        }
        return { presets: presetsList };
    }
    updateCreateDocumentFields(presetJSON) {
        return presetJSON;
    }
    /**
     * Create a document from the host preset/template.
     *
     * @param templateJSON String containing the document parameters as JSON.
     * @param docName String containing the document name.
     * @param showDialog True if the host application should open the legacy create new dialog on top of Cmd+N.
     * @returns True of the document was created successfully, otherwise false.
     */
    async createDocumentFromTemplate(templateJSON, docName, showDialog) {
        this.checkCDOHostApiAvailability();
        // TODO on their side - return an error message when it fails
        let presetJSON = templateJSON ? JSON.parse(templateJSON) : {};
        if (docName) {
            presetJSON.documentName = docName;
        }
        presetJSON.showDialog = showDialog;
        presetJSON = this.updateCreateDocumentFields(presetJSON);
        let result = false;
        try {
            result =
                this.cdoHost &&
                    this.cdoHost.createDocument &&
                    (await this.cdoHost.createDocument(JSON.stringify(presetJSON)));
        }
        catch (error) {
            this._logger.error('Could not open preset: ', error);
            this.settingsCache = {};
        }
        return result;
    }
    /**
     * Indicates the host to open a new document with the provided document template.
     *
     * @param templateJSON Template used to create a new document.
     * @returns Whether the document opened successfully or not.
     */
    async openTemplate(templateJSON) {
        this.checkCDOHostApiAvailability();
        let result = false;
        try {
            result =
                this.cdoHost &&
                    this.cdoHost.createDocument &&
                    (await this.cdoHost.createDocument(JSON.stringify(templateJSON)));
        }
        catch (error) {
            this._logger.error('Could not open template: ', error);
            this.settingsCache = {};
        }
        return result;
    }
    /**
     * Triggers the license check for the given template.
     *
     * @param template Template for which the license check should be performed.
     * @returns The response object of the license check operation.
     */
    async requestLicenseDialog(template) {
        this.checkCDOHostApiAvailability();
        let library = undefined;
        let result = undefined;
        try {
            library = await LibraryManager["d" /* default */].getTemplateLibrary();
        }
        catch (error) {
            this._logger.error('Failed to get template library', error);
        }
        if (library && library.id) {
            const skipQuotaCheck = typeof template.is_free !== 'undefined' ? template.is_free : template.price_prompt === 'free';
            const renditionDetails = {
                path: template.thumbnail_url,
            };
            const payloadString = JSON.stringify({
                elementType: LibraryManager["c" /* TEMPLATE_ELEMENT_TYPE */],
                contentId: template.id,
                skipQuotaCheck,
                addToLibraryID: library.id,
                renditionDetails,
            });
            try {
                result =
                    this.cdoHost && this.cdoHost.licenseStockAsset
                        ? await this.cdoHost.licenseStockAsset(payloadString)
                        : -1;
            }
            catch (error) {
                this._logger.error('Failed to license template', error);
            }
        }
        return result;
    }
    /**
     * Reports the performance measurements.
     *
     * @param records Measurements to report.
     */
    reportPerformance(records) {
        if (records && records.length) {
            const measurements = records.filter(measurement => measurement.mode === 'measure');
            const highBeamData = measurements.reduce((acc, currentMeasurement) => {
                acc[currentMeasurement.id] = currentMeasurement.deltaT;
                return acc;
            }, {});
            Performance["b" /* Performance */].reportToConsole(records);
            try {
                this.cdoHost &&
                    this.cdoHost.logHighbeamDataGroup &&
                    this.cdoHost.logHighbeamDataGroup('startup_performance', highBeamData);
            }
            catch (error) {
                this._logger.error('Failed to log highbeam data group', error);
            }
        }
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/Illustrator.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

class Illustrator_Illustrator extends DroverApplicationBase_DroverApplicationBase {
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() {
        var _a, _b;
        return ((_a = this.cdoHost) === null || _a === void 0 ? void 0 : _a.environment) ? ((_b = this.cdoHost) === null || _b === void 0 ? void 0 : _b.environment) === this.PRODUCTION_TOKEN : undefined;
    }
    /**
     * Determines whether Stock Collections is enabled.
     *
     * @returns Stock Collections are enabled for Ai.
     */
    get isStockCollectionsEnabled() {
        return true;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/InDesign.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class InDesign_InDesign extends DroverApplicationBase_DroverApplicationBase {
    constructor(appStorageController) {
        super(appStorageController);
        this.updateCreateDocumentFields = this.updateCreateDocumentFields.bind(this);
    }
    /**
     * Deletes the current preset.
     *
     * @param presetName String containing the document name.
     * @returns The result of the delete operation (an empty object or an object containing an error message).
     */
    async deletePreset(presetName) {
        this.checkCDOHostApiAvailability();
        let result = false;
        try {
            result = await this.cdoHost.deletePreset(presetName);
        }
        catch (error) {
            this._logger.error('Could not delete preset: ', error);
        }
        return result;
    }
    /**
     * Create a new Preset from the current preset.
     *
     * @param presetJSON  String containing the document parameters as JSON.
     * @returns The result of the createPreset operation.
     */
    async createPreset(presetJSON) {
        this.checkCDOHostApiAvailability();
        let result = false;
        try {
            result = await this.cdoHost.savePreset(presetJSON);
        }
        catch (error) {
            this._logger.error('Failed to create preset', error);
        }
        return result;
    }
    updateCreateDocumentFields(presetJSON) {
        presetJSON.actionTrigger = 'actionButton';
        return presetJSON;
    }
    /**
     * Gets the data from InDesign required to build the host application JSON.
     *
     * @param category Category of presets that will be requested.
     * @param [useCachedData] Whether can return cached data.
     * @returns JSON representation of the data.
     */
    async getPresetJSON(category = DocumentTemplateCategoryTypes["a" /* default */].ALL, useCachedData) {
        // TODO decide if we want to reload every time or not
        const allSettings = useCachedData && this.settingsCache ? this.settingsCache : await this.getUserJSONData();
        const presetsList = this.getStructuredPresetData(allSettings, category);
        return { presets: presetsList };
    }
    async getLocaleFeatureFlag() {
        const allSettings = await this.getUserJSONData();
        const featureFlag = allSettings &&
            allSettings.featureSet &&
            Object.keys(FeatureFlagController["d" /* RegionFeatureFlagMapping */]).filter(key => FeatureFlagController["d" /* RegionFeatureFlagMapping */][key] === allSettings.featureSet);
        return featureFlag && featureFlag[0] && FeatureFlagController["b" /* FeatureFlags */][featureFlag[0]];
    }
    /**
     * Get if PreviewMode is enabled or not.
     * Usecase: previewModeEnabled from fnft should be use for the initial state of the checkbox.
     * Use getIsPreviewEnabled after every updateIsPreviewEnabled.
     *
     * @returns A bool value in a promise, representing the state of previewModeEnabled flag.
     */
    async getIsPreviewEnabled() {
        this.checkCDOHostApiAvailability();
        let result = false;
        try {
            result = await this.cdoHost.getIsPreviewEnabled('');
        }
        catch (error) {
            this._logger.error('Failed to get preview status', error);
        }
        return result;
    }
    /**
     * Expects a boolean representing if preview mode is enabled or not.
     * Set the value for preview mode, this is persistent between cmd+n session.
     *
     * @param previewModeEnabled Boolean representing preview mode status.
     */
    async updateIsPreviewEnabled(previewModeEnabled) {
        this.checkCDOHostApiAvailability();
        const convertedPreviewMode = previewModeEnabled ? 1 : 0;
        try {
            await this.cdoHost.setIsPreviewEnabled(convertedPreviewMode);
        }
        catch (error) {
            this._logger.error('Failed to set preview status', error);
        }
    }
    /**
     * Updates document as per new Json data, expects stringified json data for preset.
     *
     * @param presetJSON String containing the document parameters as JSON.
     * @param documentName The name of the previewed document.
     */
    async updatePreviewDocSettings(presetJSON, documentName) {
        this.checkCDOHostApiAvailability();
        try {
            // TODO on their side - return an error message when it fails
            const preset = presetJSON ? JSON.parse(presetJSON) : {};
            if (documentName) {
                preset.documentName = documentName;
            }
            preset.actionTrigger = 'preview';
            this.cdoHost.updatePreviewDocSettings &&
                (await this.cdoHost.updatePreviewDocSettings(JSON.stringify(preset)));
        }
        catch (error) {
            this._logger.error('Failed to update preview document', error);
        }
    }
    /**
     * Updates document as per new Json data, expects stringified json data for preset.
     *
     */
    async processDocForCmdnDialogClose() {
        this.checkCDOHostApiAvailability();
        try {
            this.cdoHost.processDocForCmdnDialogClose && (await this.cdoHost.processDocForCmdnDialogClose());
        }
        catch (error) {
            this._logger.error('Failed to process document for Cmd-N dialog close', error);
        }
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const Apps = {
    Photoshop: Photoshop_Photoshop,
    Browser: Browser_Browser,
    Illustrator: Illustrator_Illustrator,
    InDesign: InDesign_InDesign,
};
const hostName = Object(PlatformUtils["d" /* getHostName */])();
const HostType = Apps[hostName] ? Apps[hostName] : Browser_Browser;
const host = new HostType();
/* harmony default export */ var hosts = __webpack_exports__["a"] = (host);


/***/ }),

/***/ "Ztfv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

var METADATA_KEY = __webpack_require__("xfSm");

function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {
  var metadataKey = METADATA_KEY.TAGGED;

  _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);
}

exports.tagParameter = tagParameter;

function tagProperty(annotationTarget, propertyName, metadata) {
  var metadataKey = METADATA_KEY.TAGGED_PROP;

  _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);
}

exports.tagProperty = tagProperty;

function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {
  var paramsOrPropertiesMetadata = {};
  var isParameterDecorator = typeof parameterIndex === "number";
  var key = parameterIndex !== undefined && isParameterDecorator ? parameterIndex.toString() : propertyName;

  if (isParameterDecorator && propertyName !== undefined) {
    throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);
  }

  if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {
    paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);
  }

  var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];

  if (!Array.isArray(paramOrPropertyMetadata)) {
    paramOrPropertyMetadata = [];
  } else {
    for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {
      var m = paramOrPropertyMetadata_1[_i];

      if (m.key === metadata.key) {
        throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m.key.toString());
      }
    }
  }

  paramOrPropertyMetadata.push(metadata);
  paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;
  Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);
}

function _decorate(decorators, target) {
  Reflect.decorate(decorators, target);
}

function _param(paramIndex, decorator) {
  return function (target, key) {
    decorator(target, key, paramIndex);
  };
}

function decorate(decorator, target, parameterIndex) {
  if (typeof parameterIndex === "number") {
    _decorate([_param(parameterIndex, decorator)], target);
  } else if (typeof parameterIndex === "string") {
    Reflect.decorate([decorator], target, parameterIndex);
  } else {
    _decorate([decorator], target);
  }
}

exports.decorate = decorate;

/***/ }),

/***/ "ZzCi":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function named(name) {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);

    if (typeof index === "number") {
      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    } else {
      decorator_utils_1.tagProperty(target, targetKey, metadata);
    }
  };
}

exports.named = named;

/***/ }),

/***/ "aOLx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = InputGroup;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["quiet", "focused", "invalid", "disabled", "className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("aMbm");
}

if (true) __webpack_require__("D3Tw");
if (true) __webpack_require__("UUw0");
if (true) __webpack_require__("y2s2");
if (true) __webpack_require__("HEz+");

function InputGroup(_ref) {
  let {
    quiet,
    focused,
    invalid,
    disabled,
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("div", _extends({
    "aria-disabled": disabled,
    "aria-invalid": invalid,
    className: (0, _classnames.default)('spectrum-InputGroup', {
      'spectrum-InputGroup--quiet': quiet,
      'is-focused': focused,
      'is-invalid': invalid,
      'is-disabled': disabled
    }, className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

/***/ }),

/***/ "aPG5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var exceptions_1 = __webpack_require__("qK8v");

var serialization_1 = __webpack_require__("ujMp");

var instantiation_1 = __webpack_require__("cSJO");

var invokeFactory = function (factoryType, serviceIdentifier, fn) {
  try {
    return fn();
  } catch (error) {
    if (exceptions_1.isStackOverflowExeption(error)) {
      throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));
    } else {
      throw error;
    }
  }
};

var _resolveRequest = function (requestScope) {
  return function (request) {
    request.parentContext.setCurrentRequest(request);
    var bindings = request.bindings;
    var childRequests = request.childRequests;
    var targetIsAnArray = request.target && request.target.isArray();
    var targetParentIsNotAnArray = !request.parentRequest || !request.parentRequest.target || !request.target || !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);

    if (targetIsAnArray && targetParentIsNotAnArray) {
      return childRequests.map(function (childRequest) {
        var _f = _resolveRequest(requestScope);

        return _f(childRequest);
      });
    } else {
      var result = null;

      if (request.target.isOptional() && bindings.length === 0) {
        return undefined;
      }

      var binding_1 = bindings[0];
      var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;
      var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;

      if (isSingleton && binding_1.activated) {
        return binding_1.cache;
      }

      if (isRequestSingleton && requestScope !== null && requestScope.has(binding_1.id)) {
        return requestScope.get(binding_1.id);
      }

      if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {
        result = binding_1.cache;
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {
        result = binding_1.cache;
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {
        result = binding_1.implementationType;
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {
        result = invokeFactory("toDynamicValue", binding_1.serviceIdentifier, function () {
          return binding_1.dynamicValue(request.parentContext);
        });
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {
        result = invokeFactory("toFactory", binding_1.serviceIdentifier, function () {
          return binding_1.factory(request.parentContext);
        });
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {
        result = invokeFactory("toProvider", binding_1.serviceIdentifier, function () {
          return binding_1.provider(request.parentContext);
        });
      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {
        result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));
      } else {
        var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);
        throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifier);
      }

      if (typeof binding_1.onActivation === "function") {
        result = binding_1.onActivation(request.parentContext, result);
      }

      if (isSingleton) {
        binding_1.cache = result;
        binding_1.activated = true;
      }

      if (isRequestSingleton && requestScope !== null && !requestScope.has(binding_1.id)) {
        requestScope.set(binding_1.id, result);
      }

      return result;
    }
  };
};

function resolve(context) {
  var _f = _resolveRequest(context.plan.rootRequest.requestScope);

  return _f(context.plan.rootRequest);
}

exports.resolve = resolve;

/***/ }),

/***/ "abot":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ StockEvents; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ LicenseStatus; });

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateCategoryTypes.ts
var DocumentTemplateCategoryTypes = __webpack_require__("cIFk");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/interfaces/DocumentTemplateKind.ts
var DocumentTemplateKind = __webpack_require__("0B1G");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Performance.ts
var Performance = __webpack_require__("pUl/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockUtil.ts + 1 modules
var StockUtil = __webpack_require__("iNS0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/LibraryManager.ts
var LibraryManager = __webpack_require__("io8T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/FileSystem.ts + 1 modules
var FileSystem = __webpack_require__("D4pm");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockObservable.ts
var StockObservable = __webpack_require__("u/No");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/VulcanAPI.ts
var VulcanAPI = __webpack_require__("2Sv4");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockConstants.ts
var StockConstants = __webpack_require__("qAfu");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/CmdnError.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2023 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CmdnErrorCodes;
(function (CmdnErrorCodes) {
    // Stock loading error codes
    CmdnErrorCodes[CmdnErrorCodes["STOCK_UNKNOWN_ERROR"] = 5000] = "STOCK_UNKNOWN_ERROR";
    // Stock READ
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_MISSING"] = 5001] = "STOCK_READ_API_FILE_MISSING";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_MISSING_PERMISSIONS"] = 5002] = "STOCK_READ_API_FILE_MISSING_PERMISSIONS";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_PARSE_ERROR"] = 5003] = "STOCK_READ_API_FILE_PARSE_ERROR";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_MISSING_USER_ENTRY"] = 5004] = "STOCK_READ_API_FILE_MISSING_USER_ENTRY";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_PARAMETER_MISMATCH"] = 5005] = "STOCK_READ_API_FILE_PARAMETER_MISMATCH";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_MISSING_PATH"] = 5006] = "STOCK_READ_API_FILE_MISSING_PATH";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_MISSING_FILE"] = 5007] = "STOCK_READ_API_MISSING_FILE";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_PARSE_ERROR"] = 5008] = "STOCK_READ_API_PARSE_ERROR";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_MULTIPLE_USER_ENTRIES"] = 5009] = "STOCK_READ_API_FILE_MULTIPLE_USER_ENTRIES";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_READ_API_FILE_EMPTY_PATH"] = 5010] = "STOCK_READ_API_FILE_EMPTY_PATH";
    // Stock WRITE
    CmdnErrorCodes[CmdnErrorCodes["STOCK_WRITE_API_FILE_EMPTY_PATH"] = 5011] = "STOCK_WRITE_API_FILE_EMPTY_PATH";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_WRITE_API_FILE_WRITE_ERROR"] = 5012] = "STOCK_WRITE_API_FILE_WRITE_ERROR";
    // Vulcan Read
    CmdnErrorCodes[CmdnErrorCodes["STOCK_VULCAN_READ_FILE_MISSING_PATH"] = 6001] = "STOCK_VULCAN_READ_FILE_MISSING_PATH";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_VULCAN_READ_MISSING_FILE"] = 6002] = "STOCK_VULCAN_READ_MISSING_FILE";
    CmdnErrorCodes[CmdnErrorCodes["STOCK_VULCAN_READ_PARSE_ERROR"] = 6003] = "STOCK_VULCAN_READ_PARSE_ERROR";
})(CmdnErrorCodes || (CmdnErrorCodes = {}));
const CmdnErrorTypes = {
    STOCK: 'Stock',
};
class CmdnError extends Error {
    constructor(description, type, code, extra = '', errorResponse) {
        super(description);
        this.desc = description;
        this.type = type;
        this.code = code;
        this.extra = extra;
        this.errorResponse = errorResponse;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/IngestUtil.ts
var IngestUtil = __webpack_require__("nrFN");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/BasicStockLoader.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2023 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








class BasicStockLoader_BasicStockLoader {
    constructor(vulcan, analytics) {
        this.stockTimeoutHandler = null;
        this._vulcan = vulcan;
        this._analytics = analytics;
        this._logger = logger_default.a.get('BasicStockLoader');
    }
    /**
     * Validate services and user.
     *
     * @param adobeGUID Adobe GUID.
     * @param callback Callback method.
     */
    validateServicesAndUser(adobeGUID, callback) {
        if (!this._vulcan) {
            return;
        }
        if (!(adobeGUID === null || adobeGUID === void 0 ? void 0 : adobeGUID.length)) {
            this._logger.log('No user. Likely FRL or signed out');
            // Offline or FRL case.
            callback(null, {});
        }
    }
    async handleData(params) {
        var _a, _b, _c;
        const responseData = params.data;
        const onFinish = params.onFinish;
        const outputPayload = params.outputPayload || {};
        const logMessage = params.data.isReadByFileAccessorAPI
            ? `Parsing Stock templates content from path: ${responseData.path}`
            : `Receiving ${StockConstants["i" /* VULCAN_STOCK_TEMPLATE_RESPONSE */]} [${responseData.requestId}], path is ${responseData.path}`;
        responseData && this._logger.log(logMessage);
        let error;
        // validate
        if ((responseData === null || responseData === void 0 ? void 0 : responseData.requestId) === params.uuid) {
            // Clear timeout only if the response has the expected requestid.
            (_a = params.resetTimeout) === null || _a === void 0 ? void 0 : _a.call(params, false);
            if ((_b = responseData.path) === null || _b === void 0 ? void 0 : _b.length) {
                try {
                    // it's possible that CCXP returned a path that no longer exists.
                    // We consider this an error case and remove the Vulcan handler
                    if (await FileSystem["a" /* default */].pathExists(responseData.path, true)) {
                        // read in the locally written JSON data from Adobe Stock
                        // and adjust image paths to the local file system
                        const stockJSON = await FileSystem["a" /* default */].readJson(responseData.path);
                        if ((_c = stockJSON === null || stockJSON === void 0 ? void 0 : stockJSON.templates) === null || _c === void 0 ? void 0 : _c.length) {
                            const path = Object(PlatformUtils["a" /* getFilePath */])(responseData.path);
                            const parentFolder = path.substring(0, path.lastIndexOf('/'));
                            for (let i = 0; i < stockJSON.templates.length; i++) {
                                const template = stockJSON.templates[i];
                                if (template.thumbnail_url) {
                                    template.thumbnail_url =
                                        parentFolder && `${parentFolder}/${template.thumbnail_url}`;
                                }
                                if (template.previews) {
                                    for (let j = 0; j < template.previews.length; j++) {
                                        const preview = template.previews[j];
                                        if (preview && preview.url) {
                                            preview.url = parentFolder && `${parentFolder}/${preview.url}`;
                                        }
                                    }
                                }
                            }
                        }
                        // set the `path` property to the JSON `fileName`
                        outputPayload.path = params.data.fileName;
                        onFinish === null || onFinish === void 0 ? void 0 : onFinish({
                            data: stockJSON,
                            responseHandlerRef: this,
                            uuid: params.uuid,
                            outputPayload: outputPayload,
                        });
                    }
                    else {
                        // set the `path` property to the JSON `responseData.path`
                        outputPayload.path = responseData.path;
                        error = new CmdnError('Path does not exist', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_VULCAN_READ_MISSING_FILE, { path: responseData.path });
                    }
                }
                catch (e) {
                    error = new CmdnError('Exception while reading and parsing file', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_VULCAN_READ_PARSE_ERROR, e);
                }
            }
            else {
                error = new CmdnError('Stock path is missing', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_VULCAN_READ_FILE_MISSING_PATH, {
                    path: responseData.path,
                    responseData: JSON.stringify(responseData),
                });
            }
        }
        error && (onFinish === null || onFinish === void 0 ? void 0 : onFinish({ data: [], error, responseHandlerRef: this, outputPayload }));
    }
    reportPerformance(startTimestamp) {
        // TODO - report this to performance somehow
        const durationInMilliSec = Date.now() - startTimestamp;
        this._logger.log(`It costs ${durationInMilliSec}ms to get the stock response from CCXProcess.`);
    }
    errorHandler(error) {
        var _a;
        if (error) {
            let message = '';
            if (typeof error === 'object') {
                if (error.errorResponse && error.errorResponse instanceof Error) {
                    message = `${error.desc} : ${error.errorResponse.message}`;
                }
                else
                    message = error.desc;
            }
            else if (typeof error === 'string') {
                message = error;
            }
            this._logger.error(message);
            // post the error to Ingest as well
            (_a = this._analytics) === null || _a === void 0 ? void 0 : _a.logError(IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD, error);
        }
    }
    logReadEvent(payload) {
        var _a;
        const eventData = {
            'event.value': payload['status'],
            'event.type': payload['type'],
            'event.subtype': payload['subtype'],
        };
        (_a = this._analytics) === null || _a === void 0 ? void 0 : _a.logMiscellaneousEvent(eventData);
    }
    baseFinishHandler(startTimestamp, data, callback, error, responseHandlerRef) {
        this.reportPerformance(startTimestamp);
        // this is the connection to the StockController
        callback === null || callback === void 0 ? void 0 : callback(data);
        // handle errors, if any
        this.errorHandler(error);
    }
    /**
     * Get template data from the Adobe Stock service.
     *
     * @param hostData Host data passed from the application.
     * @param callback Callback method.
     */
    async fetchStockData(hostData, callback, requestId) {
        var _a, _b;
        this.validateServicesAndUser(hostData.adobeGUID, callback);
        const self = this;
        let timeoutHandler;
        const startTimestamp = Date.now();
        const onFinish = (params) => {
            var _a;
            this.baseFinishHandler(startTimestamp, params.data, callback, params.error);
            // clear IPC listeners
            params.responseHandlerRef && ((_a = this._vulcan) === null || _a === void 0 ? void 0 : _a.off(StockConstants["i" /* VULCAN_STOCK_TEMPLATE_RESPONSE */], params.responseHandlerRef));
            const payload = {
                type: 'vulcan-read',
                subtype: IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD,
                status: (params === null || params === void 0 ? void 0 : params.error) ? 'failed' : 'success',
            };
            this.logReadEvent(payload);
        };
        const resetTimeout = setNewTimeout => {
            self.stockTimeoutHandler && clearTimeout(self.stockTimeoutHandler);
            self.stockTimeoutHandler = setNewTimeout ? setTimeout(timeoutHandler, StockConstants["g" /* STOCK_RESPONSE_TIMEOUT */]) : undefined;
        };
        // use the same ID if it was provided, or generate a new one
        const uuid = requestId || Object(JsUtils["f" /* generateGUID */])();
        (_a = this._vulcan) === null || _a === void 0 ? void 0 : _a.on(StockConstants["i" /* VULCAN_STOCK_TEMPLATE_RESPONSE */], (data) => {
            this.handleData({ data, uuid, onFinish, resetTimeout });
        });
        // Send Stock request
        const stockParams = {
            productCode: hostData.hostID,
            productVersion: hostData.appVersion,
            productLanguage: hostData.language,
            countryCode: hostData.countryCode,
        };
        if (stockParams.subscriptionStatus === 'trial') {
            stockParams.trialEndDTS = Object(JsUtils["g" /* getTrialEndDate */])(hostData.secondsLeftInTrial || 0, false);
        }
        const params = {
            params: stockParams,
            requestId: uuid,
            userTrackingEnabled: hostData.userTrackingEnabled,
        };
        const payload = {
            type: StockConstants["h" /* VULCAN_STOCK_TEMPLATE_REQUEST */],
            target: StockConstants["d" /* CCXP_VULCAN_SPECIFIER */],
            data: params,
        };
        (_b = this._vulcan) === null || _b === void 0 ? void 0 : _b.dispatch(payload);
        this._logger.log(`Sending ${StockConstants["h" /* VULCAN_STOCK_TEMPLATE_REQUEST */]} [${uuid}]`);
        let relaunched = false;
        // Set timeout
        timeoutHandler = () => {
            var _a;
            // Check and launch CCXProcess
            if (!relaunched) {
                relaunched = true;
                StockUtil["b" /* default */].launchCCXProcess();
                (_a = this._vulcan) === null || _a === void 0 ? void 0 : _a.dispatch(payload);
                resetTimeout(true);
                return;
            }
            // TODO - double check that this scenario works properly. In theory the response handler that I deleted would just call onFinish again.
            onFinish({ data: [], error: 'Request to get stock response from CCX Process timed out' });
        };
        /* Make sure to clear the timeout reference in case of multiple requests */
        resetTimeout(true);
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/FileStockLoader.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2023 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








const prepareUserEntryDataForErrors = data => {
    return data.map(([key, value]) => {
        var _a, _b, _c, _d;
        const entry = value;
        return {
            params: {
                productCode: (_a = entry.params) === null || _a === void 0 ? void 0 : _a.productCode,
                productVersion: (_b = entry.params) === null || _b === void 0 ? void 0 : _b.productVersion,
                productLanguage: (_c = entry.params) === null || _c === void 0 ? void 0 : _c.productLanguage,
                countryCode: (_d = entry.params) === null || _d === void 0 ? void 0 : _d.countryCode,
            },
        };
    });
};
class FileStockLoader_FileStockLoader extends BasicStockLoader_BasicStockLoader {
    constructor(userId, hostId, locale, isStage, analytics) {
        super(undefined, analytics);
        this.userId = userId;
        this.hostId = hostId;
        this.locale = locale;
        this.isStage = isStage;
        this._logger = logger_default.a.get('FileStockLoader');
    }
    /**
     * Validate services and user.
     *
     * @param adobeGUID Adobe GUID.
     * @param callback Callback method.
     */
    validateServicesAndUser(adobeGUID, callback) {
        if (!(adobeGUID === null || adobeGUID === void 0 ? void 0 : adobeGUID.length)) {
            this._logger.log('No user. Likely FRL or signed out');
            // Offline or FRL case.
            callback(null, {});
        }
    }
    async writeCCXPResponse(params) {
        var _a, _b, _c;
        let error;
        const requestId = params.uuid || Object(JsUtils["f" /* generateGUID */])();
        const appVersion = (_b = (_a = params.outputPayload) === null || _a === void 0 ? void 0 : _a.params) === null || _b === void 0 ? void 0 : _b.productVersion;
        const outputPath = StockUtil["b" /* default */].getOutputFilePath(params.stockFolderPath, requestId, this.isStage, this.hostId, appVersion, this.locale);
        const outputPayload = params.outputPayload || {};
        const errorPayload = params.errorPayload;
        // TODO - check if it's possible to determine how full the output folder is, and only write there if it's not too large
        // Possible risk here is to fill up the disk space if CCXP doesn't consume the output
        if (outputPath) {
            const payload = {
                ...outputPayload,
                timestamp: new Date().toISOString(),
            };
            if (errorPayload) {
                const errorDesc = typeof errorPayload === 'string' ? errorPayload : errorPayload.desc;
                let extra = ((_c = errorPayload.extra) === null || _c === void 0 ? void 0 : _c.message) || errorPayload.extra;
                extra = typeof extra !== 'string' ? JSON.stringify(extra) : extra;
                const underlyingError = typeof errorPayload === 'object'
                    ? extra.substring(0, 1024)
                    : typeof errorPayload.extra === 'string'
                        ? errorPayload.extra
                        : undefined;
                payload.error = {
                    code: errorPayload.code || CmdnErrorCodes.STOCK_UNKNOWN_ERROR,
                    description: errorDesc || 'Unknown Error',
                    ...(underlyingError ? { underlyingError: underlyingError } : {}),
                };
            }
            try {
                // this returns undefined when successful,  so there's no feedback after the write
                await FileSystem["a" /* default */].writeFile(`file:${outputPath}`, JSON.stringify(payload), { encoding: 'utf-8' });
                const status = errorPayload ? 'Failed to' : 'Successfully';
                const message = `${status} read Stock Templates data from file ${payload.path} and wrote response in ${outputPath}`;
                // Log BPO Stock Templates write status (not to be confused with Stock Templates load)
                const readEvent = {
                    status: 'success',
                    type: 'bpo-write',
                    subtype: IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD,
                };
                this.logReadEvent(readEvent);
                this._logger.log(message);
            }
            catch (e) {
                error = new CmdnError('failed to write to output file', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_WRITE_API_FILE_WRITE_ERROR, outputPayload, e);
            }
        }
        else {
            error = new CmdnError('empty client logs path', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_WRITE_API_FILE_EMPTY_PATH, outputPayload);
        }
        this.errorHandler(error);
    }
    reportPerformance(startTimestamp) {
        // TODO - report this to performance somehow
        const durationInMilliSec = Date.now() - startTimestamp;
        const message = `It costs ${durationInMilliSec}ms to read and parse the stock templates content from the local cache folder.`;
        this._logger.log(message);
    }
    /**
     * Check the api.json for errors and log them if any (in both clientLogs and Ingest)
     * If no errors are found, return the user entry that matches the search criteria
     *
     * @param hostData Host data passed from the application.
     * @param requestId
     * @return Promis<false | CCXPClientConfig>
     *  - return Promise<false> if there were errors
     *  - return Promise<CCXPClientConfig>, the config that matches the search criteria
     */
    async checkIfValidApiFile(hostData, requestId) {
        this.startTimestamp = Date.now();
        let error;
        const uuid = requestId || Object(JsUtils["f" /* generateGUID */])();
        const stockFolder = StockUtil["b" /* default */].addPathDelimiter() + StockUtil["b" /* default */].getCCXPStockFolder(this.isStage);
        const stockFolderPath = StockUtil["b" /* default */].getCCXPStockFolderPath(this.isStage);
        const stockCacheFilePath = StockUtil["b" /* default */].getCCXPPathForFile(StockConstants["b" /* CCXP_READ_API_FILE_NAME */], this.isStage, stockFolderPath);
        // keeping the same signature for the function as in the base class, even if we don't have the response handler
        const onFinishWithoutCallback = (params) => {
            this.baseFinishHandler(this.startTimestamp, [], () => { }, error);
            // CCXP feedback
            stockFolderPath &&
                this.writeCCXPResponse({
                    stockFolderPath,
                    errorPayload: error,
                    uuid,
                    outputPayload: params.outputPayload,
                });
        };
        const productVersion = hostData.appVersion || '';
        const params = {
            productLanguage: this.locale,
            productCode: this.hostId,
            productVersion,
            ccxVersion: window.appVersionNumber,
        };
        const outputPayload = {
            params,
            version: '1',
            user: this.userId,
            clientSession: hostData.sessionGUID,
        };
        if (stockCacheFilePath === null || stockCacheFilePath === void 0 ? void 0 : stockCacheFilePath.length) {
            try {
                if (await FileSystem["a" /* default */].pathExists(stockCacheFilePath, true)) {
                    // read in the locally written JSON data from Adobe Stock
                    // and adjust image paths to the local file system
                    // TO DO: ADD READ/PARSE ERROR here as well
                    const response = await FileSystem["a" /* default */].readJson(stockCacheFilePath);
                    // filter by user first. We could have multiple entries for the same user - this is an error case
                    const entriesByUser = Object.entries(response.users || []).filter(([key, value]) => key === this.userId) || [];
                    outputPayload.version = response.version;
                    outputPayload.session = response.session;
                    if (entriesByUser.length < 1) {
                        error = new CmdnError('Unable to find user in api.json', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_USER_ENTRY, `Unable to find user in <api.json> at ${stockFolder}`);
                    }
                    else if (entriesByUser.length > 1) {
                        error = new CmdnError('Multiple user entries for same user found in file accessor', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MULTIPLE_USER_ENTRIES, `Multiple user entries for same user found in <api.json> at ${stockFolder}`);
                    }
                    else {
                        // this is adapted from here https://git.corp.adobe.com/CCX/ccx-process-test/blob/main/utils/fileAccessorUtils.js#L106
                        // Leaving the code here because it can be reused for other clients later
                        // const versionPrecision: number = productVersion?.split('.').length || 0; // 2 = Major.Minor, 3 = Major.Minor.Patch, 4 = Major.Minor.Patch.Build
                        // const majorMinorVersion: string =
                        //     versionPrecision <= 2
                        //         ? productVersion
                        //         : productVersion?.substring(0, productVersion.split('.', 2).join('.').length);
                        const userEntry = entriesByUser[0][1]; // this is an array containing a single entry [userId, valueObject]
                        // we will have multiple data entries, including multiple entries for the same host
                        const config = Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || [])
                            .filter(([key, value]) => {
                            var _a, _b, _c;
                            // cast this to avoid type errors
                            const entry = value;
                            return (((_a = entry.params) === null || _a === void 0 ? void 0 : _a.productCode) === this.hostId && ((_c = (_b = entry.params) === null || _b === void 0 ? void 0 : _b.productLanguage) === null || _c === void 0 ? void 0 : _c.startsWith(this.locale))
                            // disabling the version check for the Stock client. Leaving the code here because it can be reused for other clients later
                            // && entry.params?.productVersion?.startsWith(majorMinorVersion)
                            );
                            // TODO - in the current api.js implementation I couldn't find the surface, but we can keep this in case the implementation changes
                            // && requestedSurfaces.every((v, i) => entry.params.surfaceId.includes(v))
                        }
                        // at this point we'll have an array of entries and we just want to keep the values in it
                        )
                            .map(([key, value]) => value);
                        // If more than one entry meets criteria, we filter by most recent expiryTime
                        if (config === null || config === void 0 ? void 0 : config.length) {
                            const mostRecentConfig = config.reduce((mostRecent, current) => {
                                if (!mostRecent) {
                                    return current;
                                }
                                return new Date(mostRecent.expiryTime) > new Date(current.expiryTime)
                                    ? mostRecent
                                    : current;
                            });
                            if (mostRecentConfig.path) {
                                const mostRecentConfigFilePath = StockUtil["b" /* default */].getCCXPPathForFile(mostRecentConfig.path, this.isStage) || '';
                                if (await FileSystem["a" /* default */].pathExists(mostRecentConfigFilePath, true)) {
                                    return mostRecentConfig;
                                }
                                else {
                                    outputPayload.path = mostRecentConfig.path;
                                    // send whole entry
                                    error = new CmdnError('Content Path found but file not found on disk', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_MISSING_FILE, mostRecentConfig);
                                }
                            }
                            else {
                                // send whole entry
                                error = new CmdnError('Param match found but no path present', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_PATH, mostRecentConfig);
                            }
                        }
                        else {
                            // filter out entries for user based off the host app
                            let userEntryByHost = Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || []).filter(([key, value]) => {
                                var _a;
                                // cast this to avoid type errors
                                const entry = value;
                                return ((_a = entry.params) === null || _a === void 0 ? void 0 : _a.productCode) === this.hostId;
                            });
                            userEntryByHost = prepareUserEntryDataForErrors(userEntryByHost);
                            let otherEntriesForUser;
                            // if we don't find entries for the current host, return the data available in the `api.json` file
                            if (!userEntryByHost.length) {
                                otherEntriesForUser = prepareUserEntryDataForErrors(Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || []));
                            }
                            const underlyingError = userEntryByHost.length ? userEntryByHost : otherEntriesForUser;
                            error = new CmdnError('Param mismatch error', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_PARAMETER_MISMATCH, underlyingError);
                        }
                    }
                }
                else {
                    const underlyingError = `Unable to find <api.json> at ${stockFolder}`;
                    error = new CmdnError('Unable to find api.json', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING, underlyingError);
                }
            }
            catch (e) {
                let errorCode = CmdnErrorCodes.STOCK_READ_API_FILE_PARSE_ERROR;
                let description = 'Unable to parse api.json';
                if ((e === null || e === void 0 ? void 0 : e.message) === 'permission denied') {
                    errorCode = CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_PERMISSIONS;
                    description = 'Unable to open api.json due to some permissions issues';
                }
                error = new CmdnError(description, CmdnErrorTypes.STOCK, errorCode, e);
            }
        }
        else {
            error = new CmdnError('Empty CCX Process cache path', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_EMPTY_PATH);
        }
        // handle error - possibly pass this to Ingest
        error && onFinishWithoutCallback({ data: [], error, uuid, outputPayload });
        return false;
    }
    /**
     * Read stock templates data from mostRecentConfig of user
     *
     * @param hostData Host data passed from the application.
     * @param callback Callback method.
     * @param requestId
     */
    async readStockDataFromApiFile(hostData, callback, requestId, mostRecentConfig) {
        const uuid = requestId || Object(JsUtils["f" /* generateGUID */])();
        const stockFolderPath = StockUtil["b" /* default */].getCCXPStockFolderPath(this.isStage);
        let error;
        const onFinish = (params) => {
            var _a;
            if (!error) {
                // log successful FA read event
                const eventData = {
                    'event.value': 'success',
                    'event.type': 'bpo-read',
                    'event.subtype': IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD,
                };
                (_a = this._analytics) === null || _a === void 0 ? void 0 : _a.logMiscellaneousEvent(eventData);
            }
            this.baseFinishHandler(this.startTimestamp, params.data, callback, error);
            // CCXP feedback
            stockFolderPath &&
                this.writeCCXPResponse({
                    stockFolderPath,
                    errorPayload: error,
                    uuid,
                    outputPayload: params.outputPayload,
                });
        };
        const data = {
            path: StockUtil["b" /* default */].getCCXPPathForFile(mostRecentConfig.path, this.isStage) || '',
            requestId: uuid,
            fileName: mostRecentConfig.path,
            isReadByFileAccessorAPI: true,
        };
        const productVersion = hostData.appVersion || '';
        const params = {
            productLanguage: this.locale,
            productCode: this.hostId,
            productVersion,
            ccxVersion: window.appVersionNumber,
        };
        const outputPayload = {
            params,
            version: '1',
            user: this.userId,
            clientSession: hostData.sessionGUID,
        };
        this.handleData({ data, uuid, onFinish, outputPayload });
    }
    /**
     * Get template data from the Adobe Stock service.
     *
     * @param hostData Host data passed from the application.
     * @param callback Callback method.
     * @param requestId
     */
    async fetchStockData(hostData, callback, requestId) {
        const startTimestamp = Date.now();
        let error;
        const uuid = requestId || Object(JsUtils["f" /* generateGUID */])();
        const stockFolder = StockUtil["b" /* default */].addPathDelimiter() + StockUtil["b" /* default */].getCCXPStockFolder(this.isStage);
        const stockFolderPath = StockUtil["b" /* default */].getCCXPStockFolderPath(this.isStage);
        const stockCacheFilePath = StockUtil["b" /* default */].getCCXPPathForFile(StockConstants["b" /* CCXP_READ_API_FILE_NAME */], this.isStage, stockFolderPath);
        // keeping the same signature for the function as in the base class, even if we don't have the response handler
        const onFinish = (params) => {
            this.baseFinishHandler(startTimestamp, params.data, callback, error);
            // CCXP feedback
            stockFolderPath &&
                this.writeCCXPResponse({
                    stockFolderPath,
                    errorPayload: error,
                    uuid,
                    outputPayload: params.outputPayload,
                });
        };
        const productVersion = hostData.appVersion || '';
        const params = {
            productLanguage: this.locale,
            productCode: this.hostId,
            productVersion,
            ccxVersion: window.appVersionNumber,
        };
        const outputPayload = {
            params,
            version: '1',
            user: this.userId,
            clientSession: hostData.sessionGUID,
        };
        if (stockCacheFilePath === null || stockCacheFilePath === void 0 ? void 0 : stockCacheFilePath.length) {
            try {
                if (await FileSystem["a" /* default */].pathExists(stockCacheFilePath, true)) {
                    // read in the locally written JSON data from Adobe Stock
                    // and adjust image paths to the local file system
                    // TO DO: ADD READ/PARSE ERROR here as well
                    const response = await FileSystem["a" /* default */].readJson(stockCacheFilePath);
                    // filter by user first. We could have multiple entries for the same user - this is an error case
                    const entriesByUser = Object.entries(response.users || []).filter(([key, value]) => key === this.userId) || [];
                    outputPayload.version = response.version;
                    outputPayload.session = response.session;
                    if (entriesByUser.length < 1) {
                        error = new CmdnError('Unable to find user in api.json', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_USER_ENTRY, `Unable to find user in <api.json> at ${stockFolder}`);
                    }
                    else if (entriesByUser.length > 1) {
                        error = new CmdnError('Multiple user entries for same user found in file accessor', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MULTIPLE_USER_ENTRIES, `Multiple user entries for same user found in <api.json> at ${stockFolder}`);
                    }
                    else {
                        // this is adapted from here https://git.corp.adobe.com/CCX/ccx-process-test/blob/main/utils/fileAccessorUtils.js#L106
                        // Leaving the code here because it can be reused for other clients later
                        // const versionPrecision: number = productVersion?.split('.').length || 0; // 2 = Major.Minor, 3 = Major.Minor.Patch, 4 = Major.Minor.Patch.Build
                        // const majorMinorVersion: string =
                        //     versionPrecision <= 2
                        //         ? productVersion
                        //         : productVersion?.substring(0, productVersion.split('.', 2).join('.').length);
                        const userEntry = entriesByUser[0][1]; // this is an array containing a single entry [userId, valueObject]
                        // we will have multiple data entries, including multiple entries for the same host
                        const config = Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || [])
                            .filter(([key, value]) => {
                            var _a, _b, _c;
                            // cast this to avoid type errors
                            const entry = value;
                            return (((_a = entry.params) === null || _a === void 0 ? void 0 : _a.productCode) === this.hostId && ((_c = (_b = entry.params) === null || _b === void 0 ? void 0 : _b.productLanguage) === null || _c === void 0 ? void 0 : _c.startsWith(this.locale))
                            // disabling the version check for the Stock client. Leaving the code here because it can be reused for other clients later
                            // && entry.params?.productVersion?.startsWith(majorMinorVersion)
                            );
                            // TODO - in the current api.js implementation I couldn't find the surface, but we can keep this in case the implementation changes
                            // && requestedSurfaces.every((v, i) => entry.params.surfaceId.includes(v))
                        }
                        // at this point we'll have an array of entries and we just want to keep the values in it
                        )
                            .map(([key, value]) => value);
                        // If more than one entry meets criteria, we filter by most recent expiryTime
                        if (config === null || config === void 0 ? void 0 : config.length) {
                            const mostRecentConfig = config.reduce((mostRecent, current) => {
                                if (!mostRecent) {
                                    return current;
                                }
                                return new Date(mostRecent.expiryTime) > new Date(current.expiryTime)
                                    ? mostRecent
                                    : current;
                            });
                            if (mostRecentConfig.path) {
                                const mostRecentConfigFilePath = StockUtil["b" /* default */].getCCXPPathForFile(mostRecentConfig.path, this.isStage) || '';
                                if (await FileSystem["a" /* default */].pathExists(mostRecentConfigFilePath, true)) {
                                    const data = {
                                        path: StockUtil["b" /* default */].getCCXPPathForFile(mostRecentConfig.path, this.isStage) || '',
                                        requestId: uuid,
                                        fileName: mostRecentConfig.path,
                                        isReadByFileAccessorAPI: true,
                                    };
                                    this.handleData({ data, uuid, onFinish, outputPayload });
                                    const readEvent = {
                                        status: 'success',
                                        type: 'bpo-read',
                                        subtype: IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD,
                                    };
                                    this.logReadEvent(readEvent);
                                }
                                else {
                                    outputPayload.path = mostRecentConfig.path;
                                    // send the whole entry of the user
                                    // for CCXP to process
                                    error = new CmdnError('Content Path found but file not found on disk', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_MISSING_FILE, mostRecentConfig);
                                }
                            }
                            else {
                                // / send whole entry
                                error = new CmdnError('Param match found but no path present', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_PATH, mostRecentConfig);
                            }
                        }
                        else {
                            // filter out entries for user based off the host app
                            let userEntryByHost = Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || []).filter(([key, value]) => {
                                var _a;
                                // cast this to avoid type errors
                                const entry = value;
                                return ((_a = entry.params) === null || _a === void 0 ? void 0 : _a.productCode) === this.hostId;
                            });
                            userEntryByHost = prepareUserEntryDataForErrors(userEntryByHost);
                            let otherEntriesForUser;
                            // if we don't find entries for the current host, return the data available in the `api.json` file
                            if (!userEntryByHost.length) {
                                otherEntriesForUser = prepareUserEntryDataForErrors(Object.entries((userEntry === null || userEntry === void 0 ? void 0 : userEntry.data) || []));
                            }
                            const underlyingError = userEntryByHost.length ? userEntryByHost : otherEntriesForUser;
                            error = new CmdnError('Param mismatch error', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_PARAMETER_MISMATCH, underlyingError);
                        }
                    }
                }
                else {
                    const underlyingError = `Unable to find <api.json> at ${stockFolder}`;
                    error = new CmdnError('Unable to find api.json', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_MISSING, underlyingError);
                }
            }
            catch (e) {
                let errorCode = CmdnErrorCodes.STOCK_READ_API_FILE_PARSE_ERROR;
                let description = 'Unable to parse api.json';
                if ((e === null || e === void 0 ? void 0 : e.message) === 'permission denied') {
                    errorCode = CmdnErrorCodes.STOCK_READ_API_FILE_MISSING_PERMISSIONS;
                    description = 'Unable to open api.json due to some permissions issues';
                }
                error = new CmdnError(description, CmdnErrorTypes.STOCK, errorCode, e);
            }
        }
        else {
            error = new CmdnError('Empty CCX Process cache path', CmdnErrorTypes.STOCK, CmdnErrorCodes.STOCK_READ_API_FILE_EMPTY_PATH);
        }
        // handle error - possibly pass this to Ingest
        error && onFinish({ data: [], error, uuid, outputPayload });
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockLoaderFactory.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2023 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



class StockLoaderFactory_StockLoaderFactory {
    static getInstance(userId, hostId, locale, isStage, vulcan, analytics) {
        this.userId = userId;
        this.hostId = hostId;
        this.locale = locale;
        this.isStage = isStage;
        this.vulcan = vulcan;
        this.analytics = analytics;
        switch (hostId) {
            case HostIds["a" /* default */].PHXS:
                return new FileStockLoader_FileStockLoader(userId, hostId, locale, isStage, analytics);
            default:
                return new BasicStockLoader_BasicStockLoader(vulcan, analytics);
        }
    }
    static getBasicStockLoaderForHost() {
        return new BasicStockLoader_BasicStockLoader(this.vulcan, this.analytics);
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/













const VULCAN_STOCK_COLLECTION_REQUEST = 'ccxprocess.CollectionTemplatesRequest';
const VULCAN_STOCK_COLLECTION_RESPONSE = 'ccxprocess.CollectionTemplatesResponse';
const STOCK_COLLECTION_RESPONSE_TIMEOUT = 4000; // 4 second
var StockEvents;
(function (StockEvents) {
    StockEvents["STOCK_INITIALIZED"] = "stock-initialized";
    StockEvents["STOCK_COLLECTIONS_INITIALIZED"] = "stock-collections-initialized";
    StockEvents["CMDN_STOCK_INITIALIZATION_START"] = "cmdn-stock-initialization-start";
    StockEvents["CMDN_STOCK_INITIALIZATION_END"] = "cmdn-stock-initialization-end";
})(StockEvents || (StockEvents = {}));
/**
 * Download status of the Templates.
 *
 * @enum {string}
 */
var LicenseStatus;
(function (LicenseStatus) {
    LicenseStatus["REQUESTED"] = "requested";
    // @todo: why is this 'downloading'?
    LicenseStatus["LICENSED"] = "downloading";
    LicenseStatus["ERROR"] = "error";
})(LicenseStatus || (LicenseStatus = {}));
class StockController_StockController extends StockObservable["a" /* default */] {
    constructor() {
        super(...arguments);
        this._logger = logger_default.a.get('StockController');
        this._vulcan = Object(VulcanAPI["a" /* vulcanAPI */])();
        this._templateLookupMap = {};
        this.data = {};
        this.earlyKeyEventsProcessed = false;
        this.stockCollectionsTimeoutHandler = null;
        this.stockTemplatesReady = false;
        this.stockCollectionsReady = false;
    }
    /**
     * Initializes the internal components.
     */
    init(userId, hostId, locale, isStage, analytics) {
        // clear the listeners, to make sure we don't have multiple functions registered
        this.removeAllListeners();
        LibraryManager["d" /* default */].removeAllListeners();
        // initializeCCLibraries is asynchronous, but we don't want to wait for it, it can initialize in the background
        LibraryManager["d" /* default */].initializeCCLibraries();
        this._analytics = analytics;
        this._stockLoader = StockLoaderFactory_StockLoaderFactory.getInstance(userId, hostId, locale, isStage, this._vulcan, this._analytics);
    }
    /**
     * Clears the licensed template cache. This should be called when a user profice change is detected,
     * so that we don't display cached data corresponding to a different user.
     */
    clearLicensedTemplateCache() {
        LibraryManager["d" /* default */].clearLicensedTemplateCache();
    }
    /**
     * Retuns a map with the available sections as keys and the templates in that section as values.
     *
     * @param oldTemplateCategories
     * @param templates Templates to process.
     * @returns Object containing the templates per category.
     */
    getTemplateCategories(oldTemplateCategories, templates) {
        const templateCategories = {};
        let categoryChanged = false;
        for (const categoryType in DocumentTemplateCategoryTypes["a" /* default */]) {
            const category = DocumentTemplateCategoryTypes["a" /* default */][categoryType];
            let dataInCategory = templateCategories[category] || [];
            const oldDataInCategory = oldTemplateCategories && oldTemplateCategories[category];
            // Note: The same template can be in multiple tabs: saved, recents, mobile, etc.
            dataInCategory = dataInCategory.concat(templates.filter(template => {
                template.identifier = template.id; // we no longer need to generate an identifier, each template already has an id
                return template.template_category
                    ? template.template_category.map(x => x.toLowerCase()).indexOf(category) !== -1
                    : false;
            }) || []);
            // we should catch errors that can appear when creating the model
            try {
                templateCategories[category] = Object(JsUtils["b" /* createChangedModelArray */])(oldDataInCategory, dataInCategory, this.templateLookupMap);
            }
            catch (error) {
                this._logger.error(error);
            }
            categoryChanged = categoryChanged || templateCategories[category] !== oldDataInCategory;
        }
        // if nothing changed, don't change the reference at all, to reduce rerenders
        return categoryChanged ? templateCategories : oldTemplateCategories;
    }
    // try to reuse as much as possible from the existing collection data
    getStockCollections(oldCollections, newCollections) {
        if (!newCollections || !newCollections.length) {
            return [];
        }
        newCollections.forEach((collection, index) => {
            const oldCollection = ((oldCollections === null || oldCollections === void 0 ? void 0 : oldCollections.length) > index && (oldCollections === null || oldCollections === void 0 ? void 0 : oldCollections[index])) || undefined;
            // reuse the models in the lookup map, if possible
            collection.files = Object(JsUtils["b" /* createChangedModelArray */])((oldCollection === null || oldCollection === void 0 ? void 0 : oldCollection.files) || [], collection.files, this.templateLookupMap);
        });
        return newCollections;
    }
    /**
     * Generate a default data set if the Stock pull fails.
     *
     * @param hostData Host data configuration.
     * @returns An object representing the default template data set.
     */
    generateDefaultStockData(hostData) {
        return {
            nb_results: 0,
            templates: [],
            expirationDTS: '2015-11-01T00:00:00.000+00:00',
            _ccx: {
                version: hostData.radarVersion || '0.0.0',
            },
        };
    }
    /**
     * Validate services and user.
     *
     * @param adobeGUID Adobe GUID.
     * @param callback Callback method.
     */
    validateServicesAndUser(adobeGUID, callback) {
        if (!this._vulcan) {
            return;
        }
        if ((adobeGUID === null || adobeGUID === void 0 ? void 0 : adobeGUID.length) === 0) {
            this._logger.log('No user. Likely FRL or signed out');
            // Offline or FRL case.
            callback(null, {});
        }
    }
    /**
     * Get collection data from the Adobe Stock service.
     *
     * @param hostData Host data passed from the application.
     * @param callback Callback method.
     */
    fetchStockCollectionDataFromCCXProcess(hostData, recentPresets, appStorageController, callback, requestId) {
        this.validateServicesAndUser(hostData === null || hostData === void 0 ? void 0 : hostData.adobeGUID, callback);
        const vulcan = this._vulcan;
        const self = this;
        let timeoutHandler;
        const startTimestamp = Date.now();
        const onFinish = (data, errorObject, responseHandlerRef, resetCollectionsLocalStorage = true) => {
            var _a;
            // clear IPC listeners
            responseHandlerRef && (vulcan === null || vulcan === void 0 ? void 0 : vulcan.off(VULCAN_STOCK_COLLECTION_RESPONSE, responseHandlerRef));
            if (errorObject === null || errorObject === void 0 ? void 0 : errorObject.message) {
                if (errorObject.type === 'info') {
                    this._logger.log(errorObject.message);
                }
                else {
                    this._logger.error(errorObject.message);
                }
                if (resetCollectionsLocalStorage) {
                    appStorageController.setStockCollectionData([]);
                }
            }
            // @todo: why isn't this reported to Perf?
            const durationInMilliSec = Date.now() - startTimestamp;
            this._logger.log(`It costs ${durationInMilliSec}ms to get the stock collections response from CCXProcess.`);
            // Log Stock Collections Read status
            const payload = {
                type: 'vulcan-read',
                subtype: IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_COLLECTIONS_LOAD,
                status: (errorObject === null || errorObject === void 0 ? void 0 : errorObject.message) ? 'failed' : 'success',
            };
            (_a = this._stockLoader) === null || _a === void 0 ? void 0 : _a.logReadEvent(payload);
            callback(data, !!(errorObject === null || errorObject === void 0 ? void 0 : errorObject.message));
        };
        const resetTimeout = setNewTimeout => {
            self.stockCollectionsTimeoutHandler && clearTimeout(self.stockCollectionsTimeoutHandler);
            self.stockCollectionsTimeoutHandler = setNewTimeout
                ? setTimeout(timeoutHandler, STOCK_COLLECTION_RESPONSE_TIMEOUT)
                : undefined;
        };
        // reuse the request ID if it was provided, or generate a new one
        const uuid = requestId || Object(JsUtils["f" /* generateGUID */])();
        const responseHandler = async (responseData) => {
            responseData &&
                this._logger.log(`Receiving ${VULCAN_STOCK_COLLECTION_RESPONSE} [${responseData.requestId}], path is ${responseData.path}`);
            // validate
            if ((responseData === null || responseData === void 0 ? void 0 : responseData.requestId) === uuid) {
                // Clear timeout only if the response has the expected requestid.
                resetTimeout(false);
                let userIsTargeted = false;
                if (responseData.path) {
                    try {
                        // CCXProcess might have an error but still return a part of the collections.
                        // We don't need to handle this in any specific way, but some logging could be helpful.
                        if (responseData.error) {
                            this._logger.error(`Only partial collection returned from CCXP with the following error: ${responseData.error}`);
                        }
                        // it's possible that CCXP returned a path that no longer exists.
                        // We consider this an error case and remove the Vulcan handler
                        if (await FileSystem["a" /* default */].pathExists(responseData.path, true)) {
                            FileSystem["a" /* default */].readJson(responseData.path).then(async (response) => {
                                var _a, _b, _c, _d, _e, _f;
                                // Check if the user should be targeted with Stock Collections
                                const failedContainers = (_b = (_a = response === null || response === void 0 ? void 0 : response.surfaces) === null || _a === void 0 ? void 0 : _a['CCX_Start_5.11_Stock']) === null || _b === void 0 ? void 0 : _b.failedContainers;
                                if (failedContainers === null || failedContainers === void 0 ? void 0 : failedContainers.length) {
                                    userIsTargeted = !failedContainers.find(failedContainer => (failedContainer === null || failedContainer === void 0 ? void 0 : failedContainer.errorCode) === 30002 ||
                                        (failedContainer === null || failedContainer === void 0 ? void 0 : failedContainer.errorMessage) === 'NO_TARGETING_CAMPAIGN');
                                    if (!userIsTargeted) {
                                        const errorObject = {
                                            message: 'Stock collections: User is not targeted',
                                            type: 'info',
                                        };
                                        onFinish([], errorObject, responseHandler);
                                        return;
                                    }
                                }
                                // User is targeted so proceed with populating CmdN with Stock Collections
                                const path = Object(PlatformUtils["a" /* getFilePath */])(responseData.path);
                                const parentFolder = path.substring(0, path.lastIndexOf('/'));
                                const contentPath = Object(PlatformUtils["a" /* getFilePath */])((_f = (_e = (_d = (_c = response === null || response === void 0 ? void 0 : response.surfaces) === null || _c === void 0 ? void 0 : _c['CCX_Start_5.11_Stock']) === null || _d === void 0 ? void 0 : _d.containers) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.path);
                                if (parentFolder && contentPath) {
                                    FileSystem["a" /* default */].readJson(`${parentFolder}/${contentPath}`).then(async (response) => {
                                        var _a, _b, _c;
                                        const collectionsResult = [];
                                        for (const collectionJSON of (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.modalCollectionsByPath) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.templateCollections) {
                                            const collectionPath = Object(PlatformUtils["a" /* getFilePath */])(collectionJSON.path);
                                            await FileSystem["a" /* default */].readJson(`${parentFolder}/${collectionPath}`).then(collection => {
                                                var _a;
                                                (_a = collection === null || collection === void 0 ? void 0 : collection.files) === null || _a === void 0 ? void 0 : _a.forEach(template => {
                                                    // read in the locally written JSON data from Adobe Stock
                                                    // and adjust image paths to the local file system
                                                    if (template.thumbnail_url) {
                                                        const templateUrlPath = Object(PlatformUtils["a" /* getFilePath */])(template.thumbnail_url);
                                                        template.thumbnail_url =
                                                            parentFolder && `${parentFolder}/${templateUrlPath}`;
                                                    }
                                                    template.kind = DocumentTemplateKind["a" /* default */].TEMPLATE;
                                                    // convert the id from string to number
                                                    template.identifier = template.id = Number(template.id);
                                                });
                                                collectionsResult.push(collection);
                                            });
                                        }
                                        // write the unprocessed collections to local storage. We don't want other information, like licensing, to be persisted
                                        appStorageController.setStockCollectionData(collectionsResult);
                                        // merge collections data with Recents & licensed templates data
                                        this.handleStockCollectionData(collectionsResult, recentPresets, appStorageController, requestId).then(() => {
                                            onFinish(collectionsResult, undefined, responseHandler);
                                        });
                                    });
                                }
                                else {
                                    const errorObject = {
                                        message: `Collections content path is missing, response path: ${responseData.path}`,
                                    };
                                    onFinish([], errorObject, responseHandler);
                                }
                            });
                        }
                        else {
                            const errorObject = {
                                message: `Collections path does not exist ${responseData.path}`,
                            };
                            onFinish([], errorObject, responseHandler);
                        }
                    }
                    catch (err) {
                        const errorObject = {
                            message: `Error occurred while fetching collections from disk, ${err}`,
                        };
                        onFinish([], errorObject, responseHandler);
                    }
                }
                else {
                    const errorObject = {
                        message: `Collections path is missing, parsedData=${JSON.stringify(responseData)}`,
                    };
                    onFinish([], errorObject, responseHandler);
                }
            }
        };
        vulcan === null || vulcan === void 0 ? void 0 : vulcan.on(VULCAN_STOCK_COLLECTION_RESPONSE, responseHandler);
        // Send Stock request
        const stockParams = {
            productCode: hostData.hostID,
            productVersion: hostData.appVersion,
            productLanguage: hostData.language,
            countryCode: hostData.countryCode,
        };
        // TODO: validate with CCXP that we can use this param
        // if (stockParams.subscriptionStatus === 'trial') {
        //     stockParams.trialEndDTS = getTrialEndDate(hostData.secondsLeftInTrial || 0, false);
        // }
        const data = {
            params: stockParams,
            requestId: uuid,
            urgent: true,
        };
        const payload = { type: VULCAN_STOCK_COLLECTION_REQUEST, data: data };
        vulcan === null || vulcan === void 0 ? void 0 : vulcan.dispatch(payload);
        this._logger.log(`Sending ${VULCAN_STOCK_COLLECTION_REQUEST} [${uuid}]`);
        let relaunched = false;
        // Set timeout
        timeoutHandler = () => {
            // Check and launch CCXProcess
            if (!relaunched) {
                relaunched = true;
                StockUtil["b" /* default */].launchCCXProcess();
                vulcan === null || vulcan === void 0 ? void 0 : vulcan.dispatch(payload);
                resetTimeout(true);
                return;
            }
            const errorObject = {
                message: 'Request to get stock collections response from CCX Process timed out',
            };
            onFinish([], errorObject, responseHandler, false);
        };
        /* Make sure to clear the timeout reference in case of multiple requests */
        resetTimeout(true);
    }
    /**
     * Processes the loaded data.
     *
     * @param collection
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage.
     */
    async handleStockCollectionData(collections, recentPresets, appStorageController, requestId) {
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].StockCollectionsData, requestId);
        if (collections && collections.length) {
            // For the sake of getting best performance, the idea is to retrieve cached licensed templates from CC library snapshot directly
            // rather than loading the cc library js file and initializing it. This probably saves up more than 400ms.
            Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].LicensedCollectionsData);
            const licensedTemplates = await LibraryManager["d" /* default */].getCachedTemplatesMap(appStorageController);
            Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].LicensedCollectionsData);
            const recentTemplates = (recentPresets && recentPresets.filter(preset => preset.kind === DocumentTemplateKind["a" /* default */].TEMPLATE)) || [];
            collections === null || collections === void 0 ? void 0 : collections.forEach(collection => {
                collection.files = this.initTemplatesFromStockCollection(collection.files, licensedTemplates, recentTemplates, appStorageController);
            });
        }
    }
    /**
     * Processes the loaded data.
     *
     * @param hostData Application host settings.
     * @param stockData Object containing the loaded data.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage.
     */
    async handleStockData(hostData, stockData, recentPresets, appStorageController, requestId) {
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].StockData, requestId);
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].LicensedData);
        const sd = stockData || this.generateDefaultStockData(hostData);
        // For the sake of getting best performance, the idea is to retrieve cached licensed templates from CC library snapshot directly
        // rather than loading the cc library js file and initializing it. This probably saves up more than 400ms.
        const licensedTemplates = await LibraryManager["d" /* default */].getCachedTemplatesMap(appStorageController);
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].LicensedData);
        // @ifdef DEBUG
        // iaw.perf.measure(iaw.perf.timers.DataTime);
        // @endif
        this.initTemplates(sd, licensedTemplates, recentPresets, appStorageController);
    }
    /**
     * Loads and stores the stock data.
     *
     * @param hostData Application host data.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage used to cache the data.
     */
    loadAndCacheStockData(hostData, recentPresets, appStorageController) {
        var _a, _b, _c, _d;
        this.stockTemplatesReady = false;
        const requestId = Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].StockData, true);
        const successCallback = stockData => {
            appStorageController.setStockTemplateData(stockData);
            this.handleStockData(hostData, stockData, recentPresets, appStorageController, requestId);
        };
        // let HS know that we are loading the stock data so it displays the default
        // image while the collection is downloading
        const event = new CustomEvent(StockEvents.CMDN_STOCK_INITIALIZATION_START);
        dispatchEvent(event);
        if (((_a = this._stockLoader) === null || _a === void 0 ? void 0 : _a.checkIfValidApiFile) !== undefined) {
            (_c = (_b = this._stockLoader) === null || _b === void 0 ? void 0 : _b.checkIfValidApiFile) === null || _c === void 0 ? void 0 : _c.call(_b, hostData, requestId).then(mostRecentConfig => {
                var _a, _b, _c;
                // in case there was no entry for that user,
                // or an error has ocurred fallback to the Vulcan implementation
                if (mostRecentConfig === false) {
                    this._stockLoader = StockLoaderFactory_StockLoaderFactory.getBasicStockLoaderForHost();
                    (_a = this._stockLoader) === null || _a === void 0 ? void 0 : _a.fetchStockData(hostData, successCallback, requestId);
                }
                else if (typeof mostRecentConfig === 'object' && (mostRecentConfig === null || mostRecentConfig === void 0 ? void 0 : mostRecentConfig.path)) {
                    // BPO readDataFromBPOFile
                    (_c = (_b = this._stockLoader) === null || _b === void 0 ? void 0 : _b.readStockDataFromApiFile) === null || _c === void 0 ? void 0 : _c.call(_b, hostData, successCallback, requestId, mostRecentConfig // provide most recent config/entry for user
                    );
                }
            });
        }
        else {
            // default Vulcan Handler
            (_d = this._stockLoader) === null || _d === void 0 ? void 0 : _d.fetchStockData(hostData, successCallback, requestId);
        }
    }
    /**
     * Loads and stores the collections data.
     *
     * @param hostData Application host data.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage used to cache the data.
     */
    loadAndCacheStockCollectionsData(hostData, recentPresets, appStorageController) {
        this.stockCollectionsReady = false;
        const requestId = Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].StockCollectionsData, true);
        this.fetchStockCollectionDataFromCCXProcess(hostData, recentPresets, appStorageController, (collectionData, isError) => {
            this.triggerEvents(collectionData, isError);
        }, requestId);
    }
    /**
     * Gets and initializes the templates. It attempts to load the data from the cache first.
     * This call takes care of all the template tabs, as well as the Templates tab that loads collections.
     *
     * @param hostData Application host data.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage used to cache the data.
     * @param isStockCollectionsEnabled Check if Stock Collections is enabled.
     */
    getAndInitializeTemplates(hostData, recentPresets, appStorageController, isStockCollectionsEnabled) {
        // Getting stock templates is very slow, so here is a trick that we use.
        // We cache the stock data after first launch and then on each subsequent launch
        // we first render with the cached data and then reinitialize the templates from
        // by fetching afresh from the CCX Process.
        // The stock data has expiration to it. So if that expires, we do swap that
        // data out but do so lazily after the initial load.
        const cachedStockData = appStorageController.getStockTemplateData();
        if (cachedStockData && cachedStockData.templates && cachedStockData.templates.length !== 0) {
            this.stockTemplatesReady = false;
            const requestId = Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].StockData, true);
            this.handleStockData(hostData, cachedStockData, recentPresets, appStorageController, requestId);
            if (new Date(cachedStockData.expirationDTS) < new Date()) {
                this.loadAndCacheStockData(hostData, recentPresets, appStorageController);
            }
        }
        else {
            this.loadAndCacheStockData(hostData, recentPresets, appStorageController);
        }
        if (isStockCollectionsEnabled) {
            // separate stock collection flow
            const cachedCollectionData = appStorageController.getStockCollectionData();
            if (cachedCollectionData && cachedCollectionData.length) {
                this.stockCollectionsReady = false;
                // we already have cached data, use that directly
                const requestId = Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].StockCollectionsData, true);
                this.handleStockCollectionData(cachedCollectionData, recentPresets, appStorageController, requestId).then(() => {
                    this.triggerEvents(cachedCollectionData, false);
                });
            }
            else {
                this.loadAndCacheStockCollectionsData(hostData, recentPresets, appStorageController);
            }
        }
        else {
            this.stockCollectionsReady = true;
        }
    }
    /**
     * Prepare the template data to be displayed.
     *
     * @param templates[] Object containing the loaded template date.
     * @param licensedTemplates May containing the licensed templates, using the id as the key.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage used to cache the data.
     */
    initTemplatesFromStockCollection(collectionTemplates, licensedTemplates, recentTemplates, appStorageController) {
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].TemplateCollectionFixup);
        let templates = (collectionTemplates === null || collectionTemplates === void 0 ? void 0 : collectionTemplates.map(template => this.updateTemplate(template, recentTemplates, licensedTemplates, appStorageController))) || [];
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].TemplateCollectionFixup);
        return templates;
    }
    /**
     * Prepare the template data to be displayed.
     *
     * @param stockData Object containing the loaded template date.
     * @param licensedTemplates May containing the licensed templates, using the id as the key.
     * @param recentPresets Recently used presets & templates.
     * @param appStorageController App Storage used to cache the data.
     */
    initTemplates(stockData, licensedTemplates, recentPresets, appStorageController) {
        var _a;
        Performance["b" /* Performance */].track(Performance["a" /* MeasurementIDS */].TemplateFixup);
        // move all the licensed templates into the recent tab and update the last used time so they sort correctly
        // with the presets
        let templates = [];
        const recentTemplates = (recentPresets && recentPresets.filter(preset => preset.kind === DocumentTemplateKind["a" /* default */].TEMPLATE)) || [];
        // merge in stock data
        (_a = stockData === null || stockData === void 0 ? void 0 : stockData.templates) === null || _a === void 0 ? void 0 : _a.forEach(template => {
            const updatedTemplate = this.updateTemplate(template, recentTemplates, licensedTemplates, appStorageController);
            templates.push(updatedTemplate);
        });
        // we process as well the licensed data, as it may contain templates that are not part of the default stock data
        Object.values(licensedTemplates).forEach(template => {
            templates.push(this.updateTemplate(template, recentTemplates, licensedTemplates, appStorageController));
        });
        // we remove any possible duplicate
        const templateIds = {};
        templates = templates.filter(template => {
            if (!templateIds[template.id]) {
                templateIds[template.id] = true;
                return true;
            }
            return false;
        });
        Performance["b" /* Performance */].measure(Performance["a" /* MeasurementIDS */].TemplateFixup);
        this.stockTemplatesReady = true;
        this.trigger(StockEvents.STOCK_INITIALIZED, { templates });
    }
    /**
     * Updates the given template, based on usage and licensing information.
     *
     * @param template The template to process.
     * @param recentTemplates Array containing all recently used templates.
     * @param licensedTemplates May containing the licensed templates, using the id as the key.
     * @param appStorageController App Storage used to cache the data.
     *
     * @returns The updated template.
     */
    updateTemplate(template, recentTemplates, licensedTemplates, appStorageController) {
        const licensedData = template.id && licensedTemplates[String(template.id)];
        if (licensedData) {
            template.url = licensedData.url;
            template.elementRef = licensedData.elementRef;
            template.thumbnail_url = licensedData.thumbnail_url;
            // we initialize the array if it does not yet exist
            if (!template.template_category) {
                template.template_category = [];
            }
            Object(JsUtils["a" /* addUniqueStringToArray */])(template.template_category, DocumentTemplateCategoryTypes["a" /* default */].RECENT);
            Object(JsUtils["a" /* addUniqueStringToArray */])(template.template_category, DocumentTemplateCategoryTypes["a" /* default */].SAVED);
            const recentFromHost = recentTemplates.find(t => t.elementRef === licensedData.elementRef);
            template.lastUsedTime =
                (recentFromHost && recentFromHost.lastUsedTime) ||
                    appStorageController.getTemplateLastUsedTimestamp(template.id) ||
                    licensedData.modified ||
                    0;
            template.licensedTime = licensedData.modified || licensedData.lastUsedTime;
        }
        // make sure all templates have a lastUsedTime parameter defined
        if (template.lastUsedTime === undefined) {
            template.lastUsedTime = 0;
        }
        // make sure all templates have a licensedTime parameter defined
        if (template.licensedTime === undefined) {
            template.licensedTime = 0;
        }
        // add the template kind so that we can use it later on for filtering
        template.kind = DocumentTemplateKind["a" /* default */].TEMPLATE;
        template.title = template.title && template.title.trim();
        return template;
    }
    get templateLookupMap() {
        return this._templateLookupMap;
    }
    clearTemplateLookupMap() {
        this._templateLookupMap = {};
    }
    /**
     * Trigger events after data fetching is done.
     *
     * @param collectionData Stock collections
     * @param isError true if there was an error while fetching data
     */
    triggerEvents(collectionData, isError) {
        var _a, _b, _c;
        this.stockCollectionsReady = true;
        this.trigger(StockEvents.STOCK_COLLECTIONS_INITIALIZED, {
            collections: collectionData,
            isError,
        });
        // send the first image of the first collection to HS in order to display it in the Tout
        const event = new CustomEvent(StockEvents.CMDN_STOCK_INITIALIZATION_END, {
            detail: (_c = (_b = (_a = collectionData === null || collectionData === void 0 ? void 0 : collectionData[0]) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.thumbnail_url,
        });
        dispatchEvent(event);
    }
    readyToReportPerformance(isStockCollectionsEnabled) {
        const ready = this.stockTemplatesReady && this.stockCollectionsReady;
        if (ready) {
            this.stockTemplatesReady = false;
            if (isStockCollectionsEnabled) {
                this.stockCollectionsReady = false;
            }
        }
        return ready;
    }
}
/* harmony default export */ var stock_StockController = __webpack_exports__["c"] = (new StockController_StockController());


/***/ }),

/***/ "b6PM":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return formatTimeStamp; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addUniqueStringToArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getTrialEndDate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return generateGUID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return reverseIf; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return merge; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return timeout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return fixedEncodeURIComponent; });
/* unused harmony export modelArraysEqual */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return createChangedModelArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return objectIsContained; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return pickPropertiesFromObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return replaceSpecialCharacters; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return firstDefined; });
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zT9C");
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_unionwith__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("ZJ9f");
/* harmony import */ var lodash_unionwith__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_unionwith__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("XaGS");
/* harmony import */ var lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isequal__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("99Ma");
/* harmony import */ var _models_TemplateModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("3iLV");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_5__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const _logger = js_logger__WEBPACK_IMPORTED_MODULE_5___default.a.get('JsUtils');
/**
 * Format the a Date object in the correct string layout for Radar.
 * This method is a percaution in case someone changes the required
 * date format, and we won't need to hunt throught the code to change
 * all the instances of moment.format.
 *
 * @param date Stamp Date time stamp to format.
 * @returns In UTC date format YYYY-MM-DDTHH:mm:ss.sssZ.
 */
function formatTimeStamp(date) {
    return date.toISOString();
}
/**
 * Adds the provided value into the array. The value is only added if it was not yet in it.
 *
 * @param array Array where values are treated as unique.
 * @param value Value to add into the array.
 * @returns True if the value was added to the array, otherwise false.
 */
function addUniqueStringToArray(array, value) {
    if (array.indexOf(value) === -1) {
        array.push(value);
        return true;
    }
    return false;
}
/**
 * Format the a Date object in the correct string layout for Stock.
 *
 * @param date Stamp Date time stamp to format.
 * @returns In ISO 8601 YYYY-MM-DDTHH:mm:ss.SSS-XXXX.
 */
function formatToISO8601Notation(date) {
    /**
     * Format the Elements from the date object in the correct string layout.
     *
     * @param number Month || Date || Hours || Minutes || Seconds || Milliseconds.
     * @returns In the date format YYYY-MM-DDTHH:mm:ss.SSS-XXXX.
     */
    function pad(number) {
        if (number < 10) {
            return `0${number}`;
        }
        return number;
    }
    const offset = date.getTimezoneOffset();
    return (
    // eslint-disable-next-line prefer-template
    date.getFullYear() +
        '-' +
        pad(date.getMonth() + 1) +
        '-' +
        pad(date.getDate()) +
        'T' +
        pad(date.getHours()) +
        ':' +
        pad(date.getMinutes()) +
        ':' +
        pad(date.getSeconds()) +
        '.' +
        (date.getMilliseconds() / 1000).toFixed(3).slice(2, 5) +
        (offset < 0 ? '+' : '-') +
        String(`0000${pad(Math.abs(offset) / 0.6)}`).slice(-4));
}
/**
 * Method to get trial end date.
 *
 * @param secondsLeftInTrial Seconds left in trial.
 * @param [useUTCDateFormat=true] If true we will return UTC format, else ISO 8601 Notation.
 * @returns In UTC format YYYY-MM-DDTHH:mm:ss.sssZ or ISO 8601 YYYY-MM-DDTHH:mm:ss.SSS-XXXX.
 */
function getTrialEndDate(secondsLeftInTrial, useUTCDateFormat = true) {
    if (secondsLeftInTrial < 0 || secondsLeftInTrial === undefined || secondsLeftInTrial === null) {
        return undefined;
    }
    const trialEndDate = new Date(Date.now() + secondsLeftInTrial * 1000);
    if (useUTCDateFormat) {
        return formatTimeStamp(trialEndDate);
    }
    return formatToISO8601Notation(trialEndDate);
}
/**
 * Generate a rfc4122 version 4 compliant GUID.
 *
 * @see http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
 * @returns A string containing the GUID.
 */
function generateGUID() {
    /* jshint bitwise: false */
    return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {
        // 'x|0' is a shortcut for 'Math.floor(x)'
        const r = (Math.random() * 16) | 0;
        const v = c === 'x' ? r : (r & 0x3) | 0x8;
        return v.toString(16);
    });
}
/**
 * Reverse the order of the elements in an array.
 *
 * @template T
 * @param condition Boolean that decides to reverse or not.
 * @param list List that needs to be reversed or not.
 * @returns Reversed list or the initial list.
 */
function reverseIf(condition, list) {
    if (condition) {
        list.reverse();
    }
    return list;
}
/**
 * Merges the provided elements. It accepts either arrays, or objects. While merging arrays, duplicate entries will be
 * removed.
 *
 * @param obj Object that needs to be merged.
 * @param args Arguments that need to be merged.
 * @returns The result of merging the provided paramaters.
 */
function merge(obj, ...args) {
    // no data to merge with, we simply return the current object
    if (args.length === 0) {
        return lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(obj);
    }
    else if (Array.isArray(obj)) {
        // this returns a new array, without touching the original sources
        return lodash_unionwith__WEBPACK_IMPORTED_MODULE_1___default()(obj, ...args, lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default.a);
    }
    else {
        const objClone = lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default()(obj);
        // assumes that every item inside the args is an object as well
        args.forEach(value => {
            Object.keys(value).forEach(key => {
                objClone[key] =
                    typeof objClone[key] === 'undefined' || typeof value[key] !== 'object'
                        ? value[key]
                        : merge(objClone[key], value[key]);
            });
        });
        return objClone;
    }
}
/**
 * Async version of setTimeout.
 *
 * @param time Time in milliseconds.
 * @returns Async version of setTimeout.
 */
async function timeout(time) {
    return new Promise(resolve => {
        setTimeout(resolve, time);
    });
}
/**
 * To be more stringent in adhering to RFC 3986 (which reserves !, ', (, ), and *),
 * even though these characters have no formalized URI delimiting uses.
 *
 * @param str String to encode.
 * @returns Encoded for URI.
 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
 */
function fixedEncodeURIComponent(str) {
    const encoded = str && str.length ? encodeURIComponent(str).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16)}`) : str;
    return encoded;
}
/**
 * Compares two arrays containing mobx-state-tree models, and returns true if the elements are no longer in the same order
 * or some of the data changed.
 *
 * @param [oldData] Array containing old data.
 * @param [newData] Array containing newly loaded data.
 * @returns True if the two arrays are different.
 */
function modelArraysEqual(oldData, newData) {
    let arraysEqual = true;
    if (oldData) {
        if (newData && oldData.length === newData.length) {
            let oldTemplate;
            let newTemplate;
            for (let i = 0; i < newData.length; i++) {
                oldTemplate = Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* isStateTreeNode */ "g"])(oldData[i]) ? Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* getSnapshot */ "f"])(oldData[i]) : oldData[i];
                newTemplate = Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* isStateTreeNode */ "g"])(newData[i]) ? Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* getSnapshot */ "f"])(newData[i]) : newData[i];
                if (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(oldTemplate, newTemplate)) {
                    arraysEqual = false;
                    break;
                }
            }
        }
        else {
            arraysEqual = false;
        }
    }
    else {
        arraysEqual = !newData;
    }
    return arraysEqual;
}
function getObjectSnapshot(o) {
    return Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* isStateTreeNode */ "g"])(o) ? Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* getSnapshot */ "f"])(o) : o;
}
function createChangedModelArray(oldData, newData, lookupMap) {
    var _a;
    const newArray = [];
    if (newData === null || newData === void 0 ? void 0 : newData.length) {
        let oldTemplate;
        let newTemplate;
        let templateInMap;
        for (let i = 0; i < newData.length; i++) {
            try {
                oldTemplate = oldData && i < oldData.length && oldData[i];
                newTemplate = newData[i];
                let newModel;
                // if we don't have a template model already, create one here to help with the comparison
                if (!Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* isStateTreeNode */ "g"])(newTemplate)) {
                    newModel = _models_TemplateModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].create({ ...newTemplate, tip: newTemplate.title });
                    newTemplate = newModel;
                }
                templateInMap = lookupMap[newTemplate === null || newTemplate === void 0 ? void 0 : newTemplate.id];
                // if the old array is shorter (couldn't find the old template), or we have different templates on the same position
                if (!oldTemplate || !lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(getObjectSnapshot(oldTemplate), getObjectSnapshot(newTemplate))) {
                    // If the new template is different than what we already have in the map, use or create a new model.
                    // Templates in collections have slightly different values than templates in other tabs (local paths instead of URLs),
                    // For this reason we consider that if they have the same ID and licensing status, we can reuse the template in the map.
                    // TBD if this approach is correct or we should do a deeper comparison
                    if (!templateInMap ||
                        (!lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(getObjectSnapshot(newTemplate), getObjectSnapshot(templateInMap)) &&
                            newTemplate.id === templateInMap.id &&
                            (newTemplate.licensedTime !== templateInMap.licensedTime ||
                                !newTemplate.downloadStatus.equals(templateInMap.downloadStatus)))) {
                        if (!newModel) {
                            newModel = _models_TemplateModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].create({ ...newTemplate, tip: newTemplate.title });
                        }
                        lookupMap[newTemplate.id] = newModel;
                        newArray.push(newModel);
                    }
                    else {
                        // reuse the old model
                        newArray.push(templateInMap);
                    }
                }
                else {
                    // reuse the old model - if we have a plain object, create it now
                    let model;
                    if (templateInMap) {
                        model = templateInMap;
                    }
                    else {
                        model = _models_TemplateModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].create({ ...oldTemplate, tip: oldTemplate.title });
                        lookupMap[oldTemplate.id] = model;
                    }
                    newArray.push(model);
                }
            }
            catch (error) {
                _logger.error(`Error in template ${(_a = newData === null || newData === void 0 ? void 0 : newData[i]) === null || _a === void 0 ? void 0 : _a.title}: ${error}`);
            }
        }
    }
    return newArray;
}
/**
 * Verifies if all the fields and values from the first object are present in the second.
 *
 * @param contained The object that needs to be contained.
 * @param container The containing object.
 *
 * @returns If container has all the keys in contained and the same values on them.
 */
function objectIsContained(contained, container) {
    return Object.keys(contained).reduce((acc, key) => container && lodash_isequal__WEBPACK_IMPORTED_MODULE_2___default()(container[key], contained[key]) && acc, true);
}
/**
 * Creates a new object that only contains the selected fields from the source object.
 *
 * @param object The source object.
 * @param properties The properties that will be extracted from the object.
 *
 * @returns A new object that contains only the selected fields from the source object.
 */
function pickPropertiesFromObject(object = {}, properties = {}) {
    return Object.keys(object).reduce((accumulator, currentKey) => {
        if (Object.prototype.hasOwnProperty.call(properties, currentKey)) {
            if (typeof properties[currentKey] === 'object' && Object.keys(properties[currentKey]).length > 0) {
                accumulator[currentKey] = pickPropertiesFromObject(object[currentKey], properties[currentKey]);
            }
            else {
                accumulator[currentKey] = object[currentKey];
            }
        }
        return accumulator;
    }, {});
}
/**
 * Replace special characters such as arabic numbers, commas and full-width characters.
 *
 * @param raw The Expression to be converted.
 * @returns Return converted expression.
 */
const replaceSpecialCharacters = function (raw) {
    let expr;
    // First of all remove spaces, replace all commas with dot and make everything lowercase.
    expr = raw.replace(/\s+/g, '').replace(/,/g, '.').replace(/”/g, '"').replace(/’/g, "'").toLowerCase();
    // Conversion of arabic/hebrew numerals to english numerals
    expr = expr
        .replace(/[٠١٢٣٤٥٦٧٨٩]/g, function (str) {
        return str.charCodeAt(0) - 1632;
    })
        .replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function (str) {
        return str.charCodeAt(0) - 1776;
    });
    // converting full-width characters to normal width
    expr = expr
        .replace(/[\uff01-\uff5e]/g, function (str) {
        return String.fromCharCode(str.charCodeAt(0) - 0xfee0);
    })
        .replace(/[。]/g, function (str) {
        return '.';
    });
    return expr;
};
/**
 * Returns first defined element of the array or undefined if none.
 *
 * @param arr The array of values.
 * @returns First defined element of the array or undefined if none.
 */
const firstDefined = function (arr) {
    if (!Array.isArray(arr) || arr.length === 0) {
        return;
    }
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] !== undefined) {
            return arr[i];
        }
    }
};


/***/ }),

/***/ "cIFk":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Preset category types - the same types will be used for both templates and presets.
 *
 * @enum {string}
 */
var DocumentTemplateCategoryTypes;
(function (DocumentTemplateCategoryTypes) {
    DocumentTemplateCategoryTypes["RECENT"] = "recent";
    DocumentTemplateCategoryTypes["SAVED"] = "saved";
    DocumentTemplateCategoryTypes["PHOTO"] = "photo";
    DocumentTemplateCategoryTypes["PRINT"] = "print";
    DocumentTemplateCategoryTypes["MOBILE"] = "mobile";
    DocumentTemplateCategoryTypes["FILM"] = "film";
    DocumentTemplateCategoryTypes["WEB"] = "web";
    DocumentTemplateCategoryTypes["ART"] = "art";
    DocumentTemplateCategoryTypes["TEMPLATES"] = "template";
    DocumentTemplateCategoryTypes["ALL"] = "all";
})(DocumentTemplateCategoryTypes || (DocumentTemplateCategoryTypes = {}));
/* harmony default export */ __webpack_exports__["a"] = (DocumentTemplateCategoryTypes);


/***/ }),

/***/ "cSJO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var error_msgs_1 = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var METADATA_KEY = __webpack_require__("xfSm");

function _injectProperties(instance, childRequests, resolveRequest) {
  var propertyInjectionsRequests = childRequests.filter(function (childRequest) {
    return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty;
  });
  var propertyInjections = propertyInjectionsRequests.map(resolveRequest);
  propertyInjectionsRequests.forEach(function (r, index) {
    var propertyName = "";
    propertyName = r.target.name.value();
    var injection = propertyInjections[index];
    instance[propertyName] = injection;
  });
  return instance;
}

function _createInstance(Func, injections) {
  return new (Func.bind.apply(Func, [void 0].concat(injections)))();
}

function _postConstruct(constr, result) {
  if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {
    var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);

    try {
      result[data.value]();
    } catch (e) {
      throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));
    }
  }
}

function resolveInstance(constr, childRequests, resolveRequest) {
  var result = null;

  if (childRequests.length > 0) {
    var constructorInjectionsRequests = childRequests.filter(function (childRequest) {
      return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument;
    });
    var constructorInjections = constructorInjectionsRequests.map(resolveRequest);
    result = _createInstance(constr, constructorInjections);
    result = _injectProperties(result, childRequests, resolveRequest);
  } else {
    result = new constr();
  }

  _postConstruct(constr, result);

  return result;
}

exports.resolveInstance = resolveInstance;

/***/ }),

/***/ "cZ5Q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERRORS_MSGS = __webpack_require__("MON2");

var METADATA_KEY = __webpack_require__("xfSm");

function injectable() {
  return function (target) {
    if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {
      throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);
    }

    var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
    Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);
    return target;
  };
}

exports.injectable = injectable;

/***/ }),

/***/ "d9O0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
var idCounter = 0;

function id() {
  return idCounter++;
}

exports.id = id;

/***/ }),

/***/ "dI71":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inheritsLoose; });

// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  _setPrototypeOf(subClass, superClass);
}

/***/ }),

/***/ "dX1H":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var id_1 = __webpack_require__("d9O0");

var metadata_1 = __webpack_require__("GXnB");

var queryable_string_1 = __webpack_require__("zxMA");

var Target = function () {
  function Target(type, name, serviceIdentifier, namedOrTagged) {
    this.id = id_1.id();
    this.type = type;
    this.serviceIdentifier = serviceIdentifier;
    this.name = new queryable_string_1.QueryableString(name || "");
    this.metadata = new Array();
    var metadataItem = null;

    if (typeof namedOrTagged === "string") {
      metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);
    } else if (namedOrTagged instanceof metadata_1.Metadata) {
      metadataItem = namedOrTagged;
    }

    if (metadataItem !== null) {
      this.metadata.push(metadataItem);
    }
  }

  Target.prototype.hasTag = function (key) {
    for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {
      var m = _a[_i];

      if (m.key === key) {
        return true;
      }
    }

    return false;
  };

  Target.prototype.isArray = function () {
    return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);
  };

  Target.prototype.matchesArray = function (name) {
    return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);
  };

  Target.prototype.isNamed = function () {
    return this.hasTag(METADATA_KEY.NAMED_TAG);
  };

  Target.prototype.isTagged = function () {
    return this.metadata.some(function (m) {
      return m.key !== METADATA_KEY.INJECT_TAG && m.key !== METADATA_KEY.MULTI_INJECT_TAG && m.key !== METADATA_KEY.NAME_TAG && m.key !== METADATA_KEY.UNMANAGED_TAG && m.key !== METADATA_KEY.NAMED_TAG;
    });
  };

  Target.prototype.isOptional = function () {
    return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
  };

  Target.prototype.getNamedTag = function () {
    if (this.isNamed()) {
      return this.metadata.filter(function (m) {
        return m.key === METADATA_KEY.NAMED_TAG;
      })[0];
    }

    return null;
  };

  Target.prototype.getCustomTags = function () {
    if (this.isTagged()) {
      return this.metadata.filter(function (m) {
        return m.key !== METADATA_KEY.INJECT_TAG && m.key !== METADATA_KEY.MULTI_INJECT_TAG && m.key !== METADATA_KEY.NAME_TAG && m.key !== METADATA_KEY.UNMANAGED_TAG && m.key !== METADATA_KEY.NAMED_TAG;
      });
    }

    return null;
  };

  Target.prototype.matchesNamedTag = function (name) {
    return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);
  };

  Target.prototype.matchesTag = function (key) {
    var _this = this;

    return function (value) {
      for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {
        var m = _a[_i];

        if (m.key === key && m.value === value) {
          return true;
        }
      }

      return false;
    };
  };

  return Target;
}();

exports.Target = Target;

/***/ }),

/***/ "doU7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
var BindingCount = {
  MultipleBindingsAvailable: 2,
  NoBindingsAvailable: 0,
  OnlyOneBindingAvailable: 1
};
exports.BindingCount = BindingCount;

/***/ }),

/***/ "dxzI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var id_1 = __webpack_require__("d9O0");

var ContainerModule = function () {
  function ContainerModule(registry) {
    this.id = id_1.id();
    this.registry = registry;
  }

  return ContainerModule;
}();

exports.ContainerModule = ContainerModule;

var AsyncContainerModule = function () {
  function AsyncContainerModule(registry) {
    this.id = id_1.id();
    this.registry = registry;
  }

  return AsyncContainerModule;
}();

exports.AsyncContainerModule = AsyncContainerModule;

/***/ }),

/***/ "ekoL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIllu1080p_96.svg
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIllu1080p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84 70H12a3 3 0 0 1-3-3V28a3 3 0 0 1 3-3h72a3 3 0 0 1 3 3v39a3 3 0 0 1-3 3zM12 27a1 1 0 0 0-1 1v39a1 1 0 0 0 1 1h72a1 1 0 0 0 1-1V28a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.866 52.114a2.283 2.283 0 0 1 .361.027 5.254 5.254 0 0 1 4.345 4.788 5.512 5.512 0 0 1-2.166 3.264 10.645 10.645 0 0 1-6.28 1.636 21.3 21.3 0 0 1-3.3-.267l-.037-.006a8.078 8.078 0 0 0 2.33-4.63 8.829 8.829 0 0 1 1.787-3.626 4.912 4.912 0 0 1 2.96-1.186zm0-1.5a6.384 6.384 0 0 0-4.021 1.621 10.219 10.219 0 0 0-2.182 4.343c-.458 1.918-.89 3.729-3.322 4.718A.594.594 0 0 0 32 62a.886.886 0 0 0 .637.65c.578.145 1.239.281 1.955.394a23 23 0 0 0 3.53.285 12.323 12.323 0 0 0 7.155-1.918c1.224-.838 2.805-2.948 2.791-4.5a6.738 6.738 0 0 0-5.612-6.256 3.862 3.862 0 0 0-.59-.041z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.523 33.2c-.031.93-1.1 4.77-12.521 17.947a10.919 10.919 0 0 0-3.245-3.121c4.688-5.149 13.022-14.267 15.766-14.826zm.246-1.528c-3.344 0-12.037 9.774-18.459 16.812a9.936 9.936 0 0 1 5.458 5.211C56.922 45.56 66.006 34.378 63.627 32a1.162 1.162 0 0 0-.858-.329z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIllu1000_96.svg
function S_IlluArtAndIllu1000_96_extends() { S_IlluArtAndIllu1000_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluArtAndIllu1000_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIllu1000_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluArtAndIllu1000_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 72H27a3 3 0 0 1-3-3V27a3 3 0 0 1 3-3h42a3 3 0 0 1 3 3v42a3 3 0 0 1-3 3zM27 26a1 1 0 0 0-1 1v42a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V27a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32 30.75A1.25 1.25 0 1 0 33.25 32 1.252 1.252 0 0 0 32 30.75zm8 0A1.25 1.25 0 1 0 41.25 32 1.252 1.252 0 0 0 40 30.75zm8 0A1.25 1.25 0 1 0 49.25 32 1.252 1.252 0 0 0 48 30.75zm8 0A1.25 1.25 0 1 0 57.25 32 1.252 1.252 0 0 0 56 30.75zm8 2.5A1.25 1.25 0 1 0 62.75 32 1.252 1.252 0 0 0 64 33.25zm-32 5.5A1.25 1.25 0 1 0 33.25 40 1.252 1.252 0 0 0 32 38.75zm8 0A1.25 1.25 0 1 0 41.25 40 1.252 1.252 0 0 0 40 38.75zm8 0A1.25 1.25 0 1 0 49.25 40 1.252 1.252 0 0 0 48 38.75zm8 0A1.25 1.25 0 1 0 57.25 40 1.252 1.252 0 0 0 56 38.75zm8 0A1.25 1.25 0 1 0 65.25 40 1.252 1.252 0 0 0 64 38.75zm-32 8A1.25 1.25 0 1 0 33.25 48 1.252 1.252 0 0 0 32 46.75zm8 0A1.25 1.25 0 1 0 41.25 48 1.252 1.252 0 0 0 40 46.75zm8 0A1.25 1.25 0 1 0 49.25 48 1.252 1.252 0 0 0 48 46.75zm8 0A1.25 1.25 0 1 0 57.25 48 1.252 1.252 0 0 0 56 46.75zm8 0A1.25 1.25 0 1 0 65.25 48 1.252 1.252 0 0 0 64 46.75zm-32 8A1.25 1.25 0 1 0 33.25 56 1.252 1.252 0 0 0 32 54.75zm8 0A1.25 1.25 0 1 0 41.25 56 1.252 1.252 0 0 0 40 54.75zm8 0A1.25 1.25 0 1 0 49.25 56 1.252 1.252 0 0 0 48 54.75zm8 0A1.25 1.25 0 1 0 57.25 56 1.252 1.252 0 0 0 56 54.75zm8 0A1.25 1.25 0 1 0 65.25 56 1.252 1.252 0 0 0 64 54.75zm-32 8A1.25 1.25 0 1 0 33.25 64 1.252 1.252 0 0 0 32 62.75zm8 0A1.25 1.25 0 1 0 41.25 64 1.252 1.252 0 0 0 40 62.75zm8 0A1.25 1.25 0 1 0 49.25 64 1.252 1.252 0 0 0 48 62.75zm8 0A1.25 1.25 0 1 0 57.25 64 1.252 1.252 0 0 0 56 62.75zm8 0A1.25 1.25 0 1 0 65.25 64 1.252 1.252 0 0 0 64 62.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIllu2000_96.svg
function S_IlluArtAndIllu2000_96_extends() { S_IlluArtAndIllu2000_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluArtAndIllu2000_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIllu2000_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluArtAndIllu2000_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86 89H10a3 3 0 0 1-3-3V10a3 3 0 0 1 3-3h76a3 3 0 0 1 3 3v76a3 3 0 0 1-3 3zM10 9a1 1 0 0 0-1 1v76a1 1 0 0 0 1 1h76a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M16 14.75A1.25 1.25 0 1 0 17.25 16 1.252 1.252 0 0 0 16 14.75zm8 0A1.25 1.25 0 1 0 25.25 16 1.252 1.252 0 0 0 24 14.75zm8 0A1.25 1.25 0 1 0 33.25 16 1.252 1.252 0 0 0 32 14.75zm8 0A1.25 1.25 0 1 0 41.25 16 1.252 1.252 0 0 0 40 14.75zm8 0A1.25 1.25 0 1 0 49.25 16 1.252 1.252 0 0 0 48 14.75zm8 0A1.25 1.25 0 1 0 57.25 16 1.252 1.252 0 0 0 56 14.75zm8 0A1.25 1.25 0 1 0 65.25 16 1.252 1.252 0 0 0 64 14.75zm-48 8A1.25 1.25 0 1 0 17.25 24 1.252 1.252 0 0 0 16 22.75zm8 0A1.25 1.25 0 1 0 25.25 24 1.252 1.252 0 0 0 24 22.75zm8 0A1.25 1.25 0 1 0 33.25 24 1.252 1.252 0 0 0 32 22.75zm8 0A1.25 1.25 0 1 0 41.25 24 1.252 1.252 0 0 0 40 22.75zm8 0A1.25 1.25 0 1 0 49.25 24 1.252 1.252 0 0 0 48 22.75zm8 0A1.25 1.25 0 1 0 57.25 24 1.252 1.252 0 0 0 56 22.75zm8 0A1.25 1.25 0 1 0 65.25 24 1.252 1.252 0 0 0 64 22.75zm-48 8A1.25 1.25 0 1 0 17.25 32 1.252 1.252 0 0 0 16 30.75zm8 0A1.25 1.25 0 1 0 25.25 32 1.252 1.252 0 0 0 24 30.75zm8 0A1.25 1.25 0 1 0 33.25 32 1.252 1.252 0 0 0 32 30.75zm8 0A1.25 1.25 0 1 0 41.25 32 1.252 1.252 0 0 0 40 30.75zm8 0A1.25 1.25 0 1 0 49.25 32 1.252 1.252 0 0 0 48 30.75zm8 0A1.25 1.25 0 1 0 57.25 32 1.252 1.252 0 0 0 56 30.75zm8 0A1.25 1.25 0 1 0 65.25 32 1.252 1.252 0 0 0 64 30.75zm-48 8A1.25 1.25 0 1 0 17.25 40 1.252 1.252 0 0 0 16 38.75zm8 0A1.25 1.25 0 1 0 25.25 40 1.252 1.252 0 0 0 24 38.75zm8 0A1.25 1.25 0 1 0 33.25 40 1.252 1.252 0 0 0 32 38.75zm8 0A1.25 1.25 0 1 0 41.25 40 1.252 1.252 0 0 0 40 38.75zm8 0A1.25 1.25 0 1 0 49.25 40 1.252 1.252 0 0 0 48 38.75zm8 0A1.25 1.25 0 1 0 57.25 40 1.252 1.252 0 0 0 56 38.75zm8 0A1.25 1.25 0 1 0 65.25 40 1.252 1.252 0 0 0 64 38.75zm-48 8A1.25 1.25 0 1 0 17.25 48 1.252 1.252 0 0 0 16 46.75zm8 0A1.25 1.25 0 1 0 25.25 48 1.252 1.252 0 0 0 24 46.75zm8 0A1.25 1.25 0 1 0 33.25 48 1.252 1.252 0 0 0 32 46.75zm8 0A1.25 1.25 0 1 0 41.25 48 1.252 1.252 0 0 0 40 46.75zm8 0A1.25 1.25 0 1 0 49.25 48 1.252 1.252 0 0 0 48 46.75zm8 0A1.25 1.25 0 1 0 57.25 48 1.252 1.252 0 0 0 56 46.75zm8 0A1.25 1.25 0 1 0 65.25 48 1.252 1.252 0 0 0 64 46.75zm-48 8A1.25 1.25 0 1 0 17.25 56 1.252 1.252 0 0 0 16 54.75zm8 0A1.25 1.25 0 1 0 25.25 56 1.252 1.252 0 0 0 24 54.75zm8 0A1.25 1.25 0 1 0 33.25 56 1.252 1.252 0 0 0 32 54.75zm8 0A1.25 1.25 0 1 0 41.25 56 1.252 1.252 0 0 0 40 54.75zm8 0A1.25 1.25 0 1 0 49.25 56 1.252 1.252 0 0 0 48 54.75zm8 0A1.25 1.25 0 1 0 57.25 56 1.252 1.252 0 0 0 56 54.75zm8 0A1.25 1.25 0 1 0 65.25 56 1.252 1.252 0 0 0 64 54.75zm-48 8A1.25 1.25 0 1 0 17.25 64 1.252 1.252 0 0 0 16 62.75zm8 0A1.25 1.25 0 1 0 25.25 64 1.252 1.252 0 0 0 24 62.75zm8 0A1.25 1.25 0 1 0 33.25 64 1.252 1.252 0 0 0 32 62.75zm8 0A1.25 1.25 0 1 0 41.25 64 1.252 1.252 0 0 0 40 62.75zm8 0A1.25 1.25 0 1 0 49.25 64 1.252 1.252 0 0 0 48 62.75zm8 0A1.25 1.25 0 1 0 57.25 64 1.252 1.252 0 0 0 56 62.75zm8 0A1.25 1.25 0 1 0 65.25 64 1.252 1.252 0 0 0 64 62.75zm8-48A1.25 1.25 0 1 0 73.25 16 1.252 1.252 0 0 0 72 14.75zm0 8A1.25 1.25 0 1 0 73.25 24 1.252 1.252 0 0 0 72 22.75zm0 8A1.25 1.25 0 1 0 73.25 32 1.252 1.252 0 0 0 72 30.75zm0 8A1.25 1.25 0 1 0 73.25 40 1.252 1.252 0 0 0 72 38.75zm0 8A1.25 1.25 0 1 0 73.25 48 1.252 1.252 0 0 0 72 46.75zm0 8A1.25 1.25 0 1 0 73.25 56 1.252 1.252 0 0 0 72 54.75zm0 8A1.25 1.25 0 1 0 73.25 64 1.252 1.252 0 0 0 72 62.75zm8-45.5A1.25 1.25 0 1 0 78.75 16 1.252 1.252 0 0 0 80 17.25zm0 5.5A1.25 1.25 0 1 0 81.25 24 1.252 1.252 0 0 0 80 22.75zm0 8A1.25 1.25 0 1 0 81.25 32 1.252 1.252 0 0 0 80 30.75zm0 8A1.25 1.25 0 1 0 81.25 40 1.252 1.252 0 0 0 80 38.75zm0 8A1.25 1.25 0 1 0 81.25 48 1.252 1.252 0 0 0 80 46.75zm0 8A1.25 1.25 0 1 0 81.25 56 1.252 1.252 0 0 0 80 54.75zm0 8A1.25 1.25 0 1 0 81.25 64 1.252 1.252 0 0 0 80 62.75zm-64 8A1.25 1.25 0 1 0 17.25 72 1.252 1.252 0 0 0 16 70.75zm8 0A1.25 1.25 0 1 0 25.25 72 1.252 1.252 0 0 0 24 70.75zm8 0A1.25 1.25 0 1 0 33.25 72 1.252 1.252 0 0 0 32 70.75zm8 0A1.25 1.25 0 1 0 41.25 72 1.252 1.252 0 0 0 40 70.75zm8 0A1.25 1.25 0 1 0 49.25 72 1.252 1.252 0 0 0 48 70.75zm8 0A1.25 1.25 0 1 0 57.25 72 1.252 1.252 0 0 0 56 70.75zm8 0A1.25 1.25 0 1 0 65.25 72 1.252 1.252 0 0 0 64 70.75zm8 0A1.25 1.25 0 1 0 73.25 72 1.252 1.252 0 0 0 72 70.75zm8 0A1.25 1.25 0 1 0 81.25 72 1.252 1.252 0 0 0 80 70.75zm-64 8A1.25 1.25 0 1 0 17.25 80 1.252 1.252 0 0 0 16 78.75zm8 0A1.25 1.25 0 1 0 25.25 80 1.252 1.252 0 0 0 24 78.75zm8 0A1.25 1.25 0 1 0 33.25 80 1.252 1.252 0 0 0 32 78.75zm8 0A1.25 1.25 0 1 0 41.25 80 1.252 1.252 0 0 0 40 78.75zm8 0A1.25 1.25 0 1 0 49.25 80 1.252 1.252 0 0 0 48 78.75zm8 0A1.25 1.25 0 1 0 57.25 80 1.252 1.252 0 0 0 56 78.75zm8 0A1.25 1.25 0 1 0 65.25 80 1.252 1.252 0 0 0 64 78.75zm8 0A1.25 1.25 0 1 0 73.25 80 1.252 1.252 0 0 0 72 78.75zm8 0A1.25 1.25 0 1 0 81.25 80 1.252 1.252 0 0 0 80 78.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIlluPoster_96.svg
function S_IlluArtAndIlluPoster_96_extends() { S_IlluArtAndIlluPoster_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluArtAndIlluPoster_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIlluPoster_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluArtAndIlluPoster_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77.587 91.087h-59a3 3 0 0 1-3-3v-80a3 3 0 0 1 3-3h59a3 3 0 0 1 3 3v80a3 3 0 0 1-3 3zm-59-84a1 1 0 0 0-1 1v80a1 1 0 0 0 1 1h59a1 1 0 0 0 1-1v-80a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M40.29 51.342a3.453 3.453 0 0 1 .522.038 7.106 7.106 0 0 1 5.866 6.486c.012 1.3-1.608 3.582-2.922 4.483-1.992 1.43-4.757 2.156-8.221 2.156a27.543 27.543 0 0 1-4.255-.344c-.327-.051-.65-.108-.967-.169 2.456-1.632 3.032-4.049 3.55-6.221a11.65 11.65 0 0 1 2.375-4.807 6.611 6.611 0 0 1 4.052-1.622zm0-1.5a8.115 8.115 0 0 0-5.112 2.06 12.98 12.98 0 0 0-2.778 5.521c-.582 2.438-1.131 4.741-4.223 6a.754.754 0 0 0-.428.9 1.128 1.128 0 0 0 .809.827 29.15 29.15 0 0 0 2.485.5 29.4 29.4 0 0 0 4.488.362c3 0 6.439-.529 9.1-2.438 1.556-1.066 3.566-3.748 3.547-5.715a8.562 8.562 0 0 0-7.134-7.959 4.787 4.787 0 0 0-.754-.058z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.862 27.261h.045c.176.331 1.186 3.791-16.316 23.922a13.6 13.6 0 0 0-4.721-4.54l.089-.1c6.569-7.209 17.563-19.282 20.903-19.282zm0-1.5c-4.25 0-15.3 12.425-23.466 21.372a12.635 12.635 0 0 1 6.939 6.624c9.094-10.341 20.642-24.557 17.618-27.58a1.479 1.479 0 0 0-1.091-.416z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIlluPostcard_96.svg
function S_IlluArtAndIlluPostcard_96_extends() { S_IlluArtAndIlluPostcard_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluArtAndIlluPostcard_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIlluPostcard_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluArtAndIlluPostcard_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70 86H26a3 3 0 0 1-3-3V15a3 3 0 0 1 3-3h44a3 3 0 0 1 3 3v68a3 3 0 0 1-3 3zM26 14a1 1 0 0 0-1 1v68a1 1 0 0 0 1 1h44a1 1 0 0 0 1-1V15a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M42 51.582a2.5 2.5 0 0 1 .377.027 5.44 5.44 0 0 1 4.5 4.958 5.71 5.71 0 0 1-2.242 3.386 10.968 10.968 0 0 1-6.474 1.688 21.954 21.954 0 0 1-3.393-.275l-.126-.02a8.176 8.176 0 0 0 2.448-4.791 9.132 9.132 0 0 1 1.843-3.747A5.094 5.094 0 0 1 42 51.582zm0-1.5a6.561 6.561 0 0 0-4.131 1.664 10.5 10.5 0 0 0-2.241 4.461c-.47 1.97-.913 3.83-3.412 4.846a.61.61 0 0 0-.346.723.91.91 0 0 0 .654.668 21.92 21.92 0 0 0 2.008.4 23.637 23.637 0 0 0 3.626.293 12.653 12.653 0 0 0 7.349-1.97c1.257-.861 2.881-3.028 2.867-4.618a6.919 6.919 0 0 0-5.765-6.425 3.8 3.8 0 0 0-.609-.042z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63.256 32.144c.005.887-.943 4.749-12.907 18.55a11.181 11.181 0 0 0-3.393-3.263c4.838-5.312 13.504-14.8 16.3-15.287zm.21-1.519c-3.435 0-12.364 10.039-18.96 17.268a10.205 10.205 0 0 1 5.606 5.352c7.348-8.355 16.678-19.84 14.235-22.284a1.192 1.192 0 0 0-.881-.336z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluArtAndIllu720p_96.svg
function S_IlluArtAndIllu720p_96_extends() { S_IlluArtAndIllu720p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluArtAndIllu720p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluArtAndIllu720p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluArtAndIllu720p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71 62H25a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h46a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zM25 34a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h46a1 1 0 0 0 1-1V35a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.16 50.25a1.055 1.055 0 0 1 .17.012 2.911 2.911 0 0 1 2.415 2.644 3.257 3.257 0 0 1-1.2 1.746 6.4 6.4 0 0 1-3.721.957 12.557 12.557 0 0 1-1.339-.074 6.255 6.255 0 0 0 1.062-2.551 5.212 5.212 0 0 1 1.02-2.1 2.718 2.718 0 0 1 1.593-.634zm0-1.3a3.994 3.994 0 0 0-2.517 1.014 6.394 6.394 0 0 0-1.366 2.719c-.287 1.2-.557 2.334-2.08 2.954a.371.371 0 0 0-.211.44.557.557 0 0 0 .4.407c.362.091.776.176 1.224.247a14.482 14.482 0 0 0 2.21.178 7.711 7.711 0 0 0 4.479-1.2 4.262 4.262 0 0 0 1.747-2.814 4.216 4.216 0 0 0-3.513-3.916 2.4 2.4 0 0 0-.373-.029z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.257 38.391zm-.7.287c-.439 1.136-1.979 3.876-7.278 10.026a7.078 7.078 0 0 0-1.5-1.445c2.476-2.722 6.767-7.38 8.775-8.581zm.692-1.587c-2.094 0-7.536 6.119-11.556 10.525a6.219 6.219 0 0 1 3.417 3.262c4.478-5.093 10.165-12.092 8.675-13.582a.727.727 0 0 0-.539-.205z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluClipboard_96.svg
function S_IlluClipboard_96_extends() { S_IlluClipboard_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluClipboard_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluClipboard_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluClipboard_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 84H24a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h11a1 1 0 0 1 1 1v3a2 2 0 0 0 2 2h20a2.01 2.01 0 0 0 2-1.968l.05-3.049a1 1 0 0 1 1-.983H72a3 3 0 0 1 3 3v62a3 3 0 0 1-3 3zM24 18a1 1 0 0 0-1 1v62a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1h-9.966L62 20.065A4.019 4.019 0 0 1 58 24H38a4 4 0 0 1-4-4v-2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57 18h-4a1 1 0 0 1-1-1v-1a4 4 0 0 0-4.837-3.916A4.1 4.1 0 0 0 44 16.188V17a1 1 0 0 1-1 1h-4a1 1 0 0 1 0-2h3a6.1 6.1 0 0 1 4.767-5.877A6.005 6.005 0 0 1 54 16h3a1 1 0 0 1 0 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoDefaultPs_96.svg
function S_IlluPhotoDefaultPs_96_extends() { S_IlluPhotoDefaultPs_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoDefaultPs_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoDefaultPs_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoDefaultPs_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M14.629 69.479A.75.75 0 0 1 14.1 68.2l23.406-23.316a2.193 2.193 0 0 1 1.548-.635h.034a2.189 2.189 0 0 1 1.558.677L62.416 68.1a.75.75 0 0 1-1.094 1.027L39.558 45.96a.7.7 0 0 0-.493-.211.821.821 0 0 0-.5.2L15.158 69.26a.747.747 0 0 1-.529.219zm64.378-.116a.748.748 0 0 1-.547-.237L62.481 52.1a1.033 1.033 0 0 0-.728-.3 1.073 1.073 0 0 0-.74.281l-4.786 4.936a.75.75 0 0 1-1.077-1.044l4.8-4.949a2.611 2.611 0 0 1 1.825-.724 2.548 2.548 0 0 1 1.8.765L79.554 68.1a.749.749 0 0 1-.547 1.263zm-4.136-29.842h-.1a6.756 6.756 0 0 1-6.649-6.85 6.784 6.784 0 0 1 6.853-6.649 6.75 6.75 0 0 1-.1 13.5zm0-12a5.25 5.25 0 0 0-.081 10.5h.08a5.25 5.25 0 0 0 .081-10.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85.087 76.587h-74a3 3 0 0 1-3-3v-52a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v52a3 3 0 0 1-3 3zm-74-56a1 1 0 0 0-1 1v52a1 1 0 0 0 1 1h74a1 1 0 0 0 1-1v-52a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintA4_96.svg
function S_IlluPrintA4_96_extends() { S_IlluPrintA4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintA4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintA4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintA4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 79H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 32H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 32zM57 20.414V29a1 1 0 0 0 1 1h8.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintA6_96.svg
function S_IlluPrintA6_96_extends() { S_IlluPrintA6_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintA6_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintA6_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintA6_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M61 70H35a3 3 0 0 1-3-3V29a3 3 0 0 1 3-3h14a1 1 0 0 1 0 2H35a1 1 0 0 0-1 1v38a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V41a1 1 0 0 1 2 0v26a3 3 0 0 1-3 3zm2-32h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 63 38zm-9-8.586V35a1 1 0 0 0 1 1h5.586z",
  fill: "#b3b3b3",
  "data-name": "ICONS 96"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintA5_96.svg
function S_IlluPrintA5_96_extends() { S_IlluPrintA5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintA5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintA5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintA5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 35H56a3 3 0 0 1-3-3V22a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 66 35zM55 24.414V32a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 73H32a3 3 0 0 1-3-3V24a3 3 0 0 1 3-3h17.916a1 1 0 0 1 0 2H32a1 1 0 0 0-1 1v46a1 1 0 0 0 1 1h32a1 1 0 0 0 1-1V37.956a1 1 0 0 1 2 0V70a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintA3_96.svg
function S_IlluPrintA3_96_extends() { S_IlluPrintA3_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintA3_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintA3_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintA3_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 90H21a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3h36a1 1 0 0 1 0 2H21a1 1 0 0 0-1 1v78a1 1 0 0 0 1 1h54a1 1 0 0 0 1-1V27a1 1 0 0 1 2 0v60a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77 24H63a3 3 0 0 1-3-3V7a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 77 24zM62 9.414V21a1 1 0 0 0 1 1h11.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintB5_96.svg
function S_IlluPrintB5_96_extends() { S_IlluPrintB5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintB5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintB5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintB5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M53.617 21.076a1 1 0 0 1 1.09.217l12 12A1 1 0 0 1 66 35H56a3 3 0 0 1-3-3V22a1 1 0 0 1 .617-.924zM55 24.414V32a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M30 24v46a3 3 0 0 0 3 3h31a3 3 0 0 0 3-3V37.927a1 1 0 1 0-2 0V70a1 1 0 0 1-1 1H33a1 1 0 0 1-1-1V24a1 1 0 0 1 1-1h17a1 1 0 0 0 0-2H33a3 3 0 0 0-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintB4_96.svg
function S_IlluPrintB4_96_extends() { S_IlluPrintB4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintB4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintB4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintB4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M58.617 13.076a1 1 0 0 1 1.09.217l13 13A1 1 0 0 1 72 28H61a3 3 0 0 1-3-3V14a1 1 0 0 1 .617-.924zM60 16.414V25a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M24 16v63a3 3 0 0 0 3 3h43a3 3 0 0 0 3-3V31a1 1 0 0 0-2 0v48a1 1 0 0 1-1 1H27a1 1 0 0 1-1-1V16a1 1 0 0 1 1-1h27.955a1 1 0 0 0 0-2H27a3 3 0 0 0-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintB3_96.svg
function S_IlluPrintB3_96_extends() { S_IlluPrintB3_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintB3_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintB3_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintB3_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61.617 5.076a1 1 0 0 1 1.09.217l16 16A1 1 0 0 1 78 23H64a3 3 0 0 1-3-3V6a1 1 0 0 1 .617-.924zM63 8.414V20a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M18 8v80a3 3 0 0 0 3 3h55a3 3 0 0 0 3-3V26a1 1 0 0 0-2 0v62a1 1 0 0 1-1 1H21a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1h37a1 1 0 0 0 0-2H21a3 3 0 0 0-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintC4_96.svg
function S_IlluPrintC4_96_extends() { S_IlluPrintC4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintC4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintC4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintC4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 85H24a3 3 0 0 1-3-3V14a3 3 0 0 1 3-3h30a1 1 0 0 1 0 2H24a1 1 0 0 0-1 1v68a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V32.017a1 1 0 1 1 2 0V82a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74 29H60a3 3 0 0 1-3-3V12a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 74 29zM59 14.414V26a1 1 0 0 0 1 1h11.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintC5_96.svg
function S_IlluPrintC5_96_extends() { S_IlluPrintC5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintC5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintC5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintC5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 78H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23.461a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v55a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V34.681a1 1 0 0 1 2 0V75a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 32H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 32zM57 20.414V29a1 1 0 0 0 1 1h8.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintC6_96.svg
function S_IlluPrintC6_96_extends() { S_IlluPrintC6_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintC6_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintC6_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintC6_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 72H34a3 3 0 0 1-3-3V26a3 3 0 0 1 3-3h15a1 1 0 0 1 0 2H34a1 1 0 0 0-1 1v43a1 1 0 0 0 1 1h29a1 1 0 0 0 1-1V40a1 1 0 0 1 2 0v29a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 37H55a3 3 0 0 1-3-3V24a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 65 37zM54 26.414V34a1 1 0 0 0 1 1h7.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintDL_96.svg
function S_IlluPrintDL_96_extends() { S_IlluPrintDL_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintDL_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintDL_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintDL_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 72H29a3 3 0 0 1-3-3V26a3 3 0 0 1 3-3h24a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v43a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V40a1 1 0 0 1 2 0v29a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 37H59a3 3 0 0 1-3-3V24a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 69 37zM58 26.414V34a1 1 0 0 0 1 1h7.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintJapanesePostCard_96.svg
function S_IlluPrintJapanesePostCard_96_extends() { S_IlluPrintJapanesePostCard_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintJapanesePostCard_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintJapanesePostCard_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintJapanesePostCard_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 46H59a3 3 0 0 1-3-3V33a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 69 46zM58 35.414V43a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 62H29a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h24.073a1 1 0 1 1 0 2H29a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V49a1 1 0 0 1 2 0v10a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIAndroid1080p_96.svg
function S_IlluMobileIAndroid1080p_96_extends() { S_IlluMobileIAndroid1080p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIAndroid1080p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIAndroid1080p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIAndroid1080p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 84H35c-3.645 0-6-1.962-6-5V17c0-3.038 2.355-5 6-5h26c3.645 0 6 1.962 6 5v62c0 3.038-2.355 5-6 5zM35 14c-1.2 0-4 .292-4 3v62c0 2.708 2.8 3 4 3h26c1.2 0 4-.292 4-3V17c0-2.708-2.8-3-4-3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M50.5 79.75h-4a2.25 2.25 0 0 1 0-4.5h4a2.25 2.25 0 0 1 0 4.5zm-4-3a.75.75 0 0 0 0 1.5h4a.75.75 0 0 0 0-1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M52.857 18.75h-7.714a.75.75 0 0 1 0-1.5h7.714a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M42.143 18.75H41a.75.75 0 0 1 0-1.5h1.143a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileiOS7iPadAppicon_96.svg
function S_IlluMobileiOS7iPadAppicon_96_extends() { S_IlluMobileiOS7iPadAppicon_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileiOS7iPadAppicon_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileiOS7iPadAppicon_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileiOS7iPadAppicon_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 77H30a11.013 11.013 0 0 1-11-11V30a11.013 11.013 0 0 1 11-11h36a11.013 11.013 0 0 1 11 11v36a11.013 11.013 0 0 1-11 11zM30 21a9.01 9.01 0 0 0-9 9v36a9.01 9.01 0 0 0 9 9h36a9.01 9.01 0 0 0 9-9V30a9.01 9.01 0 0 0-9-9z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 23.75a.751.751 0 0 1-.75-.75.717.717 0 0 1 .06-.29.747.747 0 0 1 1.22-.24.75.75 0 0 1-.53 1.28z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.69 70.75a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.77a.767.767 0 0 1 0-1.07.753.753 0 1 1 1.06 1.07.74.74 0 0 1-.53.21.775.775 0 0 1-.53-.21zm-2.77-2.78a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .786.786 0 0 1-.53.22.767.767 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.78-2.78a.75.75 0 0 1 1.06-1.06.737.737 0 0 1 0 1.06.725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.77a.757.757 0 1 1 1.07 0 .786.786 0 0 1-1.07 0zm-2.77-2.78a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.78-2.78a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 0 1 1.06-1.06.737.737 0 0 1 0 1.06.71.71 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.77-2.77a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06-1.06.737.737 0 0 1 0 1.06.725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.77-2.77a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.767.767 0 0 1-.53-.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 73.75a.717.717 0 0 1-.29-.06.735.735 0 0 1-.4-.4.717.717 0 0 1-.06-.29.753.753 0 0 1 .06-.29.735.735 0 0 1 .4-.4.731.731 0 0 1 .58 0 .735.735 0 0 1 .4.4.717.717 0 0 1 .06.29.749.749 0 0 1-.22.53.776.776 0 0 1-.24.16.717.717 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 73.75a.717.717 0 0 1-.29-.06.735.735 0 0 1-.4-.4.717.717 0 0 1-.06-.29.753.753 0 0 1 .06-.29.735.735 0 0 1 .4-.4.731.731 0 0 1 .58 0 .776.776 0 0 1 .24.16.633.633 0 0 1 .16.24.753.753 0 0 1 .06.29.717.717 0 0 1-.06.29.633.633 0 0 1-.16.24.776.776 0 0 1-.24.16.717.717 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.25 70.75a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.77a.753.753 0 1 1 1.06-1.07.767.767 0 0 1 0 1.07.775.775 0 0 1-.53.21.74.74 0 0 1-.53-.21zm2.77-2.78a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.77a.767.767 0 0 1 0-1.07.753.753 0 0 1 1.06 1.07.74.74 0 0 1-.53.21.775.775 0 0 1-.53-.21zm2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.78a.754.754 0 0 1 0-1.06.767.767 0 0 1 1.07 0 .754.754 0 0 1 0 1.06.76.76 0 0 1-1.07 0zm2.78-2.77a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 1 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.77a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.749.749 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 23.75a.753.753 0 0 1-.29-.06.776.776 0 0 1-.24-.16.749.749 0 0 1-.22-.53.717.717 0 0 1 .06-.29.735.735 0 0 1 .4-.4.753.753 0 0 1 .82.16.776.776 0 0 1 .16.24.717.717 0 0 1 .06.29.751.751 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "60",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "36",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.513",
  cy: "70.558",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.487",
  cy: "25.442",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.198",
  cy: "69.249",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.802",
  cy: "26.751",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.222",
  cy: "67.124",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.778",
  cy: "28.876",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.876",
  cy: "60.778",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.124",
  cy: "35.222",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.751",
  cy: "56.802",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.249",
  cy: "39.198",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.442",
  cy: "52.487",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.558",
  cy: "43.513",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.442",
  cy: "43.513",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.558",
  cy: "52.487",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.751",
  cy: "39.198",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.249",
  cy: "56.802",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.876",
  cy: "35.222",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.124",
  cy: "60.778",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.222",
  cy: "28.876",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.778",
  cy: "67.124",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.198",
  cy: "26.751",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.802",
  cy: "69.249",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.513",
  cy: "25.442",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.487",
  cy: "70.558",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "25",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "71",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.546",
  cy: "59.106",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.454",
  cy: "36.894",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.362",
  cy: "59.067",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.638",
  cy: "36.933",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.106",
  cy: "43.454",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.894",
  cy: "52.546",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.067",
  cy: "52.638",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.933",
  cy: "43.362",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileiOS7iPhoneAppicon_96.svg
function S_IlluMobileiOS7iPhoneAppicon_96_extends() { S_IlluMobileiOS7iPhoneAppicon_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileiOS7iPhoneAppicon_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileiOS7iPhoneAppicon_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileiOS7iPhoneAppicon_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62 71H34a9.01 9.01 0 0 1-9-9V34a9.01 9.01 0 0 1 9-9h28a9.01 9.01 0 0 1 9 9v28a9.01 9.01 0 0 1-9 9zM34 27a7.008 7.008 0 0 0-7 7v28a7.008 7.008 0 0 0 7 7h28a7.008 7.008 0 0 0 7-7V34a7.008 7.008 0 0 0-7-7z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.104",
  cy: "40.07",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.896",
  cy: "55.93",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.93",
  cy: "34.104",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.07",
  cy: "61.896",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.525",
  cy: "43.937",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.475",
  cy: "52.063",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.063",
  cy: "32.525",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.937",
  cy: "63.475",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32",
  cy: "48.08",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64",
  cy: "47.92",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "47.92",
  cy: "32",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48.08",
  cy: "64",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.566",
  cy: "52.219",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.434",
  cy: "43.781",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.781",
  cy: "32.566",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.219",
  cy: "63.434",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.184",
  cy: "56.07",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.816",
  cy: "39.93",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.93",
  cy: "34.184",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.07",
  cy: "61.816",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileiOS7Spotlight_96.svg
function S_IlluMobileiOS7Spotlight_96_extends() { S_IlluMobileiOS7Spotlight_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileiOS7Spotlight_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileiOS7Spotlight_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileiOS7Spotlight_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.95 34.7a.717.717 0 0 1-.29-.06.764.764 0 0 1-.24-.16.6.6 0 0 1-.16-.25.671.671 0 0 1-.06-.28.745.745 0 0 1 .22-.53.626.626 0 0 1 .24-.16.75.75 0 0 1 1.04.69.671.671 0 0 1-.06.28.7.7 0 0 1-.161.25.747.747 0 0 1-.529.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59.18 60.24a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.34-2.34a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.06 1.06.781.781 0 0 1-.529.22.765.765 0 0 1-.531-.22zm-2.35-2.34a.753.753 0 1 1 1.07 0 .786.786 0 0 1-1.07 0zm-2.341-2.35a.75.75 0 0 1 1.061-1.06.737.737 0 0 1 0 1.06.711.711 0 0 1-.53.22.746.746 0 0 1-.531-.22zm-2.339-2.34a.75.75 0 0 1 1.06-1.06.737.737 0 0 1 0 1.06.729.729 0 0 1-.53.22.74.74 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059-1.06.754.754 0 0 1 0 1.06.781.781 0 0 1-.529.22.749.749 0 0 1-.53-.22zm-2.351-2.34a.757.757 0 1 1 1.071 0 .786.786 0 0 1-.531.22.8.8 0 0 1-.54-.22zm-2.34-2.34a.767.767 0 0 1 0-1.07.754.754 0 1 1 .531 1.28.777.777 0 0 1-.531-.21zM38.1 39.16a.75.75 0 1 1 1.06 0 .727.727 0 0 1-.53.22.74.74 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.05 62.8a.668.668 0 0 1-.28-.06.6.6 0 0 1-.25-.16.746.746 0 0 1-.161-.82.779.779 0 0 1 .161-.24.716.716 0 0 1 .25-.16.707.707 0 0 1 .57 0 .776.776 0 0 1 .24.16.645.645 0 0 1 .16.24.772.772 0 0 1 .06.29.749.749 0 0 1-.22.53.633.633 0 0 1-.24.16.721.721 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.95 62.8a.929.929 0 0 1-.29-.05.794.794 0 0 1-.24-.17.745.745 0 0 1-.22-.53.75.75 0 0 1 1.5 0 .753.753 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35.76 60.24a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0zm2.34-2.34a.75.75 0 1 1 1.06 0 .769.769 0 0 1-.53.22.784.784 0 0 1-.53-.22zm2.339-2.34a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.061 1.06.759.759 0 0 1-.53.21.777.777 0 0 1-.531-.21zm2.34-2.35a.756.756 0 0 1 0-1.06.768.768 0 0 1 1.071 0 .754.754 0 0 1 0 1.06.742.742 0 0 1-.531.22.751.751 0 0 1-.54-.22zm2.351-2.34a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.059 1.06.738.738 0 0 1-.529.22.71.71 0 0 1-.53-.22zm2.34-2.34a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm2.34-2.34a.754.754 0 0 1 0-1.06.75.75 0 1 1 1.06 1.06.771.771 0 0 1-.53.22.784.784 0 0 1-.53-.22zm2.339-2.34a.767.767 0 0 1 0-1.07.753.753 0 1 1 .531 1.29.79.79 0 0 1-.531-.22zm2.341-2.34a.757.757 0 1 1 1.07 0 .786.786 0 0 1-1.07 0zm2.35-2.35a.737.737 0 0 1 0-1.06.749.749 0 1 1 1.06 1.06.738.738 0 0 1-.529.22.724.724 0 0 1-.531-.22zm2.34-2.34a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.05 34.7a.668.668 0 0 1-.28-.06.7.7 0 0 1-.411-.41.67.67 0 0 1-.059-.28.716.716 0 0 1 .059-.29.779.779 0 0 1 .161-.24.6.6 0 0 1 .25-.16.707.707 0 0 1 .57 0 .633.633 0 0 1 .24.16.645.645 0 0 1 .16.24.734.734 0 0 1 .06.29.687.687 0 0 1-.06.28.608.608 0 0 1-.16.25.776.776 0 0 1-.24.16.721.721 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.933",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.067",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "41.067",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "54.933",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.405",
  cy: "45.347",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.595",
  cy: "50.653",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.347",
  cy: "41.595",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.653",
  cy: "54.405",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.653",
  cy: "41.595",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.347",
  cy: "54.405",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.595",
  cy: "45.347",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.405",
  cy: "50.653",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "34.75",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "61.25",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.571",
  cy: "35.201",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.429",
  cy: "60.799",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.375",
  cy: "36.525",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.625",
  cy: "59.475",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.525",
  cy: "41.375",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.475",
  cy: "54.625",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.201",
  cy: "44.571",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.799",
  cy: "51.429",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.75",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.25",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.201",
  cy: "51.429",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.799",
  cy: "44.571",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.525",
  cy: "54.625",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.475",
  cy: "41.375",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.375",
  cy: "59.475",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.625",
  cy: "36.525",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.571",
  cy: "60.799",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.429",
  cy: "35.201",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60 67H36a7.008 7.008 0 0 1-7-7V36a7.008 7.008 0 0 1 7-7h24a7.008 7.008 0 0 1 7 7v24a7.008 7.008 0 0 1-7 7zM36 31a5.006 5.006 0 0 0-5 5v24a5.006 5.006 0 0 0 5 5h24a5.006 5.006 0 0 0 5-5V36a5.006 5.006 0 0 0-5-5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileiOS7Settings_96.svg
function S_IlluMobileiOS7Settings_96_extends() { S_IlluMobileiOS7Settings_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileiOS7Settings_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileiOS7Settings_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileiOS7Settings_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M37 37.75a.748.748 0 0 1-.53-.22.622.622 0 0 1-.16-.24.717.717 0 0 1-.06-.29.749.749 0 0 1 1.04-.69.76.76 0 0 1 .239.16.746.746 0 0 1 0 1.06.76.76 0 0 1-.239.16.717.717 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.27 57.33a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.2-2.2a.75.75 0 1 1 1.061 0 .743.743 0 0 1-.53.22.729.729 0 0 1-.532-.22zm-2.2-2.2a.75.75 0 1 1 1.06 0 .744.744 0 0 1-.531.22.725.725 0 0 1-.529-.22zm-2.2-2.2a.749.749 0 1 1 1.059 0 .738.738 0 0 1-.529.22.725.725 0 0 1-.53-.22zm-2.2-2.2a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm-2.2-2.2a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.2-2.2a.75.75 0 1 1 1.061 0 .75.75 0 0 1-1.061 0zm-2.2-2.2a.75.75 0 1 1 1.06 0 .744.744 0 0 1-.531.22.725.725 0 0 1-.529-.22zm-2.2-2.2a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 59.75a.75.75 0 0 1-.29-.06.776.776 0 0 1-.24-.16.749.749 0 0 1-.22-.53.717.717 0 0 1 .06-.29.759.759 0 0 1 .16-.24.776.776 0 0 1 .24-.16.731.731 0 0 1 .58 0 .738.738 0 0 1 .4.4.718.718 0 0 1 .061.29.746.746 0 0 1-.221.53.761.761 0 0 1-.529.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M37 59.75a.747.747 0 0 1-.69-1.04.622.622 0 0 1 .16-.24.749.749 0 0 1 .82-.16.76.76 0 0 1 .239.16.746.746 0 0 1 .221.53.718.718 0 0 1-.061.29.738.738 0 0 1-.4.4.717.717 0 0 1-.289.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M38.67 57.33a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0zm2.2-2.2a.75.75 0 1 1 1.06 0 .744.744 0 0 1-.531.22.725.725 0 0 1-.529-.22zm2.2-2.2a.75.75 0 1 1 1.061 0 .75.75 0 0 1-1.061 0zm2.2-2.2a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm2.2-2.2a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm2.2-2.2a.749.749 0 1 1 1.059 0 .738.738 0 0 1-.529.22.725.725 0 0 1-.53-.22zm2.2-2.2a.75.75 0 1 1 1.06 0 .744.744 0 0 1-.531.22.725.725 0 0 1-.529-.22zm2.2-2.2a.75.75 0 1 1 1.061 0 .743.743 0 0 1-.53.22.729.729 0 0 1-.532-.22zm2.2-2.2a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 37.75a.75.75 0 0 1-.29-.06.776.776 0 0 1-.24-.16.759.759 0 0 1-.16-.24.717.717 0 0 1-.06-.29.749.749 0 0 1 .22-.53.776.776 0 0 1 .24-.16.731.731 0 0 1 .58 0 .76.76 0 0 1 .239.16.746.746 0 0 1 .221.53.718.718 0 0 1-.061.29.738.738 0 0 1-.4.4.717.717 0 0 1-.289.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M58 64H38a6.006 6.006 0 0 1-6-6V38a6.006 6.006 0 0 1 6-6h20a6.006 6.006 0 0 1 6 6v20a6.006 6.006 0 0 1-6 6zM38 34a4 4 0 0 0-4 4v20a4 4 0 0 0 4 4h20a4 4 0 0 0 4-4V38a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "35.594",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "60.406",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.789",
  cy: "36.017",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.211",
  cy: "59.983",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.797",
  cy: "37.256",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.203",
  cy: "58.744",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.256",
  cy: "41.797",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.744",
  cy: "54.203",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.017",
  cy: "44.789",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.983",
  cy: "51.211",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.594",
  cy: "48",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.406",
  cy: "48",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.017",
  cy: "51.211",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.983",
  cy: "44.789",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.256",
  cy: "54.203",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.744",
  cy: "41.797",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.797",
  cy: "58.744",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.203",
  cy: "37.256",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.789",
  cy: "59.983",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.211",
  cy: "36.017",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "46.395",
  cy: "42.011",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "49.605",
  cy: "53.989",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.011",
  cy: "46.395",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.989",
  cy: "49.605",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.011",
  cy: "49.605",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.989",
  cy: "46.395",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "46.395",
  cy: "53.989",
  r: ".65"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "49.605",
  cy: "42.011",
  r: ".65"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon1024_96.svg
function S_IlluMobileMacIcon1024_96_extends() { S_IlluMobileMacIcon1024_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon1024_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon1024_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon1024_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M82 84H14a2 2 0 0 1-2-2V14a2 2 0 0 1 2-2h68a2 2 0 0 1 2 2v68a2 2 0 0 1-2 2zM14 14v68h68V14z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "16.887",
  cy: "16.887",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "19.716",
  cy: "19.716",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.544",
  cy: "22.544",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.373",
  cy: "25.373",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.627",
  cy: "70.627",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.456",
  cy: "73.456",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "76.284",
  cy: "76.284",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "79.113",
  cy: "79.113",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.06",
  cy: "25.064",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.94",
  cy: "70.936",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.064",
  cy: "31.94",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.936",
  cy: "64.06",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.833",
  cy: "22.623",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.167",
  cy: "73.377",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.623",
  cy: "36.167",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.377",
  cy: "59.833",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.247",
  cy: "20.954",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.753",
  cy: "75.046",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "20.954",
  cy: "40.753",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "75.046",
  cy: "55.247",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.44",
  cy: "20.107",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.56",
  cy: "75.893",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "20.107",
  cy: "45.56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "75.893",
  cy: "50.44",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.56",
  cy: "20.107",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.44",
  cy: "75.893",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "20.107",
  cy: "50.44",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "75.893",
  cy: "45.56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.753",
  cy: "20.954",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.247",
  cy: "75.046",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "20.954",
  cy: "55.247",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "75.046",
  cy: "40.753",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.167",
  cy: "22.623",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.833",
  cy: "73.377",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.623",
  cy: "59.833",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.377",
  cy: "36.167",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.94",
  cy: "25.064",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.06",
  cy: "70.936",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.064",
  cy: "64.06",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.936",
  cy: "31.94",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56",
  cy: "34.144",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40",
  cy: "61.856",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.144",
  cy: "40",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.856",
  cy: "56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.141",
  cy: "32.545",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.859",
  cy: "63.455",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.545",
  cy: "43.859",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.455",
  cy: "52.141",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "32",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "64",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.859",
  cy: "32.545",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.141",
  cy: "63.455",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.545",
  cy: "52.141",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.455",
  cy: "43.859",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40",
  cy: "34.144",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56",
  cy: "61.856",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.144",
  cy: "56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.856",
  cy: "40",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "79.113",
  cy: "16.887",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "76.284",
  cy: "19.716",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.456",
  cy: "22.544",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.627",
  cy: "25.373",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.373",
  cy: "70.627",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.544",
  cy: "73.456",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "19.716",
  cy: "76.284",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "16.887",
  cy: "79.113",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon512_96.svg
function S_IlluMobileMacIcon512_96_extends() { S_IlluMobileMacIcon512_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon512_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon512_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon512_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 77H21a2 2 0 0 1-2-2V21a2 2 0 0 1 2-2h54a2 2 0 0 1 2 2v54a2 2 0 0 1-2 2zM21 21v54h54V21z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.544",
  cy: "22.544",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.373",
  cy: "25.373",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.627",
  cy: "70.627",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.456",
  cy: "73.456",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "73.456",
  cy: "22.544",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.627",
  cy: "25.373",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.373",
  cy: "70.627",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "22.544",
  cy: "73.456",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.255",
  cy: "34.357",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.745",
  cy: "61.643",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.643",
  cy: "28.255",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.357",
  cy: "67.745",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.186",
  cy: "37.993",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.814",
  cy: "58.007",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.007",
  cy: "26.186",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.993",
  cy: "69.814",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "24.78",
  cy: "41.933",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71.22",
  cy: "54.067",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.067",
  cy: "24.78",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.933",
  cy: "71.22",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "24.079",
  cy: "46.057",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71.921",
  cy: "49.943",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "49.943",
  cy: "24.079",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "46.057",
  cy: "71.921",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "24.105",
  cy: "50.24",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71.895",
  cy: "45.76",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.76",
  cy: "24.105",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.24",
  cy: "71.895",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "24.857",
  cy: "54.356",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71.143",
  cy: "41.644",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.644",
  cy: "24.857",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.356",
  cy: "71.143",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.312",
  cy: "58.278",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.688",
  cy: "37.722",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.722",
  cy: "26.312",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.278",
  cy: "69.688",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.426",
  cy: "61.888",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.574",
  cy: "34.112",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.112",
  cy: "28.426",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.888",
  cy: "67.574",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.237",
  cy: "42.693",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.763",
  cy: "53.307",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.307",
  cy: "37.237",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.693",
  cy: "58.763",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.156",
  cy: "46.072",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.844",
  cy: "49.928",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "49.928",
  cy: "36.156",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "46.072",
  cy: "59.844",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.11",
  cy: "49.619",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.89",
  cy: "46.381",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "46.381",
  cy: "36.11",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "49.619",
  cy: "59.89",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "37.102",
  cy: "53.024",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "58.898",
  cy: "42.976",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.976",
  cy: "37.102",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.024",
  cy: "58.898",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "64.971",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon256_96.svg
function S_IlluMobileMacIcon256_96_extends() { S_IlluMobileMacIcon256_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon256_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon256_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon256_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 71H27a2 2 0 0 1-2-2V27a2 2 0 0 1 2-2h42a2 2 0 0 1 2 2v42a2 2 0 0 1-2 2zM27 27v42h42V27z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.799",
  cy: "28.201",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64.971",
  cy: "31.029",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.144",
  cy: "40",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.856",
  cy: "56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56",
  cy: "34.144",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40",
  cy: "61.856",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.545",
  cy: "43.859",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.455",
  cy: "52.141",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.141",
  cy: "32.545",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.859",
  cy: "63.455",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "64",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "32",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "64",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "32.545",
  cy: "52.141",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "63.455",
  cy: "43.859",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.859",
  cy: "32.545",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.141",
  cy: "63.455",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.144",
  cy: "56",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.856",
  cy: "40",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40",
  cy: "34.144",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56",
  cy: "61.856",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "31.029",
  cy: "64.971",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.201",
  cy: "67.799",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "53.657",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon128_96.svg
function S_IlluMobileMacIcon128_96_extends() { S_IlluMobileMacIcon128_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon128_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon128_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon128_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 66H32a2 2 0 0 1-2-2V32a2 2 0 0 1 2-2h32a2 2 0 0 1 2 2v32a2 2 0 0 1-2 2zM32 32v32h32V32z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "62.142",
  cy: "33.858",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.314",
  cy: "36.686",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "53.657",
  cy: "42.343",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "44",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "52",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "42.343",
  cy: "53.657",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.913",
  cy: "43.408",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.087",
  cy: "52.592",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.592",
  cy: "36.913",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.408",
  cy: "59.087",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.913",
  cy: "43.408",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.087",
  cy: "52.592",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.592",
  cy: "36.913",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.408",
  cy: "59.087",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "36",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "60",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "36",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "60",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.913",
  cy: "52.592",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.087",
  cy: "43.408",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.408",
  cy: "36.913",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.592",
  cy: "59.087",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.913",
  cy: "52.592",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.087",
  cy: "43.408",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.408",
  cy: "36.913",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.592",
  cy: "59.087",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.686",
  cy: "59.314",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "33.858",
  cy: "62.142",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "56.485",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.485",
  cy: "39.515",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.828",
  cy: "45.172",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.172",
  cy: "50.828",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.515",
  cy: "56.485",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon48_96.svg
function S_IlluMobileMacIcon48_96_extends() { S_IlluMobileMacIcon48_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon48_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon48_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon48_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60 62H36a2 2 0 0 1-2-2V36a2 2 0 0 1 2-2h24a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2zM36 36v24h24V36z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.401",
  cy: "54.601",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.07 51.872a.75.75 0 1 0 1.061 0 .754.754 0 0 0-1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M45.269 49.672a.75.75 0 1 0 1.061 0 .756.756 0 0 0-1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M38.672 56.27a.75.75 0 1 0 1.061 0 .756.756 0 0 0-1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M49.667 45.274a.75.75 0 0 0 1.061 1.061.75.75 0 0 0-1.061-1.061z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M47.469 47.473a.756.756 0 0 0 0 1.061.75.75 0 1 0 0-1.061z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.328 38.665a.75.75 0 1 0 0 1.06.748.748 0 0 0 0-1.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M51.869 43.063a.75.75 0 1 0 1.061 0 .756.756 0 0 0-1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.599",
  cy: "41.394",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.599",
  cy: "54.601",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M52.93 51.872a.75.75 0 1 1-1.061 0 .754.754 0 0 1 1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M50.731 49.672a.75.75 0 1 1-1.061 0 .756.756 0 0 1 1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.328 56.27a.75.75 0 1 1-1.061 0 .756.756 0 0 1 1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M46.333 45.274a.75.75 0 0 1-1.061 1.061.75.75 0 0 1 1.061-1.061z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48.531 47.473a.756.756 0 0 1 0 1.061.75.75 0 1 1 0-1.061z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M38.672 38.665a.75.75 0 1 1 0 1.06.748.748 0 0 1 0-1.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.131 43.063a.75.75 0 1 1-1.061 0 .756.756 0 0 1 1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.401",
  cy: "41.394",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.43",
  cy: "56.624",
  r: ".75",
  transform: "rotate(-22.5 44.43 56.624)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.568",
  cy: "39.372",
  r: ".75",
  transform: "rotate(-22.5 51.568 39.37)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.622",
  cy: "51.573",
  r: ".75",
  transform: "rotate(-22.5 56.622 51.573)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.376",
  cy: "44.422",
  r: ".75",
  transform: "rotate(-22.5 39.376 44.421)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48.002",
  cy: "57.334",
  r: ".75",
  transform: "rotate(-45 48.002 57.334)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "47.995",
  cy: "38.663",
  r: ".75",
  transform: "rotate(-45 47.994 38.662)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "57.334",
  cy: "48.002",
  r: ".75",
  transform: "rotate(-45 57.333 48.002)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "38.663",
  cy: "47.995",
  r: ".75",
  transform: "rotate(-45 38.663 47.994)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.573",
  cy: "56.623",
  r: ".75",
  transform: "rotate(-67.5 51.573 56.622)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.422",
  cy: "39.376",
  r: ".75",
  transform: "rotate(-67.5 44.422 39.376)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.624",
  cy: "44.43",
  r: ".75",
  transform: "rotate(-67.5 56.624 44.43)"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.372",
  cy: "51.568",
  r: ".75",
  transform: "rotate(-67.5 39.371 51.568)"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon32_96.svg
function S_IlluMobileMacIcon32_96_extends() { S_IlluMobileMacIcon32_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon32_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon32_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon32_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57 59H39a2 2 0 0 1-2-2V39a2 2 0 0 1 2-2h18a2 2 0 0 1 2 2v18a2 2 0 0 1-2 2zM39 39v18h18V39z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M40.875 54.064a.75.75 0 1 1 1.061 1.061.75.75 0 0 1-1.061-1.061zm2.2-2.2a.75.75 0 1 1 1.061 1.061.75.75 0 0 1-1.061-1.061zm2.2-2.2a.75.75 0 0 1 1.061 1.061.75.75 0 1 1-1.061-1.061zm2.2-2.2a.75.75 0 1 1 0 1.061.756.756 0 0 1-.003-1.058zm2.2-2.2a.75.75 0 1 1 0 1.06.754.754 0 0 1-.003-1.056zm2.2-2.2a.75.75 0 1 1 0 1.06.748.748 0 0 1-.004-1.055zm2.2-2.2a.75.75 0 1 1 0 1.06.748.748 0 0 1-.005-1.054z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M54.064 55.125a.75.75 0 1 1 1.061-1.061.75.75 0 0 1-1.061 1.061zm-2.2-2.2a.75.75 0 1 1 1.061-1.061.75.75 0 0 1-1.061 1.061zm-2.2-2.2a.75.75 0 0 1 1.061-1.061.75.75 0 1 1-1.061 1.061zm-2.2-2.2a.75.75 0 1 1 1.061 0 .756.756 0 0 1-1.058.003zm-2.2-2.2a.75.75 0 1 1 1.06 0 .754.754 0 0 1-1.056.003zm-2.2-2.2a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.055.004zm2.6 9.681a.75.75 0 1 1 1.449.389.75.75 0 0 1-1.449-.389zm3.22-12.016a.75.75 0 1 1 .53.919.75.75 0 0 1-.526-.915zm4.924 8.54a.75.75 0 1 1 .388-1.449.741.741 0 0 1 .53.918.75.75 0 0 1-.914.535zM41.8 47.114a.75.75 0 1 1 .918-.53.75.75 0 0 1-.918.53zm7.087 7.086a.75.75 0 1 1 1.449-.389.75.75 0 0 1-1.449.389zm-3.22-12.02a.75.75 0 1 1 .919.531.75.75 0 0 1-.919-.531zm8.533 4.934a.75.75 0 0 1-.388-1.449.75.75 0 0 1 .388 1.449zm-12.015 3.219a.75.75 0 1 1 .53-.918.748.748 0 0 1-.53.918zm-1.315-8.4a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06-.003z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMacIcon16_96.svg
function S_IlluMobileMacIcon16_96_extends() { S_IlluMobileMacIcon16_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMacIcon16_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMacIcon16_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMacIcon16_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56 58H40a2 2 0 0 1-2-2V40a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2zM40 40v16h16V40z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M40.875 54.064a.75.75 0 1 1 1.061 1.061.75.75 0 0 1-1.061-1.061zm2.2-2.2a.75.75 0 1 1 1.061 1.061.75.75 0 0 1-1.061-1.061zm2.2-2.2a.75.75 0 0 1 1.061 1.061.75.75 0 1 1-1.061-1.061zm2.2-2.2a.75.75 0 1 1 0 1.061.756.756 0 0 1-.003-1.058zm2.2-2.2a.75.75 0 1 1 0 1.06.754.754 0 0 1-.003-1.056zm2.2-2.2a.75.75 0 1 1 0 1.06.748.748 0 0 1-.004-1.055zm2.2-2.2a.75.75 0 1 1 0 1.06.748.748 0 0 1-.005-1.054z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M54.064 55.125a.75.75 0 1 1 1.061-1.061.75.75 0 0 1-1.061 1.061zm-2.2-2.2a.75.75 0 1 1 1.061-1.061.75.75 0 0 1-1.061 1.061zm-2.2-2.2a.75.75 0 0 1 1.061-1.061.75.75 0 1 1-1.061 1.061zm-2.2-2.2a.75.75 0 1 1 1.061 0 .756.756 0 0 1-1.058.003zm-2.2-2.2a.75.75 0 1 1 1.06 0 .754.754 0 0 1-1.056.003zm-2.2-2.2a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.055.004zm2.6 9.681a.75.75 0 1 1 1.449.389.75.75 0 0 1-1.449-.389zm3.22-12.016a.75.75 0 1 1 .53.919.75.75 0 0 1-.526-.915zm4.924 8.54a.75.75 0 1 1 .388-1.449.741.741 0 0 1 .53.918.75.75 0 0 1-.914.535zM41.8 47.114a.75.75 0 1 1 .918-.53.75.75 0 0 1-.918.53zm7.087 7.086a.75.75 0 1 1 1.449-.389.75.75 0 0 1-1.449.389zm-3.22-12.02a.75.75 0 1 1 .919.531.75.75 0 0 1-.919-.531zm8.533 4.934a.75.75 0 0 1-.388-1.449.75.75 0 0 1 .388 1.449zm-12.015 3.219a.75.75 0 1 1 .53-.918.748.748 0 0 1-.53.918zm-1.315-8.4a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06-.003z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileILegacyIPadAppIcon_96.svg
function S_IlluMobileILegacyIPadAppIcon_96_extends() { S_IlluMobileILegacyIPadAppIcon_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileILegacyIPadAppIcon_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileILegacyIPadAppIcon_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileILegacyIPadAppIcon_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 77H30a11.013 11.013 0 0 1-11-11V30a11.013 11.013 0 0 1 11-11h36a11.013 11.013 0 0 1 11 11v36a11.013 11.013 0 0 1-11 11zM30 21a9.01 9.01 0 0 0-9 9v36a9.01 9.01 0 0 0 9 9h36a9.01 9.01 0 0 0 9-9V30a9.01 9.01 0 0 0-9-9z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 23.75a.751.751 0 0 1-.75-.75.717.717 0 0 1 .06-.29.747.747 0 0 1 1.22-.24.75.75 0 0 1-.53 1.28z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.69 70.75a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.77a.767.767 0 0 1 0-1.07.753.753 0 1 1 1.06 1.07.74.74 0 0 1-.53.21.775.775 0 0 1-.53-.21zm-2.77-2.78a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .786.786 0 0 1-.53.22.767.767 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.78-2.78a.75.75 0 0 1 1.06-1.06.737.737 0 0 1 0 1.06.725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.77a.757.757 0 1 1 1.07 0 .786.786 0 0 1-1.07 0zm-2.77-2.78a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.78-2.78a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 0 1 1.06-1.06.737.737 0 0 1 0 1.06.71.71 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.77-2.77a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06 0 .725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.78-2.78a.75.75 0 1 1 1.06-1.06.737.737 0 0 1 0 1.06.725.725 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.77-2.77a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.767.767 0 0 1-.53-.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 73.75a.717.717 0 0 1-.29-.06.735.735 0 0 1-.4-.4.717.717 0 0 1-.06-.29.753.753 0 0 1 .06-.29.735.735 0 0 1 .4-.4.731.731 0 0 1 .58 0 .735.735 0 0 1 .4.4.717.717 0 0 1 .06.29.749.749 0 0 1-.22.53.776.776 0 0 1-.24.16.717.717 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 73.75a.717.717 0 0 1-.29-.06.735.735 0 0 1-.4-.4.717.717 0 0 1-.06-.29.753.753 0 0 1 .06-.29.735.735 0 0 1 .4-.4.731.731 0 0 1 .58 0 .776.776 0 0 1 .24.16.633.633 0 0 1 .16.24.753.753 0 0 1 .06.29.717.717 0 0 1-.06.29.633.633 0 0 1-.16.24.776.776 0 0 1-.24.16.717.717 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.25 70.75a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.77a.753.753 0 1 1 1.06-1.07.767.767 0 0 1 0 1.07.775.775 0 0 1-.53.21.74.74 0 0 1-.53-.21zm2.77-2.78a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.77a.767.767 0 0 1 0-1.07.753.753 0 0 1 1.06 1.07.74.74 0 0 1-.53.21.775.775 0 0 1-.53-.21zm2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.78a.754.754 0 0 1 0-1.06.767.767 0 0 1 1.07 0 .754.754 0 0 1 0 1.06.76.76 0 0 1-1.07 0zm2.78-2.77a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm2.78-2.78a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.725.725 0 0 1-.53-.22zm2.78-2.78a.737.737 0 0 1 0-1.06.75.75 0 1 1 1.06 1.06.742.742 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.77-2.77a.754.754 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.749.749 0 0 1-.53.22.786.786 0 0 1-.53-.22zm2.78-2.78a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.767.767 0 0 1-.53.22.786.786 0 0 1-.53-.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 23.75a.753.753 0 0 1-.29-.06.776.776 0 0 1-.24-.16.749.749 0 0 1-.22-.53.717.717 0 0 1 .06-.29.735.735 0 0 1 .4-.4.753.753 0 0 1 .82.16.776.776 0 0 1 .16.24.717.717 0 0 1 .06.29.751.751 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "60",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "36",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.513",
  cy: "70.558",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.487",
  cy: "25.442",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.198",
  cy: "69.249",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.802",
  cy: "26.751",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.222",
  cy: "67.124",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.778",
  cy: "28.876",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.876",
  cy: "60.778",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.124",
  cy: "35.222",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.751",
  cy: "56.802",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.249",
  cy: "39.198",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.442",
  cy: "52.487",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.558",
  cy: "43.513",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "71",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "25.442",
  cy: "43.513",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "70.558",
  cy: "52.487",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "26.751",
  cy: "39.198",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "69.249",
  cy: "56.802",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "28.876",
  cy: "35.222",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "67.124",
  cy: "60.778",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.222",
  cy: "28.876",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.778",
  cy: "67.124",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "39.198",
  cy: "26.751",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "56.802",
  cy: "69.249",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.513",
  cy: "25.442",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.487",
  cy: "70.558",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "25",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "71",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.546",
  cy: "59.106",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.454",
  cy: "36.894",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "43.362",
  cy: "59.067",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "52.638",
  cy: "36.933",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36",
  cy: "48",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.106",
  cy: "43.454",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.894",
  cy: "52.546",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.067",
  cy: "52.638",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.933",
  cy: "43.362",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileLegacyiPhoneAppIcon_96.svg
function S_IlluMobileLegacyiPhoneAppIcon_96_extends() { S_IlluMobileLegacyiPhoneAppIcon_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileLegacyiPhoneAppIcon_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileLegacyiPhoneAppIcon_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileLegacyiPhoneAppIcon_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62 71H34a9.01 9.01 0 0 1-9-9V34a9.01 9.01 0 0 1 9-9h28a9.01 9.01 0 0 1 9 9v28a9.01 9.01 0 0 1-9 9zM34 27a7.008 7.008 0 0 0-7 7v28a7.008 7.008 0 0 0 7 7h28a7.008 7.008 0 0 0 7-7V34a7.008 7.008 0 0 0-7-7z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M30.83 31.58a.714.714 0 0 1-.29-.06.809.809 0 0 1-.25-.16 1.037 1.037 0 0 1-.16-.25.707.707 0 0 1-.061-.28.718.718 0 0 1 .061-.29.821.821 0 0 1 .16-.25.809.809 0 0 1 .25-.16.759.759 0 0 1 .81.16.871.871 0 0 1 .17.25.717.717 0 0 1 .06.29.706.706 0 0 1-.06.28.871.871 0 0 1-.17.25.744.744 0 0 1-.52.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61.779 62.84a.75.75 0 1 1 1.061 0 .75.75 0 0 1-1.061 0zm-2.859-2.86a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.059 1.06.738.738 0 0 1-.529.22.725.725 0 0 1-.53-.22zm-2.86-2.86a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.788.788 0 0 1-.53.22.749.749 0 0 1-.53-.22zm-2.871-2.87a.75.75 0 1 1 1.061-1.06.737.737 0 0 1 0 1.06.711.711 0 0 1-.53.22.744.744 0 0 1-.531-.22zm-2.859-2.86a.75.75 0 1 1 1.06 0 .71.71 0 0 1-.531.22.739.739 0 0 1-.529-.22zm-2.86-2.86a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.059 1.06.739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm-2.861-2.86a.75.75 0 1 1 1.061-1.06.754.754 0 0 1 0 1.06.786.786 0 0 1-.53.22.752.752 0 0 1-.531-.22zM41.74 42.8a.75.75 0 1 1 1.06-1.06.737.737 0 0 1 0 1.06.71.71 0 0 1-.53.22.742.742 0 0 1-.53-.22zm-2.86-2.86a.749.749 0 1 1 1.059 0 .708.708 0 0 1-.529.22.74.74 0 0 1-.53-.22zm-2.86-2.86a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.724.724 0 0 1-.53-.22zm-2.86-2.86a.75.75 0 0 1 1.06-1.06.754.754 0 0 1 0 1.06.788.788 0 0 1-.531.22.749.749 0 0 1-.529-.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.18 65.92a.67.67 0 0 1-.531-.22.717.717 0 0 1-.17-.81.708.708 0 0 1 .17-.25.687.687 0 0 1 .241-.16.775.775 0 0 1 .81.16.852.852 0 0 1 .17.25.712.712 0 0 1-.17.81.614.614 0 0 1-.24.17.692.692 0 0 1-.28.05z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M30.83 65.92a.924.924 0 0 1-.29-.05.839.839 0 0 1-.25-.17.818.818 0 0 1-.16-.24.718.718 0 0 1-.061-.29.707.707 0 0 1 .061-.28 1.037 1.037 0 0 1 .16-.25.809.809 0 0 1 .25-.16.8.8 0 0 1 .569 0 .78.78 0 0 1 .241.16.871.871 0 0 1 .17.25.706.706 0 0 1 .06.28.721.721 0 0 1-.23.53.811.811 0 0 1-.241.17.857.857 0 0 1-.279.05z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.16 62.84a.735.735 0 0 1 0-1.06.75.75 0 0 1 1.06 1.06.744.744 0 0 1-.531.22.709.709 0 0 1-.529-.22zm2.86-2.86a.75.75 0 1 1 1.06 0 .742.742 0 0 1-.53.22.724.724 0 0 1-.53-.22zm2.86-2.86a.754.754 0 0 1 0-1.06.736.736 0 0 1 1.059 0 .754.754 0 0 1 0 1.06.747.747 0 0 1-.529.22.784.784 0 0 1-.53-.22zm2.86-2.87a.75.75 0 1 1 1.06-1.06.737.737 0 0 1 0 1.06.71.71 0 0 1-.53.22.742.742 0 0 1-.53-.22zm2.869-2.86a.738.738 0 0 1 0-1.06.75.75 0 0 1 1.061 1.06.742.742 0 0 1-.53.22.712.712 0 0 1-.531-.22zm2.861-2.86a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.059 1.06.739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm2.86-2.86a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .75.75 0 0 1-.531 1.28.783.783 0 0 1-.529-.22zm2.859-2.86a.767.767 0 0 1 0-1.07.753.753 0 1 1 .531 1.29.788.788 0 0 1-.531-.22zm2.871-2.87a.737.737 0 0 1 0-1.06.75.75 0 1 1 1.06 1.06.743.743 0 0 1-.53.22.71.71 0 0 1-.53-.22zm2.86-2.86a.737.737 0 0 1 0-1.06.749.749 0 1 1 1.059 1.06.738.738 0 0 1-.529.22.725.725 0 0 1-.53-.22zm2.859-2.86a.756.756 0 0 1 0-1.06.738.738 0 0 1 1.061 0 .754.754 0 0 1 0 1.06.75.75 0 0 1-1.061 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.18 31.58a.714.714 0 0 1-.29-.06.6.6 0 0 1-.241-.17.717.717 0 0 1-.17-.81.708.708 0 0 1 .17-.25.687.687 0 0 1 .241-.16.775.775 0 0 1 .81.16.852.852 0 0 1 .17.25.712.712 0 0 1-.17.81.7.7 0 0 1-.24.17.706.706 0 0 1-.28.06z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "40.273",
  cy: "45.929",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "55.727",
  cy: "50.071",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.071",
  cy: "40.273",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.929",
  cy: "55.727",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M38.649 34.99a.757.757 0 0 1 .221-1.04.765.765 0 0 1 1.04.22.755.755 0 0 1-.221 1.04.774.774 0 0 1-.41.12.742.742 0 0 1-.63-.34zm16.981-.2a.748.748 0 0 1 .74-1.3.755.755 0 0 1 .279 1.03.743.743 0 0 1-.649.37.686.686 0 0 1-.37-.1zm-13.1-1.85a.753.753 0 1 1 .941.5.785.785 0 0 1-.22.03.761.761 0 0 1-.722-.53zm9.221.28a.759.759 0 0 1-.54-.92.749.749 0 0 1 .91-.54.759.759 0 0 1 .54.91.746.746 0 0 1-.721.57 1.106 1.106 0 0 1-.19-.02zm-4.92-1.2a.743.743 0 0 1 .73-.77.75.75 0 0 1 .04 1.5h-.02a.745.745 0 0 1-.751-.73z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.95 57.13a.764.764 0 0 1 .22-1.04.752.752 0 1 1 .82 1.26.781.781 0 0 1-.41.12.767.767 0 0 1-.63-.34zM32 52.97a.752.752 0 1 1 .939.5.82.82 0 0 1-.219.03.758.758 0 0 1-.72-.53zm-.75-4.53a.75.75 0 1 1 .77.73h-.03a.743.743 0 0 1-.74-.73zm1.05-3.65a.748.748 0 1 1 .92-.54.757.757 0 0 1-.73.56.648.648 0 0 1-.19-.02zm1.47-4.14a.745.745 0 0 1-.28-1.02.748.748 0 1 1 1.3.74v.01a.748.748 0 0 1-.65.37.686.686 0 0 1-.37-.1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M47.67 64.02a.75.75 0 1 1 .769.73h-.019a.758.758 0 0 1-.75-.73zm-3.79.21a.74.74 0 0 1-.54-.91.748.748 0 1 1 1.45.37.758.758 0 0 1-.73.57.562.562 0 0 1-.18-.03zm8.149-.73a.756.756 0 0 1 .5-.94.753.753 0 0 1 .441 1.44.844.844 0 0 1-.22.03.761.761 0 0 1-.721-.53zm-12.4-1a.744.744 0 1 1 1.019-.27.753.753 0 0 1-.649.38.7.7 0 0 1-.369-.11zm16.46-.67a.752.752 0 1 1 1.04.22.781.781 0 0 1-.41.12.74.74 0 0 1-.629-.34z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61.479 56.65a.75.75 0 1 1 1.031-.28.773.773 0 0 1-.66.38.74.74 0 0 1-.371-.1zm1.84-3.99a.72.72 0 1 1 .191.03.639.639 0 0 1-.191-.03zm-.069-5.06a.75.75 0 1 1 1.5-.04.756.756 0 0 1-.73.77h-.03a.749.749 0 0 1-.74-.73zm-.69-4.13a.758.758 0 0 1 .5-.94.744.744 0 0 1 .93.5H64a.76.76 0 0 1-.5.94.835.835 0 0 1-.221.03.746.746 0 0 1-.719-.53zm-1.77-3.78a.752.752 0 1 1 1.26-.82.765.765 0 0 1-.22 1.04.779.779 0 0 1-.41.12.741.741 0 0 1-.63-.34z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileLegacyIPadSpotlight_96.svg
function S_IlluMobileLegacyIPadSpotlight_96_extends() { S_IlluMobileLegacyIPadSpotlight_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileLegacyIPadSpotlight_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileLegacyIPadSpotlight_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileLegacyIPadSpotlight_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.95 34.7a.717.717 0 0 1-.29-.06.764.764 0 0 1-.24-.16.739.739 0 0 1-.17-.25.918.918 0 0 1-.05-.28.929.929 0 0 1 .05-.29.807.807 0 0 1 .17-.24.794.794 0 0 1 .24-.17.827.827 0 0 1 .58 0 .79.79 0 0 1 .239.17.762.762 0 0 1 .161.24.717.717 0 0 1 .06.29.706.706 0 0 1-.06.28.806.806 0 0 1-.161.25.761.761 0 0 1-.529.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59.18 60.24a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0zm-2.34-2.34a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.06 1.06.781.781 0 0 1-.529.22.765.765 0 0 1-.531-.22zm-2.34-2.34a.753.753 0 0 1 1.06-1.07.767.767 0 0 1 0 1.07.781.781 0 0 1-.54.21.734.734 0 0 1-.52-.21zm-2.351-2.34a.767.767 0 0 1 0-1.07.753.753 0 1 1 .531 1.29.79.79 0 0 1-.531-.22zm-2.339-2.35a.75.75 0 1 1 1.06 0 .729.729 0 0 1-.53.22.74.74 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059-1.06.754.754 0 0 1 0 1.06.781.781 0 0 1-.529.22.749.749 0 0 1-.53-.22zm-2.351-2.34a.788.788 0 1 1 .54.21.784.784 0 0 1-.54-.21zm-2.34-2.35a.75.75 0 1 1 1.061-1.06.737.737 0 0 1 0 1.06.711.711 0 0 1-.53.22.744.744 0 0 1-.531-.22zM38.1 39.16a.75.75 0 1 1 1.06 0 .727.727 0 0 1-.53.22.74.74 0 0 1-.53-.22zm-2.34-2.34a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.05 62.8a.75.75 0 0 1-.29-.06.633.633 0 0 1-.24-.16.779.779 0 0 1-.161-.24.716.716 0 0 1-.059-.29.767.767 0 0 1 .22-.53.776.776 0 0 1 .24-.16.731.731 0 0 1 .58 0 .776.776 0 0 1 .24.16.608.608 0 0 1 .16.25.687.687 0 0 1 .06.28.734.734 0 0 1-.06.29.645.645 0 0 1-.16.24.633.633 0 0 1-.24.16.721.721 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.95 62.8a.929.929 0 0 1-.29-.05.794.794 0 0 1-.24-.17.807.807 0 0 1-.17-.24.929.929 0 0 1-.05-.29.868.868 0 0 1 .05-.28.739.739 0 0 1 .17-.25.764.764 0 0 1 .24-.16.731.731 0 0 1 .58 0 .76.76 0 0 1 .239.16.813.813 0 0 1 .221.53.746.746 0 0 1-.221.53.763.763 0 0 1-.529.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35.76 60.24a.749.749 0 1 1 1.059 0 .747.747 0 0 1-1.059 0zm2.34-2.34a.75.75 0 1 1 1.06 0 .769.769 0 0 1-.53.22.784.784 0 0 1-.53-.22zm2.339-2.34a.767.767 0 0 1 0-1.07.753.753 0 0 1 1.061 1.07.742.742 0 0 1-.53.21.777.777 0 0 1-.531-.21zm2.34-2.35a.756.756 0 0 1 0-1.06.768.768 0 0 1 1.071 0 .754.754 0 0 1 0 1.06.742.742 0 0 1-.531.22.751.751 0 0 1-.54-.22zm2.351-2.34a.737.737 0 0 1 0-1.06.749.749 0 0 1 1.059 1.06.738.738 0 0 1-.529.22.71.71 0 0 1-.53-.22zm2.34-2.34a.749.749 0 1 1 1.059 0 .739.739 0 0 1-.529.22.724.724 0 0 1-.53-.22zm2.34-2.34a.754.754 0 0 1 0-1.06.737.737 0 0 1 1.06 0 .754.754 0 0 1 0 1.06.771.771 0 0 1-.53.22.784.784 0 0 1-.53-.22zm2.339-2.34a.767.767 0 0 1 0-1.07.753.753 0 1 1 1.061 1.07.742.742 0 0 1-.53.21.779.779 0 0 1-.531-.21zM54.5 41.5a.737.737 0 0 1 0-1.06.75.75 0 1 1 .52 1.28.7.7 0 0 1-.52-.22zm2.34-2.34a.737.737 0 0 1 0-1.06.749.749 0 1 1 1.06 1.06.738.738 0 0 1-.529.22.724.724 0 0 1-.531-.22zm2.34-2.34a.75.75 0 1 1 1.06 0 .748.748 0 0 1-1.06 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.05 34.7a.75.75 0 0 1-.29-.06.776.776 0 0 1-.24-.16.718.718 0 0 1-.161-.25.67.67 0 0 1-.059-.28.749.749 0 0 1 .22-.53.633.633 0 0 1 .24-.16.753.753 0 0 1 .82.16.645.645 0 0 1 .16.24.734.734 0 0 1 .06.29.687.687 0 0 1-.06.28.608.608 0 0 1-.16.25.776.776 0 0 1-.24.16.721.721 0 0 1-.29.06z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.933",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.067",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "41.067",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "54.933",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.405",
  cy: "45.347",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.595",
  cy: "50.653",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.347",
  cy: "41.595",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.653",
  cy: "54.405",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "50.653",
  cy: "41.595",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "45.347",
  cy: "54.405",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.595",
  cy: "45.347",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.405",
  cy: "50.653",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "34.75",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "61.25",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.571",
  cy: "35.201",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.429",
  cy: "60.799",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.375",
  cy: "36.525",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.625",
  cy: "59.475",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.525",
  cy: "41.375",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.475",
  cy: "54.625",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.201",
  cy: "44.571",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.799",
  cy: "51.429",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "34.75",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "61.25",
  cy: "48",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "35.201",
  cy: "51.429",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "60.799",
  cy: "44.571",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "36.525",
  cy: "54.625",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "59.475",
  cy: "41.375",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.375",
  cy: "59.475",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "54.625",
  cy: "36.525",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.571",
  cy: "60.799",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "51.429",
  cy: "35.201",
  r: ".683"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60 67H36a7.008 7.008 0 0 1-7-7V36a7.008 7.008 0 0 1 7-7h24a7.008 7.008 0 0 1 7 7v24a7.008 7.008 0 0 1-7 7zM36 31a5.006 5.006 0 0 0-5 5v24a5.006 5.006 0 0 0 5 5h24a5.006 5.006 0 0 0 5-5V36a5.006 5.006 0 0 0-5-5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPhoneX_96.svg
function S_IlluMobileIPhoneX_96_extends() { S_IlluMobileIPhoneX_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPhoneX_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPhoneX_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPhoneX_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 84.413H35a6.007 6.007 0 0 1-6-6v-62a6.006 6.006 0 0 1 6-6h26a6.006 6.006 0 0 1 6 6v62a6.007 6.007 0 0 1-6 6zm-26-72a4 4 0 0 0-4 4v62a4 4 0 0 0 4 4h26a4 4 0 0 0 4-4v-62a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M53 16.913H43a3.254 3.254 0 0 1-3.25-3.25.75.75 0 1 1 1.5 0 1.753 1.753 0 0 0 1.75 1.75h10a1.753 1.753 0 0 0 1.75-1.75.75.75 0 1 1 1.5 0 3.254 3.254 0 0 1-3.25 3.25z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPhone678Plus_96.svg
function S_IlluMobileIPhone678Plus_96_extends() { S_IlluMobileIPhone678Plus_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPhone678Plus_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPhone678Plus_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPhone678Plus_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 92H32a6.006 6.006 0 0 1-6-6V10a6.006 6.006 0 0 1 6-6h32a6.006 6.006 0 0 1 6 6v76a6.006 6.006 0 0 1-6 6zM32 6a4 4 0 0 0-4 4v76a4 4 0 0 0 4 4h32a4 4 0 0 0 4-4V10a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48.167 88.75a3.25 3.25 0 1 1 3.25-3.25 3.254 3.254 0 0 1-3.25 3.25zm0-5a1.75 1.75 0 1 0 1.75 1.75 1.752 1.752 0 0 0-1.75-1.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M51.167 8.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPhone678_96.svg
function S_IlluMobileIPhone678_96_extends() { S_IlluMobileIPhone678_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPhone678_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPhone678_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPhone678_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60 84H36a6.006 6.006 0 0 1-6-6V18a6.006 6.006 0 0 1 6-6h24a6.006 6.006 0 0 1 6 6v60a6.006 6.006 0 0 1-6 6zM36 14a4 4 0 0 0-4 4v60a4 4 0 0 0 4 4h24a4 4 0 0 0 4-4V18a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48.167 80.75a3.25 3.25 0 1 1 3.25-3.25 3.254 3.254 0 0 1-3.25 3.25zm0-5a1.75 1.75 0 1 0 1.75 1.75 1.752 1.752 0 0 0-1.75-1.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M51.167 16.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPadPro12_96.svg
function S_IlluMobileIPadPro12_96_extends() { S_IlluMobileIPadPro12_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPadPro12_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPadPro12_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPadPro12_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 87H24a5.006 5.006 0 0 1-5-5V14a5.006 5.006 0 0 1 5-5h48a5.006 5.006 0 0 1 5 5v68a5.006 5.006 0 0 1-5 5zM24 11a3 3 0 0 0-3 3v68a3 3 0 0 0 3 3h48a3 3 0 0 0 3-3V14a3 3 0 0 0-3-3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 83.25A3.25 3.25 0 1 1 51.25 80 3.254 3.254 0 0 1 48 83.25zm0-5A1.75 1.75 0 1 0 49.75 80 1.752 1.752 0 0 0 48 78.25z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "14",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 15.75A1.75 1.75 0 1 1 49.75 14 1.752 1.752 0 0 1 48 15.75zm0-2.5a.75.75 0 1 0 .75.75.751.751 0 0 0-.75-.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPadPro10_96.svg
function S_IlluMobileIPadPro10_96_extends() { S_IlluMobileIPadPro10_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPadPro10_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPadPro10_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPadPro10_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.5 79h-37a4.505 4.505 0 0 1-4.5-4.5v-53a4.505 4.505 0 0 1 4.5-4.5h37a4.505 4.505 0 0 1 4.5 4.5v53a4.505 4.505 0 0 1-4.5 4.5zm-37-60a2.5 2.5 0 0 0-2.5 2.5v53a2.5 2.5 0 0 0 2.5 2.5h37a2.5 2.5 0 0 0 2.5-2.5v-53a2.5 2.5 0 0 0-2.5-2.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 74.75a3.25 3.25 0 1 1 3.25-3.25A3.254 3.254 0 0 1 48 74.75zm0-5a1.75 1.75 0 1 0 1.75 1.75A1.752 1.752 0 0 0 48 69.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "21.75",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 23.5a1.75 1.75 0 1 1 1.75-1.75A1.752 1.752 0 0 1 48 23.5zm0-2.5a.75.75 0 1 0 .75.75A.751.751 0 0 0 48 21z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPadRetina_96.svg
function S_IlluMobileIPadRetina_96_extends() { S_IlluMobileIPadRetina_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPadRetina_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPadRetina_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPadRetina_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.5 77h-37a4.505 4.505 0 0 1-4.5-4.5v-49a4.505 4.505 0 0 1 4.5-4.5h37a4.505 4.505 0 0 1 4.5 4.5v49a4.505 4.505 0 0 1-4.5 4.5zm-37-56a2.5 2.5 0 0 0-2.5 2.5v49a2.5 2.5 0 0 0 2.5 2.5h37a2.5 2.5 0 0 0 2.5-2.5v-49a2.5 2.5 0 0 0-2.5-2.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 72.75a3.25 3.25 0 1 1 3.25-3.25A3.254 3.254 0 0 1 48 72.75zm0-5a1.75 1.75 0 1 0 1.75 1.75A1.752 1.752 0 0 0 48 67.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "23.75",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 25.5a1.75 1.75 0 1 1 1.75-1.75A1.752 1.752 0 0 1 48 25.5zm0-2.5a.75.75 0 1 0 .75.75A.751.751 0 0 0 48 23z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMicrosoftSurfacePro4_96.svg
function S_IlluMobileMicrosoftSurfacePro4_96_extends() { S_IlluMobileMicrosoftSurfacePro4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMicrosoftSurfacePro4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMicrosoftSurfacePro4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMicrosoftSurfacePro4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78.5 73.5h-67a3 3 0 0 1-3-3v-45a3 3 0 0 1 3-3h67a3 3 0 0 1 3 3v45a3 3 0 0 1-3 3zm-67-49a1 1 0 0 0-1 1v45a1 1 0 0 0 1 1h67a1 1 0 0 0 1-1v-45a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88 65.5h-3a1 1 0 0 1-1-1v-37a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v37a1 1 0 0 1-1 1zm-2-2h1v-35h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86 23.5h1a.5.5 0 0 1 .5.5v3.5h-2V24a.5.5 0 0 1 .5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88 28h-3v-4a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1zm-2-1h1v-3h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M87.123 70.417h-1.246a.75.75 0 0 1-.747-.686l-.377-4.331a.751.751 0 0 1 .747-.815h2a.751.751 0 0 1 .747.815l-.377 4.333a.75.75 0 0 1-.747.684zm-.805-4.334l.182 2.092.182-2.092z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86 68.5h1v3h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85.5 68h2v4h-2z"
}), /*#__PURE__*/react_default.a.createElement("g", null, /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "41.5",
  cy: "28",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.5 29.75A1.75 1.75 0 1 1 43.25 28a1.752 1.752 0 0 1-1.75 1.75zm0-2.5a.75.75 0 1 0 .75.75.751.751 0 0 0-.75-.75z"
})), /*#__PURE__*/react_default.a.createElement("g", null, /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48.5",
  cy: "28",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48.5 29.75A1.75 1.75 0 1 1 50.25 28a1.752 1.752 0 0 1-1.75 1.75zm0-2.5a.75.75 0 1 0 .75.75.751.751 0 0 0-.75-.75z"
})))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIMicrosoftSurfacePro3_96.svg
function S_IlluMobileIMicrosoftSurfacePro3_96_extends() { S_IlluMobileIMicrosoftSurfacePro3_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIMicrosoftSurfacePro3_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIMicrosoftSurfacePro3_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIMicrosoftSurfacePro3_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 73.5H11a3 3 0 0 1-3-3v-45a3 3 0 0 1 3-3h67a3 3 0 0 1 3 3v45a3 3 0 0 1-3 3zm-67-49a1 1 0 0 0-1 1v45a1 1 0 0 0 1 1h67a1 1 0 0 0 1-1v-45a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "44.5",
  cy: "28",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.5 29.75A1.75 1.75 0 1 1 46.25 28a1.752 1.752 0 0 1-1.75 1.75zm0-2.5a.75.75 0 1 0 .75.75.751.751 0 0 0-.75-.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M87 65.5h-3a1 1 0 0 1-1-1v-37a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v37a1 1 0 0 1-1 1zm-2-2h1v-35h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85 23.5h1a.5.5 0 0 1 .5.5v3.5h-2V24a.5.5 0 0 1 .5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M87 28h-3v-4a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1zm-2-1h1v-3h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86.123 70.417h-1.246a.75.75 0 0 1-.747-.686l-.377-4.331a.751.751 0 0 1 .747-.815h2a.751.751 0 0 1 .747.815l-.377 4.333a.75.75 0 0 1-.747.684zm-.805-4.334l.182 2.092.182-2.092z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85 68.5h1v3h-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84.5 68h2v4h-2z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "86",
  cy: "34.25",
  r: ".75"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "86",
  cy: "61.75",
  r: ".75"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPhone5_96.svg
function S_IlluMobileIPhone5_96_extends() { S_IlluMobileIPhone5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPhone5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPhone5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPhone5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59.028 82H36.972a6.006 6.006 0 0 1-6-6V20a6.006 6.006 0 0 1 6-6h22.056a6.006 6.006 0 0 1 6 6v56a6.006 6.006 0 0 1-6 6zM36.972 16a4 4 0 0 0-4 4v56a4 4 0 0 0 4 4h22.056a4 4 0 0 0 4-4V20a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 78.75a3.25 3.25 0 1 1 3.25-3.25A3.254 3.254 0 0 1 48 78.75zm0-5a1.75 1.75 0 1 0 1.75 1.75A1.752 1.752 0 0 0 48 73.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M51 18.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPadMini_96.svg
function S_IlluMobileIPadMini_96_extends() { S_IlluMobileIPadMini_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPadMini_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPadMini_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPadMini_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.5 66.727h-19a4.505 4.505 0 0 1-4.5-4.5V33.773a4.505 4.505 0 0 1 4.5-4.5h19a4.505 4.505 0 0 1 4.5 4.5v28.454a4.505 4.505 0 0 1-4.5 4.5zm-19-35.454a2.5 2.5 0 0 0-2.5 2.5v28.454a2.5 2.5 0 0 0 2.5 2.5h19a2.5 2.5 0 0 0 2.5-2.5V33.773a2.5 2.5 0 0 0-2.5-2.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 63.75a3.25 3.25 0 1 1 3.25-3.25A3.254 3.254 0 0 1 48 63.75zm0-5a1.75 1.75 0 1 0 1.75 1.75A1.752 1.752 0 0 0 48 58.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "34.75",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 36.5a1.75 1.75 0 1 1 1.75-1.75A1.752 1.752 0 0 1 48 36.5zm0-2.5a.75.75 0 1 0 .75.75A.751.751 0 0 0 48 34z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIAppleWatch42_96.svg
function S_IlluMobileIAppleWatch42_96_extends() { S_IlluMobileIAppleWatch42_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIAppleWatch42_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIAppleWatch42_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIAppleWatch42_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M58.75 69.153h-23a7.008 7.008 0 0 1-7-7v-28a7.008 7.008 0 0 1 7-7h23a7.008 7.008 0 0 1 7 7v28a7.008 7.008 0 0 1-7 7zm-23-40a5.006 5.006 0 0 0-5 5v28a5.006 5.006 0 0 0 5 5h23a5.006 5.006 0 0 0 5-5v-28a5.006 5.006 0 0 0-5-5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68.917 44.57H67.25a.75.75 0 0 1 0-1.5h1.667a4.526 4.526 0 0 0 .583-2.584 3.854 3.854 0 0 0-.657-2.6l-1.593.014a.75.75 0 0 1 0-1.5h1.667c1.432 0 2.083 2.12 2.083 4.086s-.651 4.084-2.083 4.084z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60.011 25.575a1 1 0 0 1-.728-.313 6.732 6.732 0 0 1-2.183-5.749v-2.026a2.1 2.1 0 0 0-.648-1.673c-.922-.932-3.222-2.043-8.94-2.043-5.748 0-8.045 1.108-8.959 2.039a1.993 1.993 0 0 0-.63 1.587v2.116a6.73 6.73 0 0 1-2.185 5.749 1 1 0 0 1-1.455-1.373c1.64-1.737 1.64-2.455 1.64-4.376v-2.026a4.047 4.047 0 0 1 1.2-3.08c1.72-1.749 5.214-2.636 10.385-2.636 5.145 0 8.632.887 10.362 2.637a4.038 4.038 0 0 1 1.226 3.03v2.075c0 1.921 0 2.639 1.639 4.376a1 1 0 0 1-.727 1.686z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M47.511 84.229c-5.145 0-8.631-.887-10.363-2.637a4.036 4.036 0 0 1-1.225-3.03v-2.075c0-1.921 0-2.639-1.64-4.376a1 1 0 0 1 1.455-1.373 6.73 6.73 0 0 1 2.185 5.749v2.026a2.1 2.1 0 0 0 .647 1.672c.922.933 3.222 2.044 8.941 2.044 5.748 0 8.045-1.108 8.959-2.039a2 2 0 0 0 .63-1.59v-2.113a6.732 6.732 0 0 1 2.184-5.749 1 1 0 0 1 1.455 1.373C59.1 73.848 59.1 74.566 59.1 76.487v2.026a4.05 4.05 0 0 1-1.2 3.08c-1.724 1.749-5.218 2.636-10.389 2.636z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIAppleWatch38_96.svg
function S_IlluMobileIAppleWatch38_96_extends() { S_IlluMobileIAppleWatch38_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIAppleWatch38_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIAppleWatch38_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIAppleWatch38_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.5 67.5h-20a7.008 7.008 0 0 1-7-7v-25a7.008 7.008 0 0 1 7-7h20a7.008 7.008 0 0 1 7 7v25a7.008 7.008 0 0 1-7 7zm-20-37a5.006 5.006 0 0 0-5 5v25a5.006 5.006 0 0 0 5 5h20a5.006 5.006 0 0 0 5-5v-25a5.006 5.006 0 0 0-5-5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.833 45.25H65a.75.75 0 0 1 0-1.5h.833c.267 0 .917-.905.917-2.583s-.65-2.584-.917-2.584H65a.75.75 0 0 1 0-1.5h.833c1.378 0 2.417 1.756 2.417 4.084s-1.039 4.083-2.417 4.083z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.65 27.473a1 1 0 0 1-.726-.313 6 6 0 0 1-1.956-5.134v-1.779-.122a1.166 1.166 0 0 0-.357-.978c-.586-.6-2.4-1.62-7.964-1.62-5.592 0-7.4 1.013-7.98 1.617a1.137 1.137 0 0 0-.341.963v1.919a6 6 0 0 1-1.956 5.134 1 1 0 0 1-1.453-1.374 4.11 4.11 0 0 0 1.409-3.76v-1.779a3.154 3.154 0 0 1 .9-2.489c1.441-1.5 4.523-2.231 9.422-2.231 4.872 0 7.948.729 9.4 2.228a3.151 3.151 0 0 1 .919 2.433v1.838a4.11 4.11 0 0 0 1.409 3.76 1 1 0 0 1-.727 1.687z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M46.65 80.473c-4.872 0-7.947-.729-9.4-2.228a3.148 3.148 0 0 1-.919-2.433v-1.838a4.11 4.11 0 0 0-1.409-3.76 1 1 0 0 1 1.453-1.374 6 6 0 0 1 1.956 5.134V75.875a1.166 1.166 0 0 0 .357.978c.585.605 2.4 1.62 7.963 1.62 5.593 0 7.4-1.013 7.981-1.617a1.141 1.141 0 0 0 .341-.963v-1.919a6 6 0 0 1 1.956-5.134 1 1 0 0 1 1.453 1.374 4.11 4.11 0 0 0-1.409 3.76v1.779a3.161 3.161 0 0 1-.9 2.489c-1.441 1.501-4.523 2.231-9.423 2.231z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileMobileDesign_96.svg
function S_IlluMobileMobileDesign_96_extends() { S_IlluMobileMobileDesign_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileMobileDesign_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileMobileDesign_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileMobileDesign_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M58.5 89h-21a3 3 0 0 1-3-3V10a3 3 0 0 1 3-3h21a3 3 0 0 1 3 3v76a3 3 0 0 1-3 3zm-21-80a1 1 0 0 0-1 1v76a1 1 0 0 0 1 1h21a1 1 0 0 0 1-1V10a1 1 0 0 0-1-1z",
  fill: "#b3b3b3",
  "data-name": "ICONS 96"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLPortrait_96.svg
function S_IlluPhotoLPortrait_96_extends() { S_IlluPhotoLPortrait_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLPortrait_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLPortrait_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLPortrait_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 67H37a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h22a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM37 29a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V30a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M53 42.75h-.057a3.75 3.75 0 0 1 .057-7.5h.056a3.75 3.75 0 0 1-.056 7.5zm-.033-1.5H53a2.25 2.25 0 1 0-2.25-2.283 2.254 2.254 0 0 0 2.217 2.283z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.881 57.534a.748.748 0 0 1-.547-.237l-3.326-3.543-1.465 1.465a.75.75 0 0 1-1.086-1.035l1.41-1.478A1.437 1.437 0 0 1 54 52.25a1.56 1.56 0 0 1 1.1.472l3.332 3.549a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M54.554 61.091a.744.744 0 0 1-.547-.237l-7.37-7.866-7.8 7.826a.75.75 0 0 1-1.063-1.058l7.875-7.9a1.419 1.419 0 0 1 1.012-.408 1.39 1.39 0 0 1 .992.433l7.449 7.95a.749.749 0 0 1-.547 1.262z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhoto2LPortrait_96.svg
function S_IlluPhoto2LPortrait_96_extends() { S_IlluPhoto2LPortrait_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhoto2LPortrait_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhoto2LPortrait_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhoto2LPortrait_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 62.582a.75.75 0 0 1-.547-.237l-5.079-5.412a.478.478 0 0 0-.334-.131.563.563 0 0 0-.343.127l-2.136 2.24a.75.75 0 0 1-1.086-1.035l2.154-2.258a2 2 0 0 1 1.4-.574h.03a1.989 1.989 0 0 1 1.4.6l5.085 5.419A.749.749 0 0 1 63 62.582z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.919 68.016a.746.746 0 0 1-.547-.237L46 55.645a.284.284 0 0 0-.176-.071.248.248 0 0 0-.176.072L33.629 67.709a.75.75 0 0 1-1.063-1.058L44.6 54.582a1.738 1.738 0 0 1 1.231-.508h.027a1.739 1.739 0 0 1 1.238.539l11.374 12.14a.75.75 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.272 74H30.728A2.877 2.877 0 0 1 28 71V23a2.877 2.877 0 0 1 2.728-3h34.544A2.877 2.877 0 0 1 68 23v48a2.877 2.877 0 0 1-2.728 3zM30.728 22c-.4 0-.728.458-.728 1v48c0 .533.34 1 .728 1h34.544c.395 0 .728-.458.728-1V23c0-.533-.34-1-.728-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M55.5 37.75a5.25 5.25 0 1 1 5.25-5.25 5.256 5.256 0 0 1-5.25 5.25zm0-9a3.75 3.75 0 1 0 3.75 3.75 3.755 3.755 0 0 0-3.75-3.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoMutsugiriPortrait_96.svg
function S_IlluPhotoMutsugiriPortrait_96_extends() { S_IlluPhotoMutsugiriPortrait_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoMutsugiriPortrait_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoMutsugiriPortrait_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoMutsugiriPortrait_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71.145 81h-46.29A2.934 2.934 0 0 1 22 78V18a2.934 2.934 0 0 1 2.855-3h46.29A2.934 2.934 0 0 1 74 18v60a2.934 2.934 0 0 1-2.855 3zm-46.29-64A.938.938 0 0 0 24 18v60a.938.938 0 0 0 .855 1h46.29A.938.938 0 0 0 72 78V18a.938.938 0 0 0-.855-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 36.25a.487.487 0 0 0-.1 0 6.25 6.25 0 0 1 .1-12.5h.1a6.25 6.25 0 0 1-.1 12.5zm-.073-1.5H61a4.659 4.659 0 1 0-.072 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 66.583a.75.75 0 0 1-.547-.237l-6.947-7.4a.934.934 0 0 0-.654-.266.994.994 0 0 0-.666.252L57.257 62a.75.75 0 0 1-1.086-1.035l2.946-3.089a2.48 2.48 0 0 1 1.757-.7 2.445 2.445 0 0 1 1.72.734l6.953 7.409A.749.749 0 0 1 69 66.583z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.05 74.016a.744.744 0 0 1-.547-.237l-15.551-16.6a.609.609 0 0 0-.431-.179h-.01a.624.624 0 0 0-.435.178l-16.447 16.5a.75.75 0 0 1-1.063-1.059L44.021 56.11a2.12 2.12 0 0 1 3.019.039L62.6 72.753a.751.751 0 0 1-.547 1.263z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoYotsugiriPortrait_96.svg
function S_IlluPhotoYotsugiriPortrait_96_extends() { S_IlluPhotoYotsugiriPortrait_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoYotsugiriPortrait_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoYotsugiriPortrait_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoYotsugiriPortrait_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 87H18a3 3 0 0 1-3-3V12a3 3 0 0 1 3-3h60a3 3 0 0 1 3 3v72a3 3 0 0 1-3 3zM18 11a1 1 0 0 0-1 1v72a1 1 0 0 0 1 1h60a1 1 0 0 0 1-1V12a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.7 31.75h-.1a6.75 6.75 0 0 1 .1-13.5h.1a6.75 6.75 0 0 1-.1 13.5zm-.08-1.5a5.251 5.251 0 0 0 .161-10.5H65.7a5.25 5.25 0 0 0-.081 10.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75.7 69.948a.75.75 0 0 1-.547-.237l-9.41-10.027a1.533 1.533 0 0 0-1.075-.445h-.024a1.529 1.529 0 0 0-1.069.418L59.6 63.823a.75.75 0 0 1-1.086-1.035l3.993-4.188a3.077 3.077 0 0 1 4.324.047l9.417 10.034a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.287 80.016a.746.746 0 0 1-.547-.237L44.677 57.3a1.1 1.1 0 0 0-.775-.334 1.175 1.175 0 0 0-.792.317L20.83 79.636a.75.75 0 1 1-1.062-1.058l22.287-22.362a2.528 2.528 0 0 1 1.871-.752 2.589 2.589 0 0 1 1.839.8l21.069 22.489a.75.75 0 0 1-.547 1.263z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLLandscape_96.svg
function S_IlluPhotoLLandscape_96_extends() { S_IlluPhotoLLandscape_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLLandscape_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLLandscape_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLLandscape_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 61H31a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3zM31 35a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32.5 57.215a.75.75 0 0 1-.529-1.281l10.544-10.5a1.292 1.292 0 0 1 1.007-.407 1.4 1.4 0 0 1 .995.432L54.329 55.9a.75.75 0 0 1-1.094 1.027L43.5 46.567 33.031 57a.746.746 0 0 1-.531.215zm29-.051a.75.75 0 0 1-.547-.237l-7.2-7.669-1.466 1.465a.75.75 0 0 1-1.086-1.035l1.411-1.479a1.653 1.653 0 0 1 1.129-.455 1.567 1.567 0 0 1 1.1.471l7.2 7.675a.751.751 0 0 1-.547 1.264zM60 44.56h-.055A3.56 3.56 0 0 1 60 37.44h.055a3.563 3.563 0 0 1 3.505 3.613A3.567 3.567 0 0 1 60 44.56zm0-5.62a2.06 2.06 0 0 0-.031 4.119H60a2.06 2.06 0 0 0 .031-4.119z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhoto2LLandscape_96.svg
function S_IlluPhoto2LLandscape_96_extends() { S_IlluPhoto2LLandscape_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhoto2LLandscape_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhoto2LLandscape_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhoto2LLandscape_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60.5 43.75a5.25 5.25 0 1 1 5.25-5.25 5.256 5.256 0 0 1-5.25 5.25zm0-9a3.75 3.75 0 1 0 3.75 3.75 3.755 3.755 0 0 0-3.75-3.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 67H24a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h48a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM24 29a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V30a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.5 62.189a.75.75 0 0 1-.529-1.281l16.178-16.1a1.847 1.847 0 0 1 1.26-.506 1.742 1.742 0 0 1 1.24.539l15.05 16a.75.75 0 1 1-1.092 1.028l-15.044-16a.215.215 0 0 0-.179-.073.26.26 0 0 0-.181.073l-16.174 16.1a.746.746 0 0 1-.529.22z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70 62.11a.754.754 0 0 1-.547-.236L58.408 50.117a.484.484 0 0 0-.339-.133.478.478 0 0 0-.345.128l-3.3 3.405a.75.75 0 0 1-1.076-1.045l3.316-3.417a2.038 2.038 0 0 1 1.431-.571 1.994 1.994 0 0 1 1.4.6l11.052 11.762A.751.751 0 0 1 70 62.11z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoMutsugiriLandscape_96.svg
function S_IlluPhotoMutsugiriLandscape_96_extends() { S_IlluPhotoMutsugiriLandscape_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoMutsugiriLandscape_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoMutsugiriLandscape_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoMutsugiriLandscape_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 42.25a.413.413 0 0 1-.1 0 6.25 6.25 0 0 1 .1-12.5h.1a6.25 6.25 0 0 1-.1 12.5zm-.073-1.5H65a4.659 4.659 0 1 0-.072 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 73H18a3 3 0 0 1-3-3V25a3 3 0 0 1 3-3h60a3 3 0 0 1 3 3v45a3 3 0 0 1-3 3zM18 24a1 1 0 0 0-1 1v45a1 1 0 0 0 1 1h60a1 1 0 0 0 1-1V25a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M20.5 67.189a.75.75 0 0 1-.529-1.281l20-19.9a2.05 2.05 0 0 1 1.429-.573 1.98 1.98 0 0 1 1.409.612L61.4 65.827a.75.75 0 1 1-1.092 1.027L41.719 47.083a.487.487 0 0 0-.345-.146.6.6 0 0 0-.353.141L21.029 66.971a.746.746 0 0 1-.529.218z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75.5 67.091a.751.751 0 0 1-.547-.237L61.3 52.324a.775.775 0 0 0-.545-.22.748.748 0 0 0-.554.209l-4.087 4.211a.75.75 0 1 1-1.076-1.045l4.1-4.224a2.391 2.391 0 0 1 1.639-.651 2.292 2.292 0 0 1 1.611.687l13.659 14.536a.751.751 0 0 1-.547 1.264z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoYotsugiriLandscape_96.svg
function S_IlluPhotoYotsugiriLandscape_96_extends() { S_IlluPhotoYotsugiriLandscape_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoYotsugiriLandscape_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoYotsugiriLandscape_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoYotsugiriLandscape_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M14.811 73.79a.75.75 0 0 1-.53-1.282l24.134-24.037a2.25 2.25 0 0 1 3.2.044l22.45 23.892a.75.75 0 1 1-1.093 1.027L40.531 49.548a.742.742 0 0 0-.525-.225.685.685 0 0 0-.536.215L15.34 73.571a.748.748 0 0 1-.529.219zm66.378-.12a.745.745 0 0 1-.546-.236L64.167 55.88a1.133 1.133 0 0 0-1.548-.017l-4.934 5.089a.75.75 0 0 1-1.077-1.044l4.948-5.1a2.571 2.571 0 0 1 1.864-.74 2.606 2.606 0 0 1 1.835.782l16.481 17.557a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71.637 38.833h-.1a6.75 6.75 0 0 1 .1-13.5h.1a6.75 6.75 0 0 1-.1 13.5zm0-12a5.25 5.25 0 0 0-.081 10.5h.081a5.25 5.25 0 0 0 .08-10.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84 80H12a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h72a3 3 0 0 1 3 3v58a3 3 0 0 1-3 3zM12 18a1 1 0 0 0-1 1v58a1 1 0 0 0 1 1h72a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLandscape3x2_96.svg
function S_IlluPhotoLandscape3x2_96_extends() { S_IlluPhotoLandscape3x2_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLandscape3x2_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLandscape3x2_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLandscape3x2_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 61H31a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3zM31 35a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32.5 57.215a.75.75 0 0 1-.529-1.281l10.544-10.5a1.337 1.337 0 0 1 1.007-.407 1.4 1.4 0 0 1 .995.432L54.329 55.9a.75.75 0 0 1-1.094 1.027L43.5 46.567 33.031 57a.746.746 0 0 1-.531.215zm29-.051a.75.75 0 0 1-.547-.237l-7.2-7.669-1.466 1.465a.75.75 0 0 1-1.086-1.035l1.411-1.479a1.573 1.573 0 0 1 2.229.016l7.2 7.675a.751.751 0 0 1-.547 1.264zM60 44.56h-.055A3.56 3.56 0 0 1 60 37.44h.055a3.563 3.563 0 0 1 3.505 3.613A3.567 3.567 0 0 1 60 44.56zm0-5.62a2.06 2.06 0 0 0-.031 4.119H60a2.06 2.06 0 0 0 .031-4.119z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLandscape6x4_96.svg
function S_IlluPhotoLandscape6x4_96_extends() { S_IlluPhotoLandscape6x4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLandscape6x4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLandscape6x4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLandscape6x4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M79 72H17a3 3 0 0 1-3-3V29a3 3 0 0 1 3-3h62a3 3 0 0 1 3 3v40a3 3 0 0 1-3 3zM17 28a1 1 0 0 0-1 1v40a1 1 0 0 0 1 1h62a1 1 0 0 0 1-1V29a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M19.41 66.479a.75.75 0 0 1-.529-1.282l20.363-20.282a2.158 2.158 0 0 1 1.446-.581 2 2 0 0 1 1.424.619l18.942 20.161a.751.751 0 0 1-1.094 1.028L41.027 45.987a.508.508 0 0 0-.359-.153.484.484 0 0 0-.37.148L19.939 66.26a.745.745 0 0 1-.529.219zm56.009-.1a.75.75 0 0 1-.547-.237L60.971 51.33a.8.8 0 0 0-.565-.228.906.906 0 0 0-.574.216L55.67 55.61a.75.75 0 1 1-1.076-1.044l4.175-4.3a2.313 2.313 0 0 1 1.625-.659h.034a2.313 2.313 0 0 1 1.631.7l13.907 14.808a.749.749 0 0 1-.547 1.263zM68.821 44.2h-.087a5.754 5.754 0 0 1-5.663-5.834 5.79 5.79 0 0 1 5.837-5.666 5.75 5.75 0 0 1-.087 11.5zm0-10a4.25 4.25 0 0 0-.066 8.5h.064a4.25 4.25 0 0 0 .066-8.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoCCKLandscape8x6_96.svg
function S_IlluPhotoCCKLandscape8x6_96_extends() { S_IlluPhotoCCKLandscape8x6_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoCCKLandscape8x6_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoCCKLandscape8x6_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoCCKLandscape8x6_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M82 76H14a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h68a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zM14 22a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h68a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M18.844 68.334a.75.75 0 0 1-.53-1.281L39.355 46.1a2.1 2.1 0 0 1 1.477-.594 2.047 2.047 0 0 1 1.454.634l19.572 20.826a.75.75 0 0 1-1.093 1.028L41.2 47.168a.552.552 0 0 0-.39-.168.537.537 0 0 0-.4.161L19.373 68.115a.747.747 0 0 1-.529.219zm57.875-.1a.748.748 0 0 1-.547-.237l-14.365-15.3a.86.86 0 0 0-.6-.243.924.924 0 0 0-.611.231l-4.3 4.436a.75.75 0 1 1-1.076-1.044l4.313-4.449a2.334 2.334 0 0 1 1.7-.674 2.369 2.369 0 0 1 1.667.711l14.366 15.302a.75.75 0 0 1-.547 1.263zm-5.561-29.381h-.1A6.756 6.756 0 0 1 64.407 32a6.793 6.793 0 0 1 6.853-6.649 6.75 6.75 0 0 1-.1 13.5zm0-12a5.25 5.25 0 0 0-.081 10.5h.081a5.25 5.25 0 0 0 .08-10.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLandscape7x5_96.svg
function S_IlluPhotoLandscape7x5_96_extends() { S_IlluPhotoLandscape7x5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLandscape7x5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLandscape7x5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLandscape7x5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85.087 76.587h-74a3 3 0 0 1-3-3v-52a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v52a3 3 0 0 1-3 3zm-74-56a1 1 0 0 0-1 1v52a1 1 0 0 0 1 1h74a1 1 0 0 0 1-1v-52a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M14.629 69.479A.75.75 0 0 1 14.1 68.2l23.406-23.316a2.1 2.1 0 0 1 1.582-.634 2.189 2.189 0 0 1 1.558.677L62.416 68.1a.75.75 0 0 1-1.094 1.027L39.558 45.96a.7.7 0 0 0-.493-.211.744.744 0 0 0-.5.2L15.158 69.26a.747.747 0 0 1-.529.219zm64.378-.116a.748.748 0 0 1-.547-.237L62.481 52.1a1.033 1.033 0 0 0-.728-.3 1.014 1.014 0 0 0-.74.281l-4.786 4.936a.75.75 0 0 1-1.077-1.044l4.8-4.949a2.606 2.606 0 0 1 1.825-.724 2.548 2.548 0 0 1 1.8.765L79.554 68.1a.749.749 0 0 1-.547 1.263zm-5.136-29.842h-.1a6.756 6.756 0 0 1-6.649-6.85 6.778 6.778 0 0 1 6.853-6.649 6.75 6.75 0 0 1-.1 13.5zm0-12a5.25 5.25 0 0 0-.081 10.5h.08a5.25 5.25 0 0 0 .081-10.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoLandscape10x8_96.svg
function S_IlluPhotoLandscape10x8_96_extends() { S_IlluPhotoLandscape10x8_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoLandscape10x8_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoLandscape10x8_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoLandscape10x8_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 77H15a3 3 0 0 1-3-3V22a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v52a3 3 0 0 1-3 3zM15 21a1 1 0 0 0-1 1v52a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V22a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M18 68.334a.75.75 0 0 1-.529-1.281L38.513 46.1a2.115 2.115 0 0 1 1.476-.594 2.045 2.045 0 0 1 1.454.634l19.573 20.826a.751.751 0 0 1-1.094 1.028L40.355 47.168a.55.55 0 0 0-.388-.168.542.542 0 0 0-.4.161L18.529 68.115a.747.747 0 0 1-.529.219zm57.875-.1a.75.75 0 0 1-.547-.237l-14.365-15.3a.86.86 0 0 0-.6-.243.89.89 0 0 0-.612.231l-4.3 4.436a.75.75 0 0 1-1.076-1.044l4.314-4.449a2.217 2.217 0 0 1 1.7-.674 2.367 2.367 0 0 1 1.665.711l14.368 15.302a.749.749 0 0 1-.547 1.263zm-5.561-29.381h-.1A6.757 6.757 0 0 1 63.563 32a6.785 6.785 0 0 1 6.853-6.649 6.75 6.75 0 0 1-.1 13.5zm0-12a5.25 5.25 0 0 0-.081 10.5h.081a5.25 5.25 0 0 0 .081-10.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoPortrait3x2_96.svg
function S_IlluPhotoPortrait3x2_96_extends() { S_IlluPhotoPortrait3x2_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoPortrait3x2_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoPortrait3x2_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoPortrait3x2_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 67H37a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h22a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM37 29a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V30a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M53 42.75h-.057a3.75 3.75 0 0 1 .057-7.5h.056a3.75 3.75 0 0 1-.056 7.5zm-.033-1.5H53a2.25 2.25 0 1 0-2.25-2.283 2.254 2.254 0 0 0 2.217 2.283z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.881 57.534a.748.748 0 0 1-.547-.237l-3.326-3.543-1.465 1.465a.75.75 0 0 1-1.086-1.035l1.41-1.478A1.441 1.441 0 0 1 54 52.25a1.56 1.56 0 0 1 1.1.472l3.332 3.549a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M54.554 61.091a.744.744 0 0 1-.547-.237l-7.37-7.866-7.8 7.826a.75.75 0 0 1-1.063-1.058l7.875-7.9a1.4 1.4 0 0 1 2 .025l7.449 7.95a.749.749 0 0 1-.547 1.262z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoTraditionalChinesePortrait3x4_96.svg
function S_IlluPhotoTraditionalChinesePortrait3x4_96_extends() { S_IlluPhotoTraditionalChinesePortrait3x4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoTraditionalChinesePortrait3x4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoTraditionalChinesePortrait3x4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoTraditionalChinesePortrait3x4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 66H37a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h22a3 3 0 0 1 3 3v32a3 3 0 0 1-3 3zM37 30a1 1 0 0 0-1 1v32a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M53 41.75h-.057a3.754 3.754 0 0 1-3.693-3.806 3.791 3.791 0 0 1 3.807-3.694 3.75 3.75 0 0 1-.057 7.5zm-.033-1.5H53a2.25 2.25 0 0 0 .034-4.5 2.29 2.29 0 0 0-2.284 2.217 2.254 2.254 0 0 0 2.217 2.283z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.881 56.534a.748.748 0 0 1-.547-.237l-3.326-3.543-1.465 1.465a.75.75 0 0 1-1.086-1.035l1.41-1.478A1.513 1.513 0 0 1 54 51.25a1.56 1.56 0 0 1 1.1.472l3.332 3.549a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M54.554 60.091a.744.744 0 0 1-.547-.237l-7.37-7.866-7.8 7.826a.75.75 0 0 1-1.063-1.058l7.875-7.9a1.371 1.371 0 0 1 1.012-.408 1.39 1.39 0 0 1 .992.433l7.449 7.95a.749.749 0 0 1-.547 1.262z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoPortrait6x4_96.svg
function S_IlluPhotoPortrait6x4_96_extends() { S_IlluPhotoPortrait6x4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoPortrait6x4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoPortrait6x4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoPortrait6x4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 83H28a3 3 0 0 1-3-3V18a3 3 0 0 1 3-3h40a3 3 0 0 1 3 3v62a3 3 0 0 1-3 3zM28 17a1 1 0 0 0-1 1v62a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V18a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M58 34.75h-.089a5.848 5.848 0 1 1 .089 0zm0-10a4.167 4.167 0 1 0 .065 0z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.9 69.509a.746.746 0 0 1-.547-.237l-6.082-6.48a.718.718 0 0 0-.5-.2h-.013a.729.729 0 0 0-.506.194l-2.561 2.686a.75.75 0 1 1-1.091-1.038l2.579-2.7a2.164 2.164 0 0 1 1.608-.641 2.234 2.234 0 0 1 1.57.671l6.088 6.486a.749.749 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59.818 76.016a.746.746 0 0 1-.547-.237L45.659 61.25a.447.447 0 0 0-.311-.131.376.376 0 0 0-.323.129l-14.4 14.444a.75.75 0 0 1-1.063-1.058l14.4-14.451a1.939 1.939 0 0 1 1.37-.564h.03a1.937 1.937 0 0 1 1.377.6l13.626 14.534a.75.75 0 0 1-.547 1.263z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoPortrait7x5_96.svg
function S_IlluPhotoPortrait7x5_96_extends() { S_IlluPhotoPortrait7x5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoPortrait7x5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoPortrait7x5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoPortrait7x5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 88H23a3 3 0 0 1-3-3V11a3 3 0 0 1 3-3h52a3 3 0 0 1 3 3v74a3 3 0 0 1-3 3zM23 10a1 1 0 0 0-1 1v74a1 1 0 0 0 1 1h52a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 30.75h-.1a6.75 6.75 0 0 1 .1-13.5h.1a6.75 6.75 0 0 1-.1 13.5zm-.08-1.5H63a5.25 5.25 0 0 0 .081-10.5H63a5.25 5.25 0 0 0-.081 10.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.3 72.529a.744.744 0 0 1-.547-.237l-7.934-8.452a1.211 1.211 0 0 0-1.659-.019l-3.347 3.509a.75.75 0 0 1-1.085-1.036l3.364-3.526A2.578 2.578 0 0 1 63.02 62a2.68 2.68 0 0 1 1.887.8l7.939 8.458a.75.75 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64.363 81.016a.746.746 0 0 1-.547-.237l-17.754-18.95a.811.811 0 0 0-.569-.245.773.773 0 0 0-.584.234l-18.78 18.843a.75.75 0 0 1-1.063-1.061l18.788-18.85a2.252 2.252 0 0 1 1.662-.668 2.294 2.294 0 0 1 1.633.711l17.761 18.96a.75.75 0 0 1-.547 1.263z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPhotoPortrait10x8_96.svg
function S_IlluPhotoPortrait10x8_96_extends() { S_IlluPhotoPortrait10x8_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPhotoPortrait10x8_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPhotoPortrait10x8_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPhotoPortrait10x8_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74 84H22a3 3 0 0 1-3-3V15a3 3 0 0 1 3-3h52a3 3 0 0 1 3 3v66a3 3 0 0 1-3 3zM22 14a1 1 0 0 0-1 1v66a1 1 0 0 0 1 1h52a1 1 0 0 0 1-1V15a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62 33.75h-.1a6.75 6.75 0 0 1 .1-13.5h.1a6.75 6.75 0 0 1-.1 13.5zm-.08-1.5H62a5.25 5.25 0 0 0 .081-10.5H62a5.25 5.25 0 0 0-.081 10.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70.8 70.529a.744.744 0 0 1-.547-.237l-7.934-8.452a1.172 1.172 0 0 0-.819-.34 1.146 1.146 0 0 0-.837.319l-3.35 3.511a.75.75 0 0 1-1.085-1.036l3.364-3.526A2.652 2.652 0 0 1 61.52 60a2.68 2.68 0 0 1 1.887.8l7.939 8.458a.75.75 0 0 1-.547 1.263z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.863 79.016a.746.746 0 0 1-.547-.237l-17.754-18.95a.811.811 0 0 0-.569-.245.766.766 0 0 0-.584.234l-18.78 18.843a.75.75 0 0 1-1.063-1.061l18.788-18.85a2.313 2.313 0 0 1 3.3.043l17.756 18.96a.75.75 0 0 1-.547 1.263z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardLandscapeLarge_96.svg
function S_IlluCustomArtboardLandscapeLarge_96_extends() { S_IlluCustomArtboardLandscapeLarge_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardLandscapeLarge_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardLandscapeLarge_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardLandscapeLarge_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85 43H71a3 3 0 0 1-3-3V26a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 85 43zM70 28.414V40a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M83 74H25a3 3 0 0 1-3-3V28a3 3 0 0 1 3-3h40a1 1 0 0 1 0 2H25a1 1 0 0 0-1 1v43a1 1 0 0 0 1 1h58a1 1 0 0 0 1-1V46a1 1 0 0 1 2 0v25a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 21a1 1 0 0 1-1-1V10a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M17 27H7a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintLetterHalf_96.svg
function S_IlluPrintLetterHalf_96_extends() { S_IlluPrintLetterHalf_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintLetterHalf_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintLetterHalf_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintLetterHalf_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 39h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 61 39zm-9-8.586V36a1 1 0 0 0 1 1h5.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 70H37a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h10a1 1 0 0 1 0 2H37a1 1 0 0 0-1 1v37a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V42a1 1 0 0 1 2 0v25a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintLegalHalf_96.svg
function S_IlluPrintLegalHalf_96_extends() { S_IlluPrintLegalHalf_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintLegalHalf_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintLegalHalf_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintLegalHalf_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "97.011",
  height: "96",
  viewBox: "0 0 97.011 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 71H32a3 3 0 0 1-3-3V28a3 3 0 0 1 3-3h20a1 1 0 0 1 0 2H32a1 1 0 0 0-1 1v40a1 1 0 0 0 1 1h32a1 1 0 0 0 1-1V40a1 1 0 0 1 2 0v28a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 37h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 66 37zm-9-8.586V34a1 1 0 0 0 1 1h5.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintTabloid_96.svg
function S_IlluPrintTabloid_96_extends() { S_IlluPrintTabloid_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintTabloid_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintTabloid_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintTabloid_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 91H23a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h32a1 1 0 0 1 0 2H23a1 1 0 0 0-1 1v80a1 1 0 0 0 1 1h50a1 1 0 0 0 1-1V26a1 1 0 0 1 2 0v62a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 23H61a3 3 0 0 1-3-3V6a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 75 23zM60 8.414V20a1 1 0 0 0 1 1h11.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoHDTV1920x1080_96.svg
function S_VideoHDTV1920x1080_96_extends() { S_VideoHDTV1920x1080_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoHDTV1920x1080_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoHDTV1920x1080_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoHDTV1920x1080_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.705 57.75a1.271 1.271 0 0 1-1.27-1.271V41.521A1.27 1.27 0 0 1 42.3 40.4l14.96 7.92a1.27 1.27 0 0 1-.052 2.271l-14.96 7.039a1.259 1.259 0 0 1-.543.12zm.23-15.848v14.215l14.216-6.689zm14.952 8.009zm-.32-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 70H15a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v36a3 3 0 0 1-3 3zM15 30a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoHDTV1280x720_96.svg
function S_VideoHDTV1280x720_96_extends() { S_VideoHDTV1280x720_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoHDTV1280x720_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoHDTV1280x720_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoHDTV1280x720_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.389 54.924a1.141 1.141 0 0 1-1.139-1.14V42.565a1.14 1.14 0 0 1 1.674-1.007l11.22 5.942a1.14 1.14 0 0 1-.048 2.039l-11.22 5.279a1.14 1.14 0 0 1-.487.106zm.361-11.761v10.054l10.055-4.732zm11.026 5.694z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 64H23a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h50a3 3 0 0 1 3 3v26a3 3 0 0 1-3 3zM23 34a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h50a1 1 0 0 0 1-1V35a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoHDV1080p_96.svg
function S_VideoHDV1080p_96_extends() { S_VideoHDV1080p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoHDV1080p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoHDV1080p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoHDV1080p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.705 56.75a1.271 1.271 0 0 1-1.27-1.271V40.521A1.27 1.27 0 0 1 42.3 39.4l14.96 7.92a1.27 1.27 0 0 1-.052 2.271l-14.96 7.039a1.259 1.259 0 0 1-.543.12zm.23-15.848v14.215l14.216-6.689zm14.952 8.009zm-.32-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 68H24a3 3 0 0 1-3-2.993V30.993A3 3 0 0 1 24 28h48a3 3 0 0 1 3 2.993v34.014A3 3 0 0 1 72 68zM24 30a1 1 0 0 0-1 .993v34.014A1 1 0 0 0 24 66h48a1 1 0 0 0 1-.993V30.993A1 1 0 0 0 72 30z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoDVCPROHD720p_96.svg
function S_VideoDVCPROHD720p_96_extends() { S_VideoDVCPROHD720p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoDVCPROHD720p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoDVCPROHD720p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoDVCPROHD720p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.519 56.75a1.271 1.271 0 0 1-1.269-1.271V40.521a1.27 1.27 0 0 1 1.864-1.121l14.96 7.92a1.269 1.269 0 0 1-.053 2.271l-14.96 7.039a1.264 1.264 0 0 1-.542.12zm.231-15.85v14.217l14.215-6.689zm14.632 7.33z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 69H23a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h50a3 3 0 0 1 3 3v36a3 3 0 0 1-3 3zM23 29a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h50a1 1 0 0 0 1-1V30a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoDVCPROHD1080p_96.svg
function S_VideoDVCPROHD1080p_96_extends() { S_VideoDVCPROHD1080p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoDVCPROHD1080p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoDVCPROHD1080p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoDVCPROHD1080p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.519 56.75a1.271 1.271 0 0 1-1.269-1.271V40.521a1.27 1.27 0 0 1 1.864-1.121l14.96 7.92a1.269 1.269 0 0 1-.053 2.271l-14.96 7.039a1.264 1.264 0 0 1-.542.12zm.231-15.85v14.217l14.215-6.689zm14.632 7.33z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 69H15a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v36a3 3 0 0 1-3 3zM15 29a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V30a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoDCI2K1080p_96.svg
function S_VideoDCI2K1080p_96_extends() { S_VideoDCI2K1080p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoDCI2K1080p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoDCI2K1080p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoDCI2K1080p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 68H15a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM15 30a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.043a1.27 1.27 0 0 1 1.864-1.122l14.917 7.92a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.594 40.571c-.072 0-.084-.036-.084-.095v-.708a.164.164 0 0 1 .048-.132c.454-.4 1.328-1.2 2.213-2.135a3.168 3.168 0 0 0 1.2-2.255 1.3 1.3 0 0 0-1.435-1.355 3.57 3.57 0 0 0-1.819.54c-.071.024-.107 0-.107-.073v-.935c0-.06.012-.1.06-.119a4.167 4.167 0 0 1 2.177-.588 2.28 2.28 0 0 1 2.488 2.362 3.541 3.541 0 0 1-1.124 2.531 28.782 28.782 0 0 1-1.783 1.847 46.4 46.4 0 0 1 1.962-.036h1.31c.072 0 .095.024.084.084l-.24.983c-.011.073-.036.084-.107.084z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.773 40.571c-.06 0-.1-.024-.1-.108V32.92c0-.061.012-.084.084-.084h1.22a.075.075 0 0 1 .084.084v3.166h.693a.218.218 0 0 0 .192-.12c.622-.924 1.364-2.183 1.962-3.059a.137.137 0 0 1 .143-.071h1.292c.1 0 .1.06.06.119-.682 1.044-1.746 2.627-2.464 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.811 3.838.048.061.012.12-.047.12h-1.4a.2.2 0 0 1-.192-.084c-.682-.924-1.543-2.218-2.213-3.13a.218.218 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluVideoHDTV4K2160p_96.svg
function S_IlluVideoHDTV4K2160p_96_extends() { S_IlluVideoHDTV4K2160p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluVideoHDTV4K2160p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluVideoHDTV4K2160p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluVideoHDTV4K2160p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.705 57.75a1.271 1.271 0 0 1-1.27-1.271V41.521A1.27 1.27 0 0 1 42.3 40.4l14.96 7.92a1.27 1.27 0 0 1-.052 2.271l-14.96 7.039a1.259 1.259 0 0 1-.543.12zm.23-15.848v14.215l14.216-6.689zm14.952 8.009zm-.32-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85 70H11a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v36a3 3 0 0 1-3 3zM11 30a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h74a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68.154 38.972c-.084 0-.1-.025-.1-.1v-.648a.347.347 0 0 1 .048-.168c.574-.936 2.6-3.91 3.194-4.738a.165.165 0 0 1 .156-.084h1c.084 0 .108.025.108.1v4.6h1.1c.06 0 .071.036.06.084l-.144.875c-.012.06-.024.073-.1.073h-.921v1.919c0 .071-.024.095-.095.095h-1.148c-.06 0-.083-.036-.083-.095v-1.913zm3.075-2.135c0-.864.011-1.428.035-1.859h-.012c-.335.576-1.6 2.495-1.866 2.974h1.843z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75.524 40.986c-.06 0-.095-.024-.095-.108v-7.543c0-.061.011-.084.083-.084h1.22a.075.075 0 0 1 .084.084V36.5h.694a.216.216 0 0 0 .191-.12c.622-.924 1.364-2.183 1.962-3.059a.138.138 0 0 1 .144-.071H81.1c.095 0 .095.06.06.119-.682 1.044-1.747 2.627-2.465 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.812 3.838.048.061.012.12-.048.12h-1.4a.194.194 0 0 1-.191-.084c-.682-.923-1.544-2.218-2.214-3.13a.217.217 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoDCI4K2160p_96.svg
function S_VideoDCI4K2160p_96_extends() { S_VideoDCI4K2160p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoDCI4K2160p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoDCI4K2160p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoDCI4K2160p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 68H15a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM15 30a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.044a1.269 1.269 0 0 1 1.864-1.122l14.917 7.919a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.013 38.82c-.072 0-.1-.011-.1-.072v-.9a.258.258 0 0 1 .06-.168l2.847-4.546a.178.178 0 0 1 .156-.072h1.471c.06 0 .084.024.084.084v4.522h.873c.06 0 .072.036.06.084l-.143 1.019c-.013.037-.036.048-.1.048h-.694v1.715c0 .06-.024.084-.084.084h-1.128a.086.086 0 0 1-.1-.084V38.82zm3.206-2.207c0-1.1.048-1.883.072-2.3h-.012c-.276.6-1.591 2.758-1.938 3.37h1.878z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M79.149 40.5a.072.072 0 0 1-.06.12h-1.435a.185.185 0 0 1-.192-.1l-2.942-3.535v3.538c0 .072-.036.1-.1.1h-1.2c-.06 0-.1-.024-.1-.108v-7.631c0-.072.024-.1.084-.1h1.22c.06 0 .084.025.084.1v3.5l2.871-3.527a.172.172 0 0 1 .144-.072h1.327c.1 0 .108.072.072.12l-3 3.563a.067.067 0 0 0 0 .107z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoFUHDTV8K4320p_96.svg
function S_VideoFUHDTV8K4320p_96_extends() { S_VideoFUHDTV8K4320p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoFUHDTV8K4320p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoFUHDTV8K4320p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoFUHDTV8K4320p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76 68H20a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h56a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM20 30a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h56a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.043a1.27 1.27 0 0 1 1.864-1.122l14.917 7.92a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.5 34.862a1.984 1.984 0 0 1-.981 1.776 1.923 1.923 0 0 1 1.136 1.8 2.338 2.338 0 0 1-2.62 2.254 2.274 2.274 0 0 1-2.524-2.2 2.026 2.026 0 0 1 1.136-1.8 1.991 1.991 0 0 1-1.017-1.835 2.238 2.238 0 0 1 2.477-2.146 2.173 2.173 0 0 1 2.393 2.151zm-1.208 3.586a1.259 1.259 0 0 0-.575-1.139.573.573 0 0 0-.287-.083h-.694a.346.346 0 0 0-.263.071 1.339 1.339 0 0 0-.6 1.1 1.173 1.173 0 0 0 1.232 1.224 1.114 1.114 0 0 0 1.186-1.173zm-2.345-3.513a1.278 1.278 0 0 0 .49 1.079.417.417 0 0 0 .3.108h.694a.432.432 0 0 0 .311-.108 1.389 1.389 0 0 0 .455-1.056 1.127 1.127 0 1 0-2.249-.023z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68.773 40.571c-.06 0-.1-.024-.1-.108V32.92c0-.061.012-.084.084-.084h1.22a.075.075 0 0 1 .084.084v3.166h.693a.218.218 0 0 0 .192-.12c.622-.924 1.364-2.183 1.962-3.059a.137.137 0 0 1 .143-.071h1.292c.1 0 .1.06.06.119-.682 1.044-1.746 2.627-2.464 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.811 3.838.048.061.012.12-.047.12h-1.4a.2.2 0 0 1-.192-.084c-.682-.924-1.543-2.218-2.213-3.13a.218.218 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoDCI8K4320p_96.svg
function S_VideoDCI8K4320p_96_extends() { S_VideoDCI8K4320p_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoDCI8K4320p_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoDCI8K4320p_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoDCI8K4320p_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 68H15a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zM15 30a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.043a1.27 1.27 0 0 1 1.864-1.122l14.917 7.92a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70.5 34.862a1.984 1.984 0 0 1-.981 1.776 1.923 1.923 0 0 1 1.136 1.8 2.338 2.338 0 0 1-2.62 2.254 2.274 2.274 0 0 1-2.524-2.2 2.026 2.026 0 0 1 1.136-1.8 1.991 1.991 0 0 1-1.017-1.835 2.238 2.238 0 0 1 2.477-2.146 2.173 2.173 0 0 1 2.393 2.151zm-1.208 3.586a1.259 1.259 0 0 0-.575-1.139.573.573 0 0 0-.287-.083h-.694a.346.346 0 0 0-.263.071 1.339 1.339 0 0 0-.6 1.1 1.173 1.173 0 0 0 1.232 1.224 1.114 1.114 0 0 0 1.186-1.173zm-2.345-3.513a1.278 1.278 0 0 0 .49 1.079.417.417 0 0 0 .3.108h.694a.432.432 0 0 0 .311-.108 1.389 1.389 0 0 0 .455-1.056 1.127 1.127 0 1 0-2.249-.023z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.773 40.571c-.06 0-.1-.024-.1-.108V32.92c0-.061.012-.084.084-.084h1.22a.075.075 0 0 1 .084.084v3.166h.693a.218.218 0 0 0 .192-.12c.622-.924 1.364-2.183 1.962-3.059a.137.137 0 0 1 .143-.071h1.292c.1 0 .1.06.06.119-.682 1.044-1.746 2.627-2.464 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.811 3.838.048.061.012.12-.047.12h-1.4a.2.2 0 0 1-.192-.084c-.682-.924-1.543-2.218-2.213-3.13a.218.218 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCDV_96.svg
function S_VideoNTSCDV_96_extends() { S_VideoNTSCDV_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCDV_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCDV_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCDV_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.324 53.592a1.078 1.078 0 0 1-1.074-1.076v-9.35a1.075 1.075 0 0 1 1.577-.95l9.351 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.064 1.064 0 0 1-.459.103zm.426-9.72v7.974l7.974-3.752zm9.063 4.538z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 61H31a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM31 37a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V38a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCDVWidescreen_96.svg
function S_VideoNTSCDVWidescreen_96_extends() { S_VideoNTSCDVWidescreen_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCDVWidescreen_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCDVWidescreen_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCDVWidescreen_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.324 53.592a1.078 1.078 0 0 1-1.074-1.076v-9.35a1.075 1.075 0 0 1 1.577-.95l9.351 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.064 1.064 0 0 1-.459.103zm.426-9.72v7.974l7.974-3.752zm9.063 4.538z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 61H28a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h40a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM28 37a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V38a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.45 58.25a.75.75 0 0 1-.75-.75v-19a.75.75 0 0 1 1.5 0v19a.75.75 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.5 58.25a.75.75 0 0 1-.75-.75v-19a.75.75 0 0 1 1.5 0v19a.75.75 0 0 1-.75.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCD1_96.svg
function S_VideoNTSCD1_96_extends() { S_VideoNTSCD1_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCD1_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCD1_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCD1_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.324 53.592a1.078 1.078 0 0 1-1.074-1.076v-9.35a1.075 1.075 0 0 1 1.577-.95l9.351 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.064 1.064 0 0 1-.459.103zm.426-9.72v7.974l7.974-3.752zm9.063 4.538z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 61H31a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM31 37a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V38a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCD1Widescreen_96.svg
function S_VideoNTSCD1Widescreen_96_extends() { S_VideoNTSCD1Widescreen_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCD1Widescreen_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCD1Widescreen_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCD1Widescreen_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.658 53.591a1.078 1.078 0 0 1-1.075-1.075v-9.35a1.076 1.076 0 0 1 1.578-.95l9.35 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.058 1.058 0 0 1-.458.102zm.425-9.719v7.974l7.974-3.752zm9.063 4.538zm-.319-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 61H28a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h40a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM28 37a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V38a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.475 58.25a.75.75 0 0 1-.75-.75v-19a.75.75 0 0 1 1.5 0v19a.75.75 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.525 58.25a.75.75 0 0 1-.75-.75v-19a.75.75 0 0 1 1.5 0v19a.75.75 0 0 1-.75.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCD1SquarePixel_96.svg
function S_VideoNTSCD1SquarePixel_96_extends() { S_VideoNTSCD1SquarePixel_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCD1SquarePixel_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCD1SquarePixel_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCD1SquarePixel_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.504-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.504-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.504-.5zM33 41.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm6.1 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.051 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.502-.5zm3.051 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.051-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.502-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.502-.5zm6.1 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm9.151 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM48.25 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05 6.4h-.5a.493.493 0 0 0-.481.405l1.446.765a.482.482 0 0 0 .035-.17v-.5a.5.5 0 0 0-.5-.5zM48.707 52l-.637.3h.18a.5.5 0 0 0 .457-.3zm-.457-10.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM51.3 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1 3.2h-.5a.493.493 0 0 0-.475.377l1.446.766a.492.492 0 0 0 .029-.143v-.5a.5.5 0 0 0-.5-.5zM33 50.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM45.2 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.7 11.07v-1.44a.494.494 0 0 0-.351.47v.5a.494.494 0 0 0 .351.47zM33 54h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm8.5-1.73v-1.44a.494.494 0 0 0-.351.47v.5a.494.494 0 0 0 .351.47zM39.1 41.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.468 1.483a1.621 1.621 0 0 1 1.04-1.183.5.5 0 0 0-.459-.3h-.5a.5.5 0 0 0-.5.5v.5a.493.493 0 0 0 .417.483zM41.5 45.87v-1.44a.494.494 0 0 0-.351.47v.5a.494.494 0 0 0 .351.47zm15.9 4.93h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zM57.4 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0 16h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm3.049-3.2H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.6H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-16H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-24.4 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm24.4 9.6H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-12.2 0h-.043l-.946.445a.535.535 0 0 0-.011.055v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.499-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.499-.5zm-12 3.257c-.01-.007-.017-.016-.027-.022a.492.492 0 0 0-.174-.035h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.492.492 0 0 0-.235-.413c-.022-.013-.046-.017-.067-.03zM45.2 54h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.501-.5zm6.176-6.385a1.85 1.85 0 0 1 .073.543 1.827 1.827 0 0 1-.287.942h.139a.5.5 0 0 0 .5-.5v-.5a.493.493 0 0 0-.426-.485zM57.4 44.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM54.351 38h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.049 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.049-12.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.324 53.591a1.076 1.076 0 0 1-1.074-1.075v-9.35a1.075 1.075 0 0 1 1.577-.95l9.351 4.95a1.075 1.075 0 0 1-.044 1.923l-9.35 4.4a1.06 1.06 0 0 1-.46.102zm.426-9.719v7.974l7.975-3.752zm9.063 4.538z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 60H31a3 3 0 0 1-3-3V37a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM31 36a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V37a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoNTSCWidescreen872x480_96.svg
function S_VideoNTSCWidescreen872x480_96_extends() { S_VideoNTSCWidescreen872x480_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoNTSCWidescreen872x480_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoNTSCWidescreen872x480_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoNTSCWidescreen872x480_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36 48.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.051 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zM36 42.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM36 55h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.047-16h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM36 39h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zm3.051 16h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zm-3.051-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zm3.051 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.496-.5zM39.054 55h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.501-.5zm21.355-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.501-.5zM51.257 39h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.501-.5zm6.566 10.773l-.694.327h.229a.5.5 0 0 0 .464-.327zm-.466-4.373h-.5a.5.5 0 0 0-.459.3l1.445.765a.391.391 0 0 0 .014-.068v-.5a.5.5 0 0 0-.5-.497zm-6.1-3.2h-.5a.5.5 0 0 0-.444.28l1.435.76a.288.288 0 0 0 .009-.04v-.5a.5.5 0 0 0-.501-.5zm-15.255 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM29.9 42.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm15.254 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm-12.2 16h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.501-.5zM29.9 45.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm30.509 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM60.409 39h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm6.1 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm-6.1 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm6.1-12.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm0 16h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zM63.46 39h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 12.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.051-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM47.707 53.3h.5a.5.5 0 0 0 .5-.5v-.172l-1.257.591a.486.486 0 0 0 .257.081zm12.7 1.7h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.498-.5zm-12.2 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.502-.5zm9.15 6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-9.152-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm9.152 12.8h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-9.152-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM45.156 55h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm12.2-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.497-.5zM54.308 55h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051-9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.4h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.051 9.6h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.051 3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.2h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.657 53.591a1.076 1.076 0 0 1-1.074-1.075v-9.35a1.075 1.075 0 0 1 1.577-.95l9.351 4.95a1.075 1.075 0 0 1-.044 1.923l-9.35 4.4a1.06 1.06 0 0 1-.46.102zm.426-9.719v7.974l7.975-3.752zm9.063 4.538zm-.32-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 61H28a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h40a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3zM28 37a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V38a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoPALD1DV_96.svg
function S_VideoPALD1DV_96_extends() { S_VideoPALD1DV_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoPALD1DV_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoPALD1DV_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoPALD1DV_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.658 53.591a1.078 1.078 0 0 1-1.075-1.075v-9.35a1.076 1.076 0 0 1 1.578-.95l9.35 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.058 1.058 0 0 1-.458.102zm.425-9.719v7.974l7.974-3.752zm9.063 4.538zm-.319-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 63H31a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zM31 35a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoPALD1DVWidescreen_96.svg
function S_VideoPALD1DVWidescreen_96_extends() { S_VideoPALD1DVWidescreen_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoPALD1DVWidescreen_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoPALD1DVWidescreen_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoPALD1DVWidescreen_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.658 53.591a1.078 1.078 0 0 1-1.075-1.075v-9.35a1.076 1.076 0 0 1 1.578-.95l9.35 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.058 1.058 0 0 1-.458.102zm.425-9.719v7.974l7.974-3.752zm9.063 4.538zm-.319-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 63H24a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h48a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zM24 35a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.45 60.25a.75.75 0 0 1-.75-.75v-23a.75.75 0 0 1 1.5 0v23a.75.75 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M29.5 60.25a.75.75 0 0 1-.75-.75v-23a.75.75 0 0 1 1.5 0v23a.75.75 0 0 1-.75.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoPALD1DVSquarePixel_96.svg
function S_VideoPALD1DVSquarePixel_96_extends() { S_VideoPALD1DVSquarePixel_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoPALD1DVSquarePixel_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoPALD1DVSquarePixel_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoPALD1DVSquarePixel_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 63H31a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zM31 35a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36.05 45.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.215h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.214h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM33 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm3.05 18.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.214h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM42.15 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM33 39.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM39.1 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.214h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm9.15-9.214h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm-3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm3.05 3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM33 42.643h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm9.15 12.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-18.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm9.15 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm-3.05 6.143h-.5a.493.493 0 0 0-.474.373l1.446.766a.5.5 0 0 0 .028-.139v-.5a.5.5 0 0 0-.5-.5zm3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM33 48.786h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm9.15-12.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM33 45.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm8.65-1.571h.183v-.977a1.851 1.851 0 0 1 .082-.523h-.265a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5zM33 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm8.65-10.786h.183v-1.5h-.183a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5zm0 6.143h.393a1.822 1.822 0 0 1-.21-.841v-.659h-.183a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5zm0-3.071h.183v-1.5h-.183a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5zm18.8 4.642h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM45.2 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm12.2-15.357h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zM60.45 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05-15.357H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.072H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 9.214H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.143H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.142H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.072H63a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05-21.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm-3.05 3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-6.1 15.357h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.071h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM54.35 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05-3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.05-2.085v.014a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.043-.2zm7.1 2.085h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm3.05 12.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM54.35 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zM57.4 58h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-3.05 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-.564 10.2l-.4.188a.5.5 0 0 0 .466.33h.5a.5.5 0 0 0 .5-.5v-.5a.489.489 0 0 0-.207-.4 1.8 1.8 0 0 1-.859.879zm.564-4.054h-.5a.5.5 0 0 0-.5.5v.019l.512.271a1.816 1.816 0 0 1 .7.66.5.5 0 0 0 .288-.45v-.5a.5.5 0 0 0-.5-.503zm3.05 3.072h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.503z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.658 53.591a1.078 1.078 0 0 1-1.075-1.075v-9.35a1.076 1.076 0 0 1 1.578-.95l9.35 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.058 1.058 0 0 1-.458.102zm.425-9.719v7.974l7.974-3.752zm9.063 4.538zm-.319-.679z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoPALD1DVWidescreenSquarePixel_96.svg
function S_VideoPALD1DVWidescreenSquarePixel_96_extends() { S_VideoPALD1DVWidescreenSquarePixel_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoPALD1DVWidescreenSquarePixel_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoPALD1DVWidescreenSquarePixel_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoPALD1DVWidescreenSquarePixel_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M34.89 45.928h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM37.853 58.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.963-9.429h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm2.963 22h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963-15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm5.926 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.964 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 9.429h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.429h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.964 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 18.857h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-5.926 9.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM28.963 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm17.78 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM26 55.357h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm5.927 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm17.78-15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM43.78 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm5.927 3.143h-.5a.5.5 0 0 0-.5.5v.488l.965.512h.035a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM52.67 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm-2.963 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm2.963 6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM26 58.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm2.963-12.572h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM40.817 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm-8.89 22h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.964-6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM26 45.928h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM28.963 58.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zM26 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm38.523 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-9.428h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.964 9.429h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.964-18.857h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.964 15.714h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM64.523 36.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 18.857h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963-6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.285h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM64.523 58.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.963-6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm8.89 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-18.857h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm2.963 22h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.963-6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM55.633 39.643h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 6.286h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm2.963-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-5.926-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.463-1.643h.5a.5.5 0 0 0 .5-.5v-.014l-1.065.5a.467.467 0 0 0 .065.014zm3.463 7.929h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.963-3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.964 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.963 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.963 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm2.964 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-3.464-4.786h.5a.5.5 0 0 0 .5-.5v-.368l-1.4.657a.49.49 0 0 0 .4.211zm9.39-7.786h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.967-3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.142h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.964 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.503-.5zm2.964 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm2.96 9.429h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm-2.96-22h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm0 3.143h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm-2.967-12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zm5.927 12.571h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5v-.5a.5.5 0 0 0-.5-.5zM43.78 58.5h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.5-.5zm14.817 0h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V59a.5.5 0 0 0-.497-.5zm-2.964-22h-.5a.5.5 0 0 0-.5.5v.5a.5.5 0 0 0 .5.5h.5a.5.5 0 0 0 .5-.5V37a.5.5 0 0 0-.5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.658 53.591a1.078 1.078 0 0 1-1.075-1.075v-9.35a1.076 1.076 0 0 1 1.578-.95l9.35 4.95a1.075 1.075 0 0 1-.045 1.923l-9.35 4.4a1.058 1.058 0 0 1-.458.102zm.425-9.719v7.974l7.974-3.752zm9.063 4.538zm-.319-.679z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 63H24a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h48a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zM24 35a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V36a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoCineonHalf_96.svg
function S_VideoCineonHalf_96_extends() { S_VideoCineonHalf_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoCineonHalf_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoCineonHalf_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoCineonHalf_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.886 53.246a1.066 1.066 0 0 1-.571-.168 1.046 1.046 0 0 1-.486-.885v-8.681a1.045 1.045 0 0 1 .506-.9 1.061 1.061 0 0 1 1.041-.035l8.858 4.6a1.05 1.05 0 0 1-.043 1.887l-8.858 4.084a1.043 1.043 0 0 1-.447.098zm-.186-1.461zm.625-7.54V51.5l7.4-3.412zm8.547 4.136z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63.5 62h-31a3 3 0 0 1-3-3V37a3 3 0 0 1 3-3h31a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3zm-31-26a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h31a1 1 0 0 0 1-1V37a1 1 0 0 0-1-1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoCineonFull_96.svg
function S_VideoCineonFull_96_extends() { S_VideoCineonFull_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoCineonFull_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoCineonFull_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoCineonFull_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 76H15a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zM15 22a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.044a1.269 1.269 0 0 1 1.864-1.122l14.917 7.919a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoFilm2K2048x1556_96.svg
function S_VideoFilm2K2048x1556_96_extends() { S_VideoFilm2K2048x1556_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoFilm2K2048x1556_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoFilm2K2048x1556_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoFilm2K2048x1556_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 76H15a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zM15 22a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.21 56.272A1.27 1.27 0 0 1 39.941 55V40.044a1.269 1.269 0 0 1 1.865-1.122l14.959 7.918a1.27 1.27 0 0 1-.054 2.272l-14.959 7.039a1.277 1.277 0 0 1-.542.121zm.231-15.846V54.64l14.216-6.689zm14.632 7.329z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.644 32.571c-.072 0-.084-.036-.084-.095v-.708a.164.164 0 0 1 .048-.132c.455-.4 1.331-1.2 2.219-2.135a3.164 3.164 0 0 0 1.2-2.255 1.3 1.3 0 0 0-1.44-1.355 3.591 3.591 0 0 0-1.822.54c-.073.024-.108 0-.108-.072v-.935c0-.061.011-.1.06-.121a4.186 4.186 0 0 1 2.182-.587 2.284 2.284 0 0 1 2.5 2.362 3.537 3.537 0 0 1-1.127 2.531 28.85 28.85 0 0 1-1.787 1.847 46.62 46.62 0 0 1 1.967-.036h1.319c.072 0 .1.023.084.084l-.24.983c-.012.072-.036.084-.108.084z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.844 32.571c-.06 0-.1-.024-.1-.108V24.92c0-.061.012-.084.084-.084h1.223a.075.075 0 0 1 .084.084v3.166h.7a.218.218 0 0 0 .192-.12c.624-.923 1.368-2.183 1.967-3.058a.137.137 0 0 1 .144-.072h1.3c.095 0 .095.06.059.119-.683 1.044-1.751 2.627-2.47 3.551-.024.035-.024.059 0 .107.959 1.164 1.919 2.591 2.818 3.838.048.061.012.12-.048.12h-1.4a.2.2 0 0 1-.192-.084c-.683-.923-1.547-2.218-2.218-3.13a.221.221 0 0 0-.2-.12h-.635v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoFilm4K4096x3112_96.svg
function S_VideoFilm4K4096x3112_96_extends() { S_VideoFilm4K4096x3112_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoFilm4K4096x3112_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoFilm4K4096x3112_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoFilm4K4096x3112_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 76H15a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zM15 22a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.044a1.269 1.269 0 0 1 1.864-1.122l14.917 7.919a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.4 30.557c-.084 0-.095-.025-.095-.1v-.649a.335.335 0 0 1 .047-.167c.575-.936 2.6-3.91 3.2-4.738a.163.163 0 0 1 .155-.084h1.005c.084 0 .107.025.107.1v4.6h1.1c.06 0 .072.036.06.084l-.144.875c-.012.06-.023.073-.095.073h-.922v1.919c0 .071-.023.095-.095.095h-1.16c-.06 0-.084-.036-.084-.095v-1.913zm3.075-2.135c0-.864.012-1.428.036-1.86H68.5c-.335.577-1.6 2.5-1.866 2.975h1.842z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.773 32.571c-.06 0-.095-.024-.095-.108V24.92c0-.061.011-.084.083-.084h1.22a.075.075 0 0 1 .084.084v3.166h.694a.216.216 0 0 0 .191-.12c.622-.924 1.364-2.183 1.962-3.059a.138.138 0 0 1 .144-.071h1.292c.095 0 .095.06.06.119-.682 1.044-1.747 2.627-2.465 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.812 3.838.048.061.012.12-.048.12h-1.4a.194.194 0 0 1-.191-.084c-.682-.924-1.544-2.218-2.214-3.13a.217.217 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.107.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_VideoFilm8K8192x6224_96.svg
function S_VideoFilm8K8192x6224_96_extends() { S_VideoFilm8K8192x6224_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_VideoFilm8K8192x6224_96_extends.apply(this, arguments); }


/* harmony default export */ var S_VideoFilm8K8192x6224_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_VideoFilm8K8192x6224_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M81 76H15a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zM15 22a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.229 56.272A1.269 1.269 0 0 1 39.961 55V40.044a1.269 1.269 0 0 1 1.864-1.122l14.917 7.919a1.27 1.27 0 0 1-.054 2.27l-14.917 7.04a1.277 1.277 0 0 1-.542.121zm.232-15.845v14.212l14.173-6.688zm14.907 8.007z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70.5 26.862a1.984 1.984 0 0 1-.981 1.776 1.923 1.923 0 0 1 1.136 1.8 2.338 2.338 0 0 1-2.62 2.254 2.274 2.274 0 0 1-2.524-2.2 2.026 2.026 0 0 1 1.136-1.8 1.991 1.991 0 0 1-1.017-1.835 2.238 2.238 0 0 1 2.477-2.146 2.173 2.173 0 0 1 2.393 2.151zm-1.208 3.586a1.259 1.259 0 0 0-.575-1.139.573.573 0 0 0-.287-.083h-.694a.346.346 0 0 0-.263.071 1.339 1.339 0 0 0-.6 1.1 1.173 1.173 0 0 0 1.232 1.224 1.114 1.114 0 0 0 1.186-1.173zm-2.345-3.513a1.278 1.278 0 0 0 .49 1.079.417.417 0 0 0 .3.108h.694a.432.432 0 0 0 .311-.108 1.389 1.389 0 0 0 .455-1.056 1.127 1.127 0 1 0-2.249-.023z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.773 32.571c-.06 0-.1-.024-.1-.108V24.92c0-.061.012-.084.084-.084h1.22a.075.075 0 0 1 .084.084v3.166h.693a.218.218 0 0 0 .192-.12c.622-.924 1.364-2.183 1.962-3.059a.137.137 0 0 1 .143-.071h1.292c.1 0 .1.06.06.119-.682 1.044-1.746 2.627-2.464 3.551-.024.035-.024.059 0 .107.957 1.163 1.914 2.591 2.811 3.838.048.061.012.12-.047.12h-1.4a.2.2 0 0 1-.192-.084c-.682-.924-1.543-2.218-2.213-3.13a.218.218 0 0 0-.2-.12h-.634v3.226c0 .084-.036.108-.108.108z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebMostCommon_96.svg
function S_IlluWebMostCommon_96_extends() { S_IlluWebMostCommon_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebMostCommon_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebMostCommon_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebMostCommon_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 67H19a3 3 0 0 1-3-3V33a3 3 0 0 1 3-3h59a3 3 0 0 1 3 3v31a3 3 0 0 1-3 3zM19 32a1 1 0 0 0-1 1v31a1 1 0 0 0 1 1h59a1 1 0 0 0 1-1V33a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77 39.283H20a.75.75 0 0 1 0-1.5h57a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M24.57 36.01h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebLarge_96.svg
function S_IlluWebLarge_96_extends() { S_IlluWebLarge_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebLarge_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebLarge_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebLarge_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M85 72H11a3 3 0 0 1-3-3V29a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v40a3 3 0 0 1-3 3zM11 28a1 1 0 0 0-1 1v40a1 1 0 0 0 1 1h74a1 1 0 0 0 1-1V29a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84 35.331H12a.75.75 0 0 1 0-1.5h72a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M16.538 32.051h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebMedium_96.svg
function S_IlluWebMedium_96_extends() { S_IlluWebMedium_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebMedium_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebMedium_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebMedium_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77.5 68h-59a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h59a3 3 0 0 1 3 3v34a3 3 0 0 1-3 3zm-59-38a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h59a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76.262 37.306H19.738a.75.75 0 0 1 0-1.5h56.524a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M24.056 34.067H21.9a.75.75 0 0 1 0-1.5h2.16a.75.75 0 1 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebMinimum_96.svg
function S_IlluWebMinimum_96_extends() { S_IlluWebMinimum_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebMinimum_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebMinimum_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebMinimum_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70.5 67h-45a3 3 0 0 1-3-3V32a3 3 0 0 1 3-3h45a3 3 0 0 1 3 3v32a3 3 0 0 1-3 3zm-45-36a1 1 0 0 0-1 1v32a1 1 0 0 0 1 1h45a1 1 0 0 0 1-1V32a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.5 38.312h-43a.75.75 0 0 1 0-1.5h43a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M31.062 35.062h-2a.75.75 0 1 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebSmall_96.svg
function S_IlluWebSmall_96_extends() { S_IlluWebSmall_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebSmall_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebSmall_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebSmall_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76 67H20a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h56a3 3 0 0 1 3 3v33a3 3 0 0 1-3 3zM20 30a1 1 0 0 0-1 1v33a1 1 0 0 0 1 1h56a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 37.311H21a.75.75 0 0 1 0-1.5h54a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.57 34.024h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebMacBookPro13_96.svg
function S_IlluWebMacBookPro13_96_extends() { S_IlluWebMacBookPro13_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebMacBookPro13_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebMacBookPro13_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebMacBookPro13_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86 74H10a3 3 0 0 1-3-3V25a3 3 0 0 1 3-3h76a3 3 0 0 1 3 3v46a3 3 0 0 1-3 3zM10 24a1 1 0 0 0-1 1v46a1 1 0 0 0 1 1h76a1 1 0 0 0 1-1V25a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84.762 31.306H11.238a.75.75 0 1 1 0-1.5h73.524a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M15.556 28.067H13.4a.75.75 0 0 1 0-1.5h2.16a.75.75 0 1 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebMacBookPro15_96.svg
function S_IlluWebMacBookPro15_96_extends() { S_IlluWebMacBookPro15_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebMacBookPro15_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebMacBookPro15_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebMacBookPro15_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88 75H8a3 3 0 0 1-3-3V24a3 3 0 0 1 3-3h80a3 3 0 0 1 3 3v48a3 3 0 0 1-3 3zM8 23a1 1 0 0 0-1 1v48a1 1 0 0 0 1 1h80a1 1 0 0 0 1-1V24a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M87 30.312H9a.75.75 0 1 1 0-1.5h78a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M13.583 27.042h-2a.75.75 0 1 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebiMac27_96.svg
function S_IlluWebiMac27_96_extends() { S_IlluWebiMac27_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebiMac27_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebiMac27_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebiMac27_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M86 71H10a3 3 0 0 1-3-3V28a3 3 0 0 1 3-3h76a3 3 0 0 1 3 3v40a3 3 0 0 1-3 3zM10 27a1 1 0 0 0-1 1v40a1 1 0 0 0 1 1h76a1 1 0 0 0 1-1V28a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M84.762 34.306H11.238a.75.75 0 0 1 0-1.5h73.524a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M15.556 31.067H13.4a.75.75 0 0 1 0-1.5h2.16a.75.75 0 1 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebDesktopHDDesign_96.svg
function S_IlluWebDesktopHDDesign_96_extends() { S_IlluWebDesktopHDDesign_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebDesktopHDDesign_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebDesktopHDDesign_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebDesktopHDDesign_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77.5 71.5h-59a3 3 0 0 1-3-3v-41a3 3 0 0 1 3-3h59a3 3 0 0 1 3 3v41a3 3 0 0 1-3 3zm-59-45a1 1 0 0 0-1 1v41a1 1 0 0 0 1 1h59a1 1 0 0 0 1-1v-41a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76.262 33.806H19.738a.75.75 0 0 1 0-1.5h56.524a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M24.056 30.567H21.9a.75.75 0 0 1 0-1.5h2.16a.75.75 0 1 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardSquareSmall_96.svg
function S_IlluCustomArtboardSquareSmall_96_extends() { S_IlluCustomArtboardSquareSmall_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardSquareSmall_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardSquareSmall_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardSquareSmall_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 71H34a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h21a1 1 0 0 1 0 2H34a1 1 0 0 0-1 1v33a1 1 0 0 0 1 1h33a1 1 0 0 0 1-1V47a1 1 0 0 1 2 0v21a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32 28a1 1 0 0 1-1-1V17a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M26 34H16a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 44h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 69 44zm-9-8.586V41a1 1 0 0 0 1 1h5.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardSquareMedium_96.svg
function S_IlluCustomArtboardSquareMedium_96_extends() { S_IlluCustomArtboardSquareMedium_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardSquareMedium_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardSquareMedium_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardSquareMedium_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 75H30a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h28a1 1 0 0 1 0 2H30a1 1 0 0 0-1 1v42a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V44a1 1 0 0 1 2 0v28a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M28 23a1 1 0 0 1-1-1V12a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M22 29H12a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74 41H64a3 3 0 0 1-3-3V28a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 74 41zM63 30.414V38a1 1 0 0 0 1 1h7.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardSquareLarge_96.svg
function S_IlluCustomArtboardSquareLarge_96_extends() { S_IlluCustomArtboardSquareLarge_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardSquareLarge_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardSquareLarge_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardSquareLarge_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M23 18a1 1 0 0 1-1-1V7a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M79 40H65a3 3 0 0 1-3-3V23a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 79 40zM64 25.414V37a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77 80H25a3 3 0 0 1-3-3V25a3 3 0 0 1 3-3h34a1 1 0 0 1 0 2H25a1 1 0 0 0-1 1v52a1 1 0 0 0 1 1h52a1 1 0 0 0 1-1V43a1 1 0 0 1 2 0v34a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M17 24H7a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardLandscapeSmall_96.svg
function S_IlluCustomArtboardLandscapeSmall_96_extends() { S_IlluCustomArtboardLandscapeSmall_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardLandscapeSmall_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardLandscapeSmall_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardLandscapeSmall_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 66H34a3 3 0 0 1-3-3V36a3 3 0 0 1 3-3h26a1 1 0 0 1 0 2H34a1 1 0 0 0-1 1v27a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V48a1 1 0 0 1 2 0v15a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32 29a1 1 0 0 1-1-1V18a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M26 35H16a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74 45h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 74 45zm-9-8.586V42a1 1 0 0 0 1 1h5.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardLandscapeMedium_96.svg
function S_IlluCustomArtboardLandscapeMedium_96_extends() { S_IlluCustomArtboardLandscapeMedium_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardLandscapeMedium_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardLandscapeMedium_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardLandscapeMedium_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 69H30a3 3 0 0 1-3-3V32a3 3 0 0 1 3-3h34a1 1 0 0 1 0 2H30a1 1 0 0 0-1 1v34a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V46a1 1 0 0 1 2 0v20a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M28 25a1 1 0 0 1-1-1V14a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M22 31H12a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80 43H70a3 3 0 0 1-3-3V30a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 80 43zM69 32.414V40a1 1 0 0 0 1 1h7.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardPortraitSmall_96.svg
function S_IlluCustomArtboardPortraitSmall_96_extends() { S_IlluCustomArtboardPortraitSmall_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardPortraitSmall_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardPortraitSmall_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardPortraitSmall_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 74H37a3 3 0 0 1-3-3V34a3 3 0 0 1 3-3h16a1 1 0 0 1 0 2H37a1 1 0 0 0-1 1v37a1 1 0 0 0 1 1h28a1 1 0 0 0 1-1V46a1 1 0 0 1 2 0v25a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35 27a1 1 0 0 1-1-1V16a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M29 33H19a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 43h-8a3 3 0 0 1-3-3v-8a1 1 0 0 1 1.707-.707l10 10A1 1 0 0 1 67 43zm-9-8.586V40a1 1 0 0 0 1 1h5.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardPortraitMedium_96.svg
function S_IlluCustomArtboardPortraitMedium_96_extends() { S_IlluCustomArtboardPortraitMedium_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardPortraitMedium_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardPortraitMedium_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardPortraitMedium_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71 79H35a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h22a1 1 0 0 1 0 2H35a1 1 0 0 0-1 1v46a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V44a1 1 0 0 1 2 0v32a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33 23a1 1 0 0 1-1-1V12a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M27 29H17a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 41H63a3 3 0 0 1-3-3V28a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 73 41zM62 30.414V38a1 1 0 0 0 1 1h7.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluCustomArtboardPortraitLarge_96.svg
function S_IlluCustomArtboardPortraitLarge_96_extends() { S_IlluCustomArtboardPortraitLarge_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluCustomArtboardPortraitLarge_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluCustomArtboardPortraitLarge_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluCustomArtboardPortraitLarge_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77 40H63a3 3 0 0 1-3-3V23a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 77 40zM62 25.414V37a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 84H29a3 3 0 0 1-3-3V25a3 3 0 0 1 3-3h28a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h46a1 1 0 0 0 1-1V43a1 1 0 0 1 2 0v38a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M27 18a1 1 0 0 1-1-1V7a1 1 0 0 1 2 0v10a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M21 24H11a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileA4_96.svg
function S_IlluMobileA4_96_extends() { S_IlluMobileA4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileA4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileA4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileA4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M67 78H29a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h38a3 3 0 0 1 3 3v56a3 3 0 0 1-3 3zM29 18a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1z",
  fill: "#b3b3b3",
  "data-name": "ICONS 96"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileAndroidPortrait720x1280_96.svg
function S_IlluMobileAndroidPortrait720x1280_96_extends() { S_IlluMobileAndroidPortrait720x1280_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileAndroidPortrait720x1280_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileAndroidPortrait720x1280_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileAndroidPortrait720x1280_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M29 78V16c0-3.037 2.355-5 6-5h26c3.645 0 6 1.963 6 5v62c0 3.037-2.355 5-6 5H35c-3.645 0-6-1.963-6-5zm36-62c0-2.708-2.797-3-4-3H35c-1.203 0-4 .292-4 3v62c0 2.708 2.797 3 4 3h26c1.203 0 4-.292 4-3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.25 76.5a2.253 2.253 0 0 1 2.25-2.25h4a2.25 2.25 0 0 1 0 4.5h-4a2.253 2.253 0 0 1-2.25-2.25zm7 0a.751.751 0 0 0-.75-.75h-4a.75.75 0 0 0 0 1.5h4a.751.751 0 0 0 .75-.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M44.393 17a.75.75 0 0 1 .75-.75h7.714a.75.75 0 1 1 0 1.5h-7.714a.75.75 0 0 1-.75-.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M40.25 17a.75.75 0 0 1 .75-.75h1.143a.75.75 0 0 1 0 1.5H41a.75.75 0 0 1-.75-.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileLetter_96.svg
function S_IlluMobileLetter_96_extends() { S_IlluMobileLetter_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileLetter_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileLetter_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileLetter_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M66.5 75h-37a3 3 0 0 1-3-3V22a3 3 0 0 1 3-3h37a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zm-37-54a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h37a1 1 0 0 0 1-1V22a1 1 0 0 0-1-1z",
  fill: "#b3b3b3",
  "data-name": "ICONS 96"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebA4_96.svg
function S_IlluWebA4_96_extends() { S_IlluWebA4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebA4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebA4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebA4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 79H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h38a3 3 0 0 1 3 3v56a3 3 0 0 1-3 3zM29 19a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V20a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 26.312H30a.75.75 0 0 1 0-1.5h36a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M34.562 23.062h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb1240x620_96.svg
function S_IlluWeb1240x620_96_extends() { S_IlluWeb1240x620_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb1240x620_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb1240x620_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb1240x620_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76 62H20a3 3 0 0 1-3-3V33a3 3 0 0 1 3-3h56a3 3 0 0 1 3 3v26a3 3 0 0 1-3 3zM20 32a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h56a1 1 0 0 0 1-1V33a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 39.312H21a.75.75 0 0 1 0-1.5h54a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.57 36.024h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb984x588_96.svg
function S_IlluWeb984x588_96_extends() { S_IlluWeb984x588_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb984x588_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb984x588_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb984x588_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73 62.5H23a3 3 0 0 1-3-3v-27a3 3 0 0 1 3-3h50a3 3 0 0 1 3 3v27a3 3 0 0 1-3 3zm-50-31a1 1 0 0 0-1 1v27a1 1 0 0 0 1 1h50a1 1 0 0 0 1-1v-27a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 37.861H24a.75.75 0 0 1 0-1.5h48a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M28 35.027h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb960x560_136.svg
function S_IlluWeb960x560_136_extends() { S_IlluWeb960x560_136_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb960x560_136_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb960x560_136 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb960x560_136_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "136",
  height: "136",
  viewBox: "0 0 136 136"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_136",
  "data-name": "ICONS 136"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M105.667 93.583H30.333a3.5 3.5 0 0 1-3.5-3.5V45.917a3.5 3.5 0 0 1 3.5-3.5h75.334a3.5 3.5 0 0 1 3.5 3.5v44.166a3.5 3.5 0 0 1-3.5 3.5zM30.333 45.417a.5.5 0 0 0-.5.5v44.166a.5.5 0 0 0 .5.5h75.334a.5.5 0 0 0 .5-.5V45.917a.5.5 0 0 0-.5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M103.417 54.282H32.583a1 1 0 0 1 0-2h70.834a1 1 0 0 1 0 2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M38.25 50.269h-2.833a1 1 0 0 1 0-2h2.833a1 1 0 0 1 0 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb760x420_96.svg
function S_IlluWeb760x420_96_extends() { S_IlluWeb760x420_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb760x420_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb760x420_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb760x420_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 59H29a3 3 0 0 1-3-3V37a3 3 0 0 1 3-3h38a3 3 0 0 1 3 3v19a3 3 0 0 1-3 3zM29 36a1 1 0 0 0-1 1v19a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V37a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 42.361H30a.75.75 0 1 1 0-1.5h36a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M34 39.527h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb600x300_96.svg
function S_IlluWeb600x300_96_extends() { S_IlluWeb600x300_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb600x300_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb600x300_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb600x300_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 54H31a3 3 0 0 1-3-3V37a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3zM31 36a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V37a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 42.361H32a.75.75 0 1 1 0-1.5h32a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36 39.528h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 54H31a3 3 0 0 1-3-3V37a3 3 0 0 1 3-3h34a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3zM31 36a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h34a1 1 0 0 0 1-1V37a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 42.361H32a.75.75 0 1 1 0-1.5h32a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36 39.527h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb640x480_96.svg
function S_IlluWeb640x480_96_extends() { S_IlluWeb640x480_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb640x480_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb640x480_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb640x480_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 64H30a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h36a3 3 0 0 1 3 3v26a3 3 0 0 1-3 3zM30 34a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V35a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 40.361H31a.75.75 0 1 1 0-1.5h34a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35 37.528h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWebLetter_96.svg
function S_IlluWebLetter_96_extends() { S_IlluWebLetter_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWebLetter_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWebLetter_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWebLetter_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66.5 76h-37a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h37a3 3 0 0 1 3 3v50a3 3 0 0 1-3 3zm-37-54a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h37a1 1 0 0 0 1-1V23a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.5 29.312h-35a.75.75 0 0 1 0-1.5h35a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35.062 26.062h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluWeb800x600_96.svg
function S_IlluWeb800x600_96_extends() { S_IlluWeb800x600_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluWeb800x600_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluWeb800x600_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluWeb800x600_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68.5 66h-41a3 3 0 0 1-3-3V33a3 3 0 0 1 3-3h41a3 3 0 0 1 3 3v30a3 3 0 0 1-3 3zm-41-34a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h41a1 1 0 0 0 1-1V33a1 1 0 0 0-1-1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67.5 38.361h-39a.75.75 0 1 1 0-1.5h39a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M32.5 35.528h-2a.75.75 0 1 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileKindleFireNook_96.svg
function S_IlluMobileKindleFireNook_96_extends() { S_IlluMobileKindleFireNook_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileKindleFireNook_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileKindleFireNook_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileKindleFireNook_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M77 65.75H19a.75.75 0 0 1-.75-.75V31a.75.75 0 0 1 .75-.75h58a.75.75 0 0 1 .75.75v34a.75.75 0 0 1-.75.75zm-57.25-1.5h56.5v-32.5h-56.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80 74H16a6.006 6.006 0 0 1-6-6V28a6.006 6.006 0 0 1 6-6h64a6.006 6.006 0 0 1 6 6v40a6.006 6.006 0 0 1-6 6zM16 24a4 4 0 0 0-4 4v40a4 4 0 0 0 4 4h64a4 4 0 0 0 4-4V28a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80.932 53.75a.75.75 0 0 1-.75-.75V41a.75.75 0 0 1 1.5 0v12a.75.75 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M15.068 53.75a.75.75 0 0 1-.75-.75V41a.75.75 0 0 1 1.5 0v12a.75.75 0 0 1-.75.75z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileSamsungGalaxyS8_96.svg
function S_IlluMobileSamsungGalaxyS8_96_extends() { S_IlluMobileSamsungGalaxyS8_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileSamsungGalaxyS8_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileSamsungGalaxyS8_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileSamsungGalaxyS8_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 86.5H37c-4.187 0-7-2.411-7-6v-65c0-3.589 2.813-6 7-6h22c4.187 0 7 2.411 7 6v65c0 3.589-2.813 6-7 6zm-22-75c-2.417 0-5 1.051-5 4v65c0 2.949 2.583 4 5 4h22c2.417 0 5-1.051 5-4v-65c0-2.949-2.583-4-5-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 20.5a1 1 0 0 1-1-1 3 3 0 0 0-3-3H35a3 3 0 0 0-3 3 1 1 0 0 1-2 0 5.006 5.006 0 0 1 5-5h26a5.006 5.006 0 0 1 5 5 1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 81.5H35a5.006 5.006 0 0 1-5-5 1 1 0 0 1 2 0 3 3 0 0 0 3 3h26a3 3 0 0 0 3-3 1 1 0 0 1 2 0 5.006 5.006 0 0 1-5 5z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileGooglePixelXLPixel2XL_96.svg
function S_IlluMobileGooglePixelXLPixel2XL_96_extends() { S_IlluMobileGooglePixelXLPixel2XL_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileGooglePixelXLPixel2XL_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileGooglePixelXLPixel2XL_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileGooglePixelXLPixel2XL_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.5 13.75h-17a.75.75 0 0 1 0-1.5h17a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.5 83.75h-17a.75.75 0 0 1 0-1.5h17a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 87H32a6.006 6.006 0 0 1-6-6V15a6.006 6.006 0 0 1 6-6h32a6.006 6.006 0 0 1 6 6v66a6.006 6.006 0 0 1-6 6zM32 11a4 4 0 0 0-4 4v66a4 4 0 0 0 4 4h32a4 4 0 0 0 4-4V15a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M35 14a.99.99 0 0 1-1-1 1.355 1.355 0 0 1 .02-.2.606.606 0 0 1 .06-.18.757.757 0 0 1 .09-.18 1.576 1.576 0 0 1 .12-.15 1.047 1.047 0 0 1 1.42 0 1.576 1.576 0 0 1 .12.15.8.8 0 0 1 .09.18.6.6 0 0 1 .059.18A1.234 1.234 0 0 1 36 13a.99.99 0 0 1-1 1z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileGooglePixel2_96.svg
function S_IlluMobileGooglePixel2_96_extends() { S_IlluMobileGooglePixel2_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileGooglePixel2_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileGooglePixel2_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileGooglePixel2_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.5 16.75h-15a.75.75 0 0 1 0-1.5h15a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56.5 78.75h-15a.75.75 0 0 1 0-1.5h15a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 82H35a6.006 6.006 0 0 1-6-6V18a6.006 6.006 0 0 1 6-6h28a6.006 6.006 0 0 1 6 6v58a6.006 6.006 0 0 1-6 6zM35 14a4 4 0 0 0-4 4v58a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4V18a4 4 0 0 0-4-4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M37 17a1.05 1.05 0 0 1-.71-.29A1.028 1.028 0 0 1 36 16a.977.977 0 0 1 .08-.38.933.933 0 0 1 .21-.33A1 1 0 1 1 37 17z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluMobileIPad_96.svg
function S_IlluMobileIPad_96_extends() { S_IlluMobileIPad_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluMobileIPad_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluMobileIPad_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluMobileIPad_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65.5 75h-35a4.505 4.505 0 0 1-4.5-4.5v-46a4.505 4.505 0 0 1 4.5-4.5h35a4.505 4.505 0 0 1 4.5 4.5v46a4.505 4.505 0 0 1-4.5 4.5zm-35-53a2.5 2.5 0 0 0-2.5 2.5v46a2.5 2.5 0 0 0 2.5 2.5h35a2.5 2.5 0 0 0 2.5-2.5v-46a2.5 2.5 0 0 0-2.5-2.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 70.75a3.25 3.25 0 1 1 3.25-3.25A3.254 3.254 0 0 1 48 70.75zm0-5a1.75 1.75 0 1 0 1.75 1.75A1.752 1.752 0 0 0 48 65.75z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  className: styles["cls-1"] || "cls-1",
  cx: "48",
  cy: "24.75",
  r: "1.25"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 26.5a1.75 1.75 0 1 1 1.75-1.75A1.752 1.752 0 0 1 48 26.5zm0-2.5a.75.75 0 1 0 .75.75A.751.751 0 0 0 48 24z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintCompactDisc_96.svg
function S_IlluPrintCompactDisc_96_extends() { S_IlluPrintCompactDisc_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintCompactDisc_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintCompactDisc_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintCompactDisc_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 74a26 26 0 1 1 26-26 26.029 26.029 0 0 1-26 26zm0-50a24 24 0 1 0 24 24 24.028 24.028 0 0 0-24-24z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M48 58a10 10 0 1 1 10-10 10.011 10.011 0 0 1-10 10zm0-18a8 8 0 1 0 8 8 8.009 8.009 0 0 0-8-8z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrint19008x8640_96.svg
function S_IlluPrint19008x8640_96_extends() { S_IlluPrint19008x8640_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrint19008x8640_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrint19008x8640_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrint19008x8640_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M93 39H82a3 3 0 0 1-3-3V25a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 93 39zM81 27.414V36a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M91 68H5a3 3 0 0 1-3-3V27a3 3 0 0 1 3-3h71a1 1 0 0 1 0 2H5a1 1 0 0 0-1 1v38a1 1 0 0 0 1 1h86a1 1 0 0 0 1-1V42.045a1 1 0 0 1 2 0V65a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintLetter_96.svg
function S_IlluPrintLetter_96_extends() { S_IlluPrintLetter_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintLetter_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintLetter_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintLetter_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 35H58a3 3 0 0 1-3-3V21a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 35zM57 23.415V32a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 76H30a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h22a1 1 0 1 1 0 2H30a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h37a1 1 0 0 0 1-1V37.94a1 1 0 0 1 2 0V73a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintLegal_96.svg
function S_IlluPrintLegal_96_extends() { S_IlluPrintLegal_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintLegal_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintLegal_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintLegal_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 25H57a3 3 0 0 1-3-3V11a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 68 25zM56 13.414V22a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 86H26a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h25a1 1 0 0 1 0 2H26a1 1 0 0 0-1 1v70a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V27.94a1 1 0 1 1 2 0V83a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintBusinesscard_96.svg
function S_IlluPrintBusinesscard_96_extends() { S_IlluPrintBusinesscard_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintBusinesscard_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintBusinesscard_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintBusinesscard_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 62H28a3 3 0 0 1-3-3V38a3 3 0 0 1 3-3h29a1 1 0 0 1 0 2H28a1 1 0 0 0-1 1v21a1 1 0 0 0 1 1h40a1 1 0 0 0 1-1V49a1 1 0 0 1 2 0v10a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M70 46h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 70 46zm-8-7.586V43a1 1 0 0 0 1 1h4.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesign120x120CDJacketprint_96.svg
function S_IlluPrintIndesign120x120CDJacketprint_96_extends() { S_IlluPrintIndesign120x120CDJacketprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesign120x120CDJacketprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesign120x120CDJacketprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesign120x120CDJacketprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M59 32a15.928 15.928 0 0 0-3.524.4A2.964 2.964 0 0 0 54 32H28a3 3 0 0 0-3 3v26a3 3 0 0 0 3 3h26a2.964 2.964 0 0 0 1.476-.4A16 16 0 1 0 59 32zm-2.656 1.151zM55 61a1 1 0 0 1-1 1H28a1 1 0 0 1-1-1V35a1 1 0 0 1 1-1h26a1 1 0 0 1 1 1zm4 1a14.087 14.087 0 0 1-2.128-.179A2.978 2.978 0 0 0 57 61v-6.924a6.4 6.4 0 1 0 0-12.152V35a2.978 2.978 0 0 0-.128-.821A13.992 13.992 0 1 1 59 62zm-2-10.1v-7.8a4.343 4.343 0 0 1 2-.5 4.4 4.4 0 0 1 0 8.8 4.343 4.343 0 0 1-2-.5z",
  fill: "#b3b3b3",
  "data-name": "ICONS 96"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesign209x297GatefoldPrint_96.svg
function S_IlluPrintIndesign209x297GatefoldPrint_96_extends() { S_IlluPrintIndesign209x297GatefoldPrint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesign209x297GatefoldPrint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesign209x297GatefoldPrint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesign209x297GatefoldPrint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 79H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 32H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 32zM57 20.414V29a1 1 0 0 0 1 1h8.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesign232x297print_96.svg
function S_IlluPrintIndesign232x297print_96_extends() { S_IlluPrintIndesign232x297print_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesign232x297print_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesign232x297print_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesign232x297print_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 79H27a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h27a1 1 0 0 1 0 2H27a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71 32H60a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 71 32zM59 20.414V29a1 1 0 0 0 1 1h8.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA0_96.svg
function S_IlluPrintIndesignA0_96_extends() { S_IlluPrintIndesignA0_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA0_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA0_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA0_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80 24H66a3 3 0 0 1-3-3V7a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 80 24zM65 9.414V21a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 90H24a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3h36a1 1 0 0 1 0 2H24a1 1 0 0 0-1 1v78a1 1 0 0 0 1 1h54a1 1 0 0 0 1-1V27a1 1 0 0 1 2 0v60a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA1_96.svg
function S_IlluPrintIndesignA1_96_extends() { S_IlluPrintIndesignA1_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA1_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA1_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA1_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74 28H60a3 3 0 0 1-3-3V11a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 74 28zM59 13.414V25a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72 86H24a3 3 0 0 1-3-3V13a3 3 0 0 1 3-3h30a1 1 0 0 1 0 2H24a1 1 0 0 0-1 1v70a1 1 0 0 0 1 1h48a1 1 0 0 0 1-1V31a1 1 0 0 1 2 0v52a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA2_96.svg
function S_IlluPrintIndesignA2_96_extends() { S_IlluPrintIndesignA2_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA2_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA2_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA2_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71 29H60a3 3 0 0 1-3-3V15a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 71 29zM59 17.414V26a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 82H27a3 3 0 0 1-3-3V17a3 3 0 0 1 3-3h27a1 1 0 0 1 0 2H27a1 1 0 0 0-1 1v62a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V32a1 1 0 0 1 2 0v47a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA3_96.svg
function S_IlluPrintIndesignA3_96_extends() { S_IlluPrintIndesignA3_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA3_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA3_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA3_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 32H58a3 3 0 0 1-3-3V19a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 68 32zM57 21.414V29a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 77H30a3 3 0 0 1-3-3V21a3 3 0 0 1 3-3h22a1 1 0 0 1 0 2H30a1 1 0 0 0-1 1v53a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v39a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA4_96.svg
function S_IlluPrintIndesignA4_96_extends() { S_IlluPrintIndesignA4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 37H55a3 3 0 0 1-3-3V24a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 65 37zM54 26.414V34a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 73H33a3 3 0 0 1-3-3V26a3 3 0 0 1 3-3h16a1 1 0 0 1 0 2H33a1 1 0 0 0-1 1v44a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V40a1 1 0 0 1 2 0v30a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA5_96.svg
function S_IlluPrintIndesignA5_96_extends() { S_IlluPrintIndesignA5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62 38h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 62 38zm-8-7.586V35a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60 69H36a3 3 0 0 1-3-3V30a3 3 0 0 1 3-3h13a1 1 0 0 1 0 2H36a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h24a1 1 0 0 0 1-1V41a1 1 0 0 1 2 0v25a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignA6_96.svg
function S_IlluPrintIndesignA6_96_extends() { S_IlluPrintIndesignA6_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignA6_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignA6_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignA6_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.533 65H38.467A2.5 2.5 0 0 1 36 62.476V33.524A2.5 2.5 0 0 1 38.467 31H46a1 1 0 0 1 0 2h-7.533a.5.5 0 0 0-.467.524v28.952a.5.5 0 0 0 .467.524h19.066a.5.5 0 0 0 .467-.524V45a1 1 0 0 1 2 0v17.476A2.5 2.5 0 0 1 57.533 65z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 42h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 59 42zm-8-7.586V39a1 1 0 0 0 1 1h4.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignABprint_96.svg
function S_IlluPrintIndesignABprint_96_extends() { S_IlluPrintIndesignABprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignABprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignABprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignABprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 35H59a3 3 0 0 1-3-3V22a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 69 35zM58 24.414V32a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 75H29a3 3 0 0 1-3-3V24a3 3 0 0 1 3-3h24a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v48a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V38a1 1 0 0 1 2 0v34a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB0_96.svg
function S_IlluPrintIndesignB0_96_extends() { S_IlluPrintIndesignB0_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB0_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB0_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB0_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M78 22H64a3 3 0 0 1-3-3V5a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 78 22zM63 7.414V19a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M76 92H20a3 3 0 0 1-3-2.994V6.994A3 3 0 0 1 20 4h38a1 1 0 0 1 0 2H20a1 1 0 0 0-1 .994v82.012A1 1 0 0 0 20 90h56a1 1 0 0 0 1-.994V25a1 1 0 0 1 2 0v64.006A3 3 0 0 1 76 92z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB1_96.svg
function S_IlluPrintIndesignB1_96_extends() { S_IlluPrintIndesignB1_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB1_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB1_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB1_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75 26H61a3 3 0 0 1-3-3V9a1 1 0 0 1 1.707-.707l16 16A1 1 0 0 1 75 26zM60 11.414V23a1 1 0 0 0 1 1h11.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M72.988 88H23.012A3.02 3.02 0 0 1 20 84.978V11.022A3.021 3.021 0 0 1 23.013 8H55a1 1 0 0 1 0 2H23.013A1.018 1.018 0 0 0 22 11.022v73.956A1.018 1.018 0 0 0 23.012 86h49.976A1.018 1.018 0 0 0 74 84.978V29a1 1 0 0 1 2 0v55.978A3.02 3.02 0 0 1 72.988 88z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB2_96.svg
function S_IlluPrintIndesignB2_96_extends() { S_IlluPrintIndesignB2_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB2_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB2_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB2_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M71 28H60a3 3 0 0 1-3-3V14a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 71 28zM59 16.414V25a1 1 0 0 0 1 1h8.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.014 83H25.986A3 3 0 0 1 23 80V16a3 3 0 0 1 2.986-3H54a1 1 0 0 1 0 2H25.986A.993.993 0 0 0 25 16v64a.993.993 0 0 0 .986 1h43.028A.993.993 0 0 0 70 80V31a1 1 0 0 1 2 0v49a3 3 0 0 1-2.986 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB3_96.svg
function S_IlluPrintIndesignB3_96_extends() { S_IlluPrintIndesignB3_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB3_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB3_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB3_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M68 31H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 68 31zM57 20.414V28a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 78H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v55a1 1 0 0 0 1 1h37a1 1 0 0 0 1-1V34a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB4_96.svg
function S_IlluPrintIndesignB4_96_extends() { S_IlluPrintIndesignB4_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB4_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB4_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB4_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 35H56a3 3 0 0 1-3-3V22a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 66 35zM55 24.414V32a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63.98 73H33.019A3.016 3.016 0 0 1 30 69.993V24.007A3.016 3.016 0 0 1 33.02 21H50a1 1 0 0 1 0 2H33.02A1.015 1.015 0 0 0 32 24.007v45.986A1.014 1.014 0 0 0 33.019 71H63.98A1.015 1.015 0 0 0 65 69.993V38a1 1 0 0 1 2 0v31.993A3.016 3.016 0 0 1 63.98 73z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB5_96.svg
function S_IlluPrintIndesignB5_96_extends() { S_IlluPrintIndesignB5_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB5_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB5_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB5_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62 38h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 62 38zm-8-7.586V35a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M60.023 69H35.977A2.974 2.974 0 0 1 33 66.036V29.964A2.974 2.974 0 0 1 35.977 27H49a1 1 0 0 1 0 2H35.977a.972.972 0 0 0-.977.964v36.072a.972.972 0 0 0 .977.964h24.046a.972.972 0 0 0 .977-.964V41a1 1 0 0 1 2 0v25.036A2.974 2.974 0 0 1 60.023 69z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignB6_96.svg
function S_IlluPrintIndesignB6_96_extends() { S_IlluPrintIndesignB6_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignB6_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignB6_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignB6_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 42h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 59 42zm-8-7.586V39a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57 65H39a3.015 3.015 0 0 1-3-3.024V34.024A3.015 3.015 0 0 1 39 31h7a1 1 0 0 1 0 2h-7a1.013 1.013 0 0 0-1 1.024v27.952A1.013 1.013 0 0 0 39 63h18a1.013 1.013 0 0 0 1-1.024V45a1 1 0 0 1 2 0v16.976A3.015 3.015 0 0 1 57 65z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignBusinessCard3goprint_96.svg
function S_IlluPrintIndesignBusinessCard3goprint_96_extends() { S_IlluPrintIndesignBusinessCard3goprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignBusinessCard3goprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignBusinessCard3goprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignBusinessCard3goprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M65 48h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 65 48zm-8-7.586V45a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 59H33a3 3 0 0 1-3-3V40a3 3 0 0 1 3-3h19a1 1 0 0 1 0 2H33a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1v-5a1 1 0 0 1 2 0v5a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignBusinessCard4goprint_96.svg
function S_IlluPrintIndesignBusinessCard4goprint_96_extends() { S_IlluPrintIndesignBusinessCard4goprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignBusinessCard4goprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignBusinessCard4goprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignBusinessCard4goprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M66 47h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 66 47zm-8-7.586V44a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M64 60H32a3 3 0 0 1-3-3V39a3 3 0 0 1 3-3h21a1 1 0 0 1 0 2H32a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h32a1 1 0 0 0 1-1v-7a1 1 0 0 1 2 0v7a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignDefault_96.svg
function S_IlluPrintIndesignDefault_96_extends() { S_IlluPrintIndesignDefault_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignDefault_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignDefault_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignDefault_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M67 79H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69 32H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 32zM57 20.414V29a1 1 0 0 0 1 1h8.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignHagakiprint_96.svg
function S_IlluPrintIndesignHagakiprint_96_extends() { S_IlluPrintIndesignHagakiprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignHagakiprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignHagakiprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignHagakiprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M58 43h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 58 43zm-8-7.586V40a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M56 64H40a3 3 0 0 1-3-3V35a3 3 0 0 1 3-3h5a1 1 0 0 1 0 2h-5a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V46a1 1 0 0 1 2 0v15a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignShinshoprint_96.svg
function S_IlluPrintIndesignShinshoprint_96_extends() { S_IlluPrintIndesignShinshoprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignShinshoprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignShinshoprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignShinshoprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M63 34H53a3 3 0 0 1-3-3V21a1 1 0 0 1 1.707-.707l12 12A1 1 0 0 1 63 34zM52 23.414V31a1 1 0 0 0 1 1h7.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 75H35a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h12a1 1 0 0 1 0 2H35a1 1 0 0 0-1 1v49a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V37a1 1 0 0 1 2 0v35a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/cmdn-assets/preset-icons/S_IlluPrintIndesignShirokubanprint_96.svg
function S_IlluPrintIndesignShirokubanprint_96_extends() { S_IlluPrintIndesignShirokubanprint_96_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return S_IlluPrintIndesignShirokubanprint_96_extends.apply(this, arguments); }


/* harmony default export */ var S_IlluPrintIndesignShirokubanprint_96 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_IlluPrintIndesignShirokubanprint_96_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "96",
  height: "96",
  viewBox: "0 0 96 96"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "ICONS_96",
  "data-name": "ICONS 96"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M61 41h-7a3 3 0 0 1-3-3v-7a1 1 0 0 1 1.707-.707l9 9A1 1 0 0 1 61 41zm-8-7.586V38a1 1 0 0 0 1 1h4.586z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M59 66H37a3 3 0 0 1-3-3V33a3 3 0 0 1 3-3h11a1 1 0 0 1 0 2H37a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V44a1 1 0 0 1 2 0v19a3 3 0 0 1-3 3z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/components/icon/Icons.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






























































































































































const icons = {
    IlluMobileKindleFireNook: S_IlluMobileKindleFireNook_96,
    IlluMobileSamsungGalaxyS8: S_IlluMobileSamsungGalaxyS8_96,
    IlluMobileGooglePixelXLPixel2XL: S_IlluMobileGooglePixelXLPixel2XL_96,
    IlluMobileGooglePixel2: S_IlluMobileGooglePixel2_96,
    IlluMobileIPad: S_IlluMobileIPad_96,
    IlluWeb640x480: S_IlluWeb640x480_96,
    IlluWebLetter: S_IlluWebLetter_96,
    IlluWeb800x600: S_IlluWeb800x600_96,
    IlluPrintLetter: S_IlluPrintLetter_96,
    IlluPrintLegal: S_IlluPrintLegal_96,
    IlluArtAndIllu1080p: S_IlluArtAndIllu1080p_96,
    IlluArtAndIllu1000: S_IlluArtAndIllu1000_96,
    IlluArtAndIllu2000: S_IlluArtAndIllu2000_96,
    IlluArtAndIlluPoster: S_IlluArtAndIlluPoster_96,
    IlluArtAndIlluPostcard: S_IlluArtAndIlluPostcard_96,
    IlluArtAndIllu720p: S_IlluArtAndIllu720p_96,
    IlluClipboard: S_IlluClipboard_96,
    IlluPhotoDefaultPs: S_IlluPhotoDefaultPs_96,
    IlluPrintA4: S_IlluPrintA4_96,
    IlluPrintA6: S_IlluPrintA6_96,
    IlluPrintA5: S_IlluPrintA5_96,
    IlluPrintA3: S_IlluPrintA3_96,
    IlluPrintB5: S_IlluPrintB5_96,
    IlluPrintB4: S_IlluPrintB4_96,
    IlluPrintB3: S_IlluPrintB3_96,
    IlluPrintC4: S_IlluPrintC4_96,
    IlluPrintC5: S_IlluPrintC5_96,
    IlluPrintC6: S_IlluPrintC6_96,
    IlluPrintDL: S_IlluPrintDL_96,
    IlluPrintJapanesePostCard: S_IlluPrintJapanesePostCard_96,
    IlluMobileIAndroid1080p: S_IlluMobileIAndroid1080p_96,
    IlluMobileiOS7iPadAppicon: S_IlluMobileiOS7iPadAppicon_96,
    IlluMobileiOS7iPhoneAppicon: S_IlluMobileiOS7iPhoneAppicon_96,
    IlluMobileiOS7Spotlight: S_IlluMobileiOS7Spotlight_96,
    IlluMobileiOS7Settings: S_IlluMobileiOS7Settings_96,
    IlluMobileMacIcon1024: S_IlluMobileMacIcon1024_96,
    IlluMobileMacIcon512: S_IlluMobileMacIcon512_96,
    IlluMobileMacIcon256: S_IlluMobileMacIcon256_96,
    IlluMobileMacIcon128: S_IlluMobileMacIcon128_96,
    IlluMobileMacIcon48: S_IlluMobileMacIcon48_96,
    IlluMobileMacIcon32: S_IlluMobileMacIcon32_96,
    IlluMobileMacIcon16: S_IlluMobileMacIcon16_96,
    IlluMobileILegacyIPadAppIcon: S_IlluMobileILegacyIPadAppIcon_96,
    IlluMobileLegacyiPhoneAppIcon: S_IlluMobileLegacyiPhoneAppIcon_96,
    IlluMobileLegacyIPadSpotlight: S_IlluMobileLegacyIPadSpotlight_96,
    IlluMobileIPhoneX: S_IlluMobileIPhoneX_96,
    IlluMobileIPhone678Plus: S_IlluMobileIPhone678Plus_96,
    IlluMobileIPhone678: S_IlluMobileIPhone678_96,
    IlluMobileIPadPro12: S_IlluMobileIPadPro12_96,
    IlluMobileIPadPro10: S_IlluMobileIPadPro10_96,
    IlluMobileIPadRetina: S_IlluMobileIPadRetina_96,
    IlluMobileMicrosoftSurfacePro4: S_IlluMobileMicrosoftSurfacePro4_96,
    IlluMobileIMicrosoftSurfacePro3: S_IlluMobileIMicrosoftSurfacePro3_96,
    IlluMobileIPhone5: S_IlluMobileIPhone5_96,
    IlluMobileIPadMini: S_IlluMobileIPadMini_96,
    IlluMobileIAppleWatch42: S_IlluMobileIAppleWatch42_96,
    IlluMobileIAppleWatch38: S_IlluMobileIAppleWatch38_96,
    IlluMobileMobileDesign: S_IlluMobileMobileDesign_96,
    IlluPhotoLPortrait: S_IlluPhotoLPortrait_96,
    IlluPhoto2LPortrait: S_IlluPhoto2LPortrait_96,
    IlluPhotoMutsugiriPortrait: S_IlluPhotoMutsugiriPortrait_96,
    IlluPhotoYotsugiriPortrait: S_IlluPhotoYotsugiriPortrait_96,
    IlluPhotoLLandscape: S_IlluPhotoLLandscape_96,
    IlluPhoto2LLandscape: S_IlluPhoto2LLandscape_96,
    IlluPhotoMutsugiriLandscape: S_IlluPhotoMutsugiriLandscape_96,
    IlluPhotoYotsugiriLandscape: S_IlluPhotoYotsugiriLandscape_96,
    IlluPhotoLandscape3x2: S_IlluPhotoLandscape3x2_96,
    IlluPhotoLandscape6x4: S_IlluPhotoLandscape6x4_96,
    IlluPhotoCCKLandscape8x6: S_IlluPhotoCCKLandscape8x6_96,
    IlluPhotoLandscape7x5: S_IlluPhotoLandscape7x5_96,
    IlluPhotoLandscape10x8: S_IlluPhotoLandscape10x8_96,
    IlluPhotoPortrait3x2: S_IlluPhotoPortrait3x2_96,
    IlluPhotoTraditionalChinesePortrait3x4: S_IlluPhotoTraditionalChinesePortrait3x4_96,
    IlluPhotoPortrait6x4: S_IlluPhotoPortrait6x4_96,
    IlluPhotoPortrait7x5: S_IlluPhotoPortrait7x5_96,
    IlluPhotoPortrait10x8: S_IlluPhotoPortrait10x8_96,
    IlluCustomArtboardLandscapeLarge: S_IlluCustomArtboardLandscapeLarge_96,
    IlluPrintLetterHalf: S_IlluPrintLetterHalf_96,
    IlluPrintLegalHalf: S_IlluPrintLegalHalf_96,
    IlluPrintTabloid: S_IlluPrintTabloid_96,
    VideoHDTV1920x1080: S_VideoHDTV1920x1080_96,
    VideoHDTV1280x720: S_VideoHDTV1280x720_96,
    VideoHDV1080p: S_VideoHDV1080p_96,
    VideoDVCPROHD720p: S_VideoDVCPROHD720p_96,
    VideoDVCPROHD1080p: S_VideoDVCPROHD1080p_96,
    VideoDCI2K1080p: S_VideoDCI2K1080p_96,
    IlluVideoHDTV4K2160p: S_IlluVideoHDTV4K2160p_96,
    VideoDCI4K2160p: S_VideoDCI4K2160p_96,
    VideoFUHDTV8K4320p: S_VideoFUHDTV8K4320p_96,
    VideoDCI8K4320p: S_VideoDCI8K4320p_96,
    VideoNTSCDV: S_VideoNTSCDV_96,
    VideoNTSCDVWidescreen: S_VideoNTSCDVWidescreen_96,
    VideoNTSCD1: S_VideoNTSCD1_96,
    VideoNTSCD1Widescreen: S_VideoNTSCD1Widescreen_96,
    VideoNTSCD1SquarePixel: S_VideoNTSCD1SquarePixel_96,
    VideoNTSCWidescreen872x480: S_VideoNTSCWidescreen872x480_96,
    VideoPALD1DV: S_VideoPALD1DV_96,
    VideoPALD1DVWidescreen: S_VideoPALD1DVWidescreen_96,
    VideoPALD1DVSquarePixel: S_VideoPALD1DVSquarePixel_96,
    VideoPALD1DVWidescreenSquarePixel: S_VideoPALD1DVWidescreenSquarePixel_96,
    VideoCineonHalf: S_VideoCineonHalf_96,
    VideoCineonFull: S_VideoCineonFull_96,
    VideoFilm2K2048x1556: S_VideoFilm2K2048x1556_96,
    VideoFilm4K4096x3112: S_VideoFilm4K4096x3112_96,
    VideoFilm8K8192x6224: S_VideoFilm8K8192x6224_96,
    IlluWebMostCommon: S_IlluWebMostCommon_96,
    IlluWebLarge: S_IlluWebLarge_96,
    IlluWebMedium: S_IlluWebMedium_96,
    IlluWebMinimum: S_IlluWebMinimum_96,
    IlluWebSmall: S_IlluWebSmall_96,
    IlluWebMacBookPro13: S_IlluWebMacBookPro13_96,
    IlluWebMacBookPro15: S_IlluWebMacBookPro15_96,
    IlluWebiMac27: S_IlluWebiMac27_96,
    IlluWebDesktopHDDesign: S_IlluWebDesktopHDDesign_96,
    IlluCustomArtboardSquareSmall: S_IlluCustomArtboardSquareSmall_96,
    IlluCustomArtboardSquareMedium: S_IlluCustomArtboardSquareMedium_96,
    IlluCustomArtboardSquareLarge: S_IlluCustomArtboardSquareLarge_96,
    IlluCustomArtboardLandscapeSmall: S_IlluCustomArtboardLandscapeSmall_96,
    IlluCustomArtboardLandscapeMedium: S_IlluCustomArtboardLandscapeMedium_96,
    IlluCustomArtboardPortraitSmall: S_IlluCustomArtboardPortraitSmall_96,
    IlluCustomArtboardPortraitMedium: S_IlluCustomArtboardPortraitMedium_96,
    IlluCustomArtboardPortraitLarge: S_IlluCustomArtboardPortraitLarge_96,
    IlluMobileA4: S_IlluMobileA4_96,
    IlluMobileAndroid720x1280: S_IlluMobileAndroidPortrait720x1280_96,
    IlluMobileLetter: S_IlluMobileLetter_96,
    IlluWebA4: S_IlluWebA4_96,
    IlluWeb1240x620: S_IlluWeb1240x620_96,
    IlluWeb984x588: S_IlluWeb984x588_96,
    IlluWeb960x560: S_IlluWeb960x560_136,
    IlluWeb760x420: S_IlluWeb760x420_96,
    IlluWeb600x300: S_IlluWeb600x300_96,
    IlluPrintCompactDisc: S_IlluPrintCompactDisc_96,
    IlluPrint19008x8640: S_IlluPrint19008x8640_96,
    IlluPrintBusinesscard: S_IlluPrintBusinesscard_96,
    IlluPrintIndesign120x120CDJacketprint: S_IlluPrintIndesign120x120CDJacketprint_96,
    IlluPrintIndesign209x297GatefoldPrin: S_IlluPrintIndesign209x297GatefoldPrint_96,
    IlluPrintIndesign232x297print: S_IlluPrintIndesign232x297print_96,
    IlluPrintIndesignA0: S_IlluPrintIndesignA0_96,
    IlluPrintIndesignA1: S_IlluPrintIndesignA1_96,
    IlluPrintIndesignA2: S_IlluPrintIndesignA2_96,
    IlluPrintIndesignA3: S_IlluPrintIndesignA3_96,
    IlluPrintIndesignA4: S_IlluPrintIndesignA4_96,
    IlluPrintIndesignA5: S_IlluPrintIndesignA5_96,
    IlluPrintIndesignA6: S_IlluPrintIndesignA6_96,
    IlluPrintIndesignABprint: S_IlluPrintIndesignABprint_96,
    IlluPrintIndesignB0: S_IlluPrintIndesignB0_96,
    IlluPrintIndesignB1: S_IlluPrintIndesignB1_96,
    IlluPrintIndesignB2: S_IlluPrintIndesignB2_96,
    IlluPrintIndesignB3: S_IlluPrintIndesignB3_96,
    IlluPrintIndesignB4: S_IlluPrintIndesignB4_96,
    IlluPrintIndesignB5: S_IlluPrintIndesignB5_96,
    IlluPrintIndesignB6: S_IlluPrintIndesignB6_96,
    IlluPrintIndesignBusinessCard3goprint: S_IlluPrintIndesignBusinessCard3goprint_96,
    IlluPrintIndesignBusinessCard4goprint: S_IlluPrintIndesignBusinessCard4goprint_96,
    IlluPrintIndesignDefault: S_IlluPrintIndesignDefault_96,
    IlluPrintIndesignHagakiprint: S_IlluPrintIndesignHagakiprint_96,
    IlluPrintIndesignShinshoprint: S_IlluPrintIndesignShinshoprint_96,
    IlluPrintIndesignShirokubanprint: S_IlluPrintIndesignShirokubanprint_96,
};
/* harmony default export */ var Icons = __webpack_exports__["default"] = (icons);


/***/ }),

/***/ "fbrv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var inject_1 = __webpack_require__("Yk9n");

var ERROR_MSGS = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var METADATA_KEY = __webpack_require__("xfSm");

var serialization_1 = __webpack_require__("ujMp");

exports.getFunctionName = serialization_1.getFunctionName;

var target_1 = __webpack_require__("dX1H");

function getDependencies(metadataReader, func) {
  var constructorName = serialization_1.getFunctionName(func);
  var targets = getTargets(metadataReader, constructorName, func, false);
  return targets;
}

exports.getDependencies = getDependencies;

function getTargets(metadataReader, constructorName, func, isBaseClass) {
  var metadata = metadataReader.getConstructorMetadata(func);
  var serviceIdentifiers = metadata.compilerGeneratedMetadata;

  if (serviceIdentifiers === undefined) {
    var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + " " + constructorName + ".";
    throw new Error(msg);
  }

  var constructorArgsMetadata = metadata.userGeneratedMetadata;
  var keys = Object.keys(constructorArgsMetadata);
  var hasUserDeclaredUnknownInjections = func.length === 0 && keys.length > 0;
  var iterations = hasUserDeclaredUnknownInjections ? keys.length : func.length;
  var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
  var propertyTargets = getClassPropsAsTargets(metadataReader, func);
  var targets = constructorTargets.concat(propertyTargets);
  return targets;
}

function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
  var targetMetadata = constructorArgsMetadata[index.toString()] || [];
  var metadata = formatTargetMetadata(targetMetadata);
  var isManaged = metadata.unmanaged !== true;
  var serviceIdentifier = serviceIdentifiers[index];
  var injectIdentifier = metadata.inject || metadata.multiInject;
  serviceIdentifier = injectIdentifier ? injectIdentifier : serviceIdentifier;

  if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {
    serviceIdentifier = serviceIdentifier.unwrap();
  }

  if (isManaged) {
    var isObject = serviceIdentifier === Object;
    var isFunction = serviceIdentifier === Function;
    var isUndefined = serviceIdentifier === undefined;
    var isUnknownType = isObject || isFunction || isUndefined;

    if (!isBaseClass && isUnknownType) {
      var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + " argument " + index + " in class " + constructorName + ".";
      throw new Error(msg);
    }

    var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
    target.metadata = targetMetadata;
    return target;
  }

  return null;
}

function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
  var targets = [];

  for (var i = 0; i < iterations; i++) {
    var index = i;
    var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);

    if (target !== null) {
      targets.push(target);
    }
  }

  return targets;
}

function getClassPropsAsTargets(metadataReader, constructorFunc) {
  var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
  var targets = [];
  var keys = Object.keys(classPropsMetadata);

  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
    var key = keys_1[_i];
    var targetMetadata = classPropsMetadata[key];
    var metadata = formatTargetMetadata(classPropsMetadata[key]);
    var targetName = metadata.targetName || key;
    var serviceIdentifier = metadata.inject || metadata.multiInject;
    var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);
    target.metadata = targetMetadata;
    targets.push(target);
  }

  var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;

  if (baseConstructor !== Object) {
    var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);
    targets = targets.concat(baseTargets);
  }

  return targets;
}

function getBaseClassDependencyCount(metadataReader, func) {
  var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;

  if (baseConstructor !== Object) {
    var baseConstructorName = serialization_1.getFunctionName(baseConstructor);
    var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
    var metadata = targets.map(function (t) {
      return t.metadata.filter(function (m) {
        return m.key === METADATA_KEY.UNMANAGED_TAG;
      });
    });
    var unmanagedCount = [].concat.apply([], metadata).length;
    var dependencyCount = targets.length - unmanagedCount;

    if (dependencyCount > 0) {
      return dependencyCount;
    } else {
      return getBaseClassDependencyCount(metadataReader, baseConstructor);
    }
  } else {
    return 0;
  }
}

exports.getBaseClassDependencyCount = getBaseClassDependencyCount;

function formatTargetMetadata(targetMetadata) {
  var targetMetadataMap = {};
  targetMetadata.forEach(function (m) {
    targetMetadataMap[m.key.toString()] = m.value;
  });
  return {
    inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
    multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
    targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
    unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
  };
}

/***/ }),

/***/ "giCC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M14.848 12.698l-1.994 1.919-7.105-6.986 1.995-1.92 7.104 6.987zm27.553 27.671l-1.994 1.92-7.066-7.113 1.994-1.919 7.066 7.112zM14.743 2.4h3.086v6.171h-3.086zM2.4 14.743h6.171v3.086H2.4zm37.029 15.428H45.6v3.086h-6.171zm-9.258 9.258h3.086V45.6h-3.086zM42.1 5.9a10.913 10.913 0 0 0-15.434 0c-.408.408-4.428 4.4-6.546 6.5l3.312 3.312a8392.05 8392.05 0 0 0 6.541-6.5 6.236 6.236 0 1 1 8.819 8.819l-6.521 6.521 3.307 3.307 6.522-6.521a10.913 10.913 0 0 0 0-15.438zM24.529 32.243c-2.152 2.173-6.3 6.349-6.5 6.545a6.236 6.236 0 0 1-8.819-8.819l6.521-6.522-3.305-3.307-6.521 6.522A10.913 10.913 0 1 0 21.339 42.1c.418-.419 4.4-4.439 6.492-6.551z"
}));

/***/ }),

/***/ "gzZq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var binding_in_when_on_syntax_1 = __webpack_require__("D9lx");

var binding_when_on_syntax_1 = __webpack_require__("LKzl");

var BindingToSyntax = function () {
  function BindingToSyntax(binding) {
    this._binding = binding;
  }

  BindingToSyntax.prototype.to = function (constructor) {
    this._binding.type = literal_types_1.BindingTypeEnum.Instance;
    this._binding.implementationType = constructor;
    return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toSelf = function () {
    if (typeof this._binding.serviceIdentifier !== "function") {
      throw new Error("" + ERROR_MSGS.INVALID_TO_SELF_VALUE);
    }

    var self = this._binding.serviceIdentifier;
    return this.to(self);
  };

  BindingToSyntax.prototype.toConstantValue = function (value) {
    this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;
    this._binding.cache = value;
    this._binding.dynamicValue = null;
    this._binding.implementationType = null;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toDynamicValue = function (func) {
    this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;
    this._binding.cache = null;
    this._binding.dynamicValue = func;
    this._binding.implementationType = null;
    return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toConstructor = function (constructor) {
    this._binding.type = literal_types_1.BindingTypeEnum.Constructor;
    this._binding.implementationType = constructor;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toFactory = function (factory) {
    this._binding.type = literal_types_1.BindingTypeEnum.Factory;
    this._binding.factory = factory;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toFunction = function (func) {
    if (typeof func !== "function") {
      throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
    }

    var bindingWhenOnSyntax = this.toConstantValue(func);
    this._binding.type = literal_types_1.BindingTypeEnum.Function;
    return bindingWhenOnSyntax;
  };

  BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
    this._binding.type = literal_types_1.BindingTypeEnum.Factory;

    this._binding.factory = function (context) {
      var autofactory = function () {
        return context.container.get(serviceIdentifier);
      };

      return autofactory;
    };

    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toProvider = function (provider) {
    this._binding.type = literal_types_1.BindingTypeEnum.Provider;
    this._binding.provider = provider;
    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
  };

  BindingToSyntax.prototype.toService = function (service) {
    this.toDynamicValue(function (context) {
      return context.container.get(service);
    });
  };

  return BindingToSyntax;
}();

exports.BindingToSyntax = BindingToSyntax;

/***/ }),

/***/ "h7MG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_count_1 = __webpack_require__("doU7");

var ERROR_MSGS = __webpack_require__("MON2");

var literal_types_1 = __webpack_require__("FV85");

var METADATA_KEY = __webpack_require__("xfSm");

var exceptions_1 = __webpack_require__("qK8v");

var serialization_1 = __webpack_require__("ujMp");

var context_1 = __webpack_require__("oy+k");

var metadata_1 = __webpack_require__("GXnB");

var plan_1 = __webpack_require__("yMAV");

var reflection_utils_1 = __webpack_require__("fbrv");

var request_1 = __webpack_require__("xiII");

var target_1 = __webpack_require__("dX1H");

function getBindingDictionary(cntnr) {
  return cntnr._bindingDictionary;
}

exports.getBindingDictionary = getBindingDictionary;

function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
  var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
  var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);
  var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);

  if (key !== undefined) {
    var tagMetadata = new metadata_1.Metadata(key, value);
    target.metadata.push(tagMetadata);
  }

  return target;
}

function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
  var bindings = getBindings(context.container, target.serviceIdentifier);
  var activeBindings = [];

  if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable && context.container.options.autoBindInjectable && typeof target.serviceIdentifier === "function" && metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
    context.container.bind(target.serviceIdentifier).toSelf();
    bindings = getBindings(context.container, target.serviceIdentifier);
  }

  if (!avoidConstraints) {
    activeBindings = bindings.filter(function (binding) {
      var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);
      return binding.constraint(request);
    });
  } else {
    activeBindings = bindings;
  }

  _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);

  return activeBindings;
}

function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
  switch (bindings.length) {
    case binding_count_1.BindingCount.NoBindingsAvailable:
      if (target.isOptional()) {
        return bindings;
      } else {
        var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
        var msg = ERROR_MSGS.NOT_REGISTERED;
        msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);
        msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
        throw new Error(msg);
      }

    case binding_count_1.BindingCount.OnlyOneBindingAvailable:
      if (!target.isArray()) {
        return bindings;
      }

    case binding_count_1.BindingCount.MultipleBindingsAvailable:
    default:
      if (!target.isArray()) {
        var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
        var msg = ERROR_MSGS.AMBIGUOUS_MATCH + " " + serviceIdentifierString;
        msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
        throw new Error(msg);
      } else {
        return bindings;
      }

  }
}

function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {
  var activeBindings;
  var childRequest;

  if (parentRequest === null) {
    activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);
    childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);
    var thePlan = new plan_1.Plan(context, childRequest);
    context.addPlan(thePlan);
  } else {
    activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);
    childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);
  }

  activeBindings.forEach(function (binding) {
    var subChildRequest = null;

    if (target.isArray()) {
      subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
    } else {
      if (binding.cache) {
        return;
      }

      subChildRequest = childRequest;
    }

    if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
      var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);

      if (!context.container.options.skipBaseClassChecks) {
        var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType);

        if (dependencies.length < baseClassDependencyCount) {
          var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType));
          throw new Error(error);
        }
      }

      dependencies.forEach(function (dependency) {
        _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);
      });
    }
  });
}

function getBindings(container, serviceIdentifier) {
  var bindings = [];
  var bindingDictionary = getBindingDictionary(container);

  if (bindingDictionary.hasKey(serviceIdentifier)) {
    bindings = bindingDictionary.get(serviceIdentifier);
  } else if (container.parent !== null) {
    bindings = getBindings(container.parent, serviceIdentifier);
  }

  return bindings;
}

function plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {
  if (avoidConstraints === void 0) {
    avoidConstraints = false;
  }

  var context = new context_1.Context(container);

  var target = _createTarget(isMultiInject, targetType, serviceIdentifier, "", key, value);

  try {
    _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);

    return context;
  } catch (error) {
    if (exceptions_1.isStackOverflowExeption(error)) {
      if (context.plan) {
        serialization_1.circularDependencyToException(context.plan.rootRequest);
      }
    }

    throw error;
  }
}

exports.plan = plan;

function createMockRequest(container, serviceIdentifier, key, value) {
  var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, "", serviceIdentifier, new metadata_1.Metadata(key, value));
  var context = new context_1.Context(container);
  var request = new request_1.Request(serviceIdentifier, context, null, [], target);
  return request;
}

exports.createMockRequest = createMockRequest;

/***/ }),

/***/ "iN46":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.arraysEqual = arraysEqual;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function arraysEqual(a, b) {
  return a.length === b.length && a.every((x, i) => x === b[i]);
}

/***/ }),

/***/ "iNS0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ LicensingPossible; });

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/imsBridge.ts + 3 modules
var imsBridge = __webpack_require__("EgDT");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/intl/i18n.tsx
var i18n = __webpack_require__("BPvV");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/HostIds.ts
var HostIds = __webpack_require__("V9pm");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockWebAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const METHOD_POST = 'POST';
const METHOD_GET = 'GET';
class StockWebAPI {
    constructor() {
        /** @private */
        this.prodBaseUrl = 'https://stock.adobe.io/Rest';
        this.stageBaseUrl = 'https://stock-stage.adobe.io/Rest';
    }
    /**
     * Execute an API request.
     *
     * @private
     * @param api
     * @returns
     */
    async apiRequest(api) {
        return new Promise((resolve, reject) => {
            const { endpoint, authToken, isStaging, xProduct } = api;
            let { method } = api;
            // set baseUrl to staging endpoint if staging flag is set
            const baseUrl = isStaging ? this.stageBaseUrl : this.prodBaseUrl;
            // if no method was passed then default to GET unless a body was passed in
            if (!method) {
                method = METHOD_GET;
            }
            const url = `${baseUrl}${endpoint}`;
            const req = new XMLHttpRequest();
            req.open(method, url, true);
            req.setRequestHeader('X-Api-Key', 'CCXInAppWelcomeUXP');
            req.setRequestHeader('X-Product', xProduct || 'unknown');
            req.setRequestHeader('authorization', `Bearer ${authToken}`);
            req.responseType = 'json';
            req.onerror = function (error) {
                reject(error);
            };
            req.onload = function () {
                resolve(req.response);
            };
            req.send(null);
        });
    }
    /**
     * GET /Libraries/1/Content/License. Requests a license for an asset.
     *
     * @param options Object of params for licensing an asset.
     * @returns
     */
    async licenseAsset(options) {
        const { authToken, contentId, license, locale, isStaging, xProduct } = options;
        const api = {
            endpoint: `/Libraries/1/Content/License?content_id=${contentId}&locale=${locale}&license=${license}`,
            authToken,
            isStaging,
            xProduct,
        };
        return this.apiRequest(api);
    }
}
/* harmony default export */ var stock_StockWebAPI = (new StockWebAPI());

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/UXPAPI.ts
var UXPAPI = __webpack_require__("VFTl");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/VulcanAPI.ts
var VulcanAPI = __webpack_require__("2Sv4");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/Analytics.ts + 1 modules
var Analytics = __webpack_require__("t9Qr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockConstants.ts
var StockConstants = __webpack_require__("qAfu");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/stock/StockUtil.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/










const STOCK_NAMESPACE = 'adobestock';
const STOCK_DATA_KEY = 'trackingdata';
const STOCK_STATE_PURCHASED = 'purchased';
// const STOCK_STATE_NOT_PURCHASED = 'not_purchased';
const STOCK_URL_LICENSE = 'https://www.adobe.com/go/stocklicense_';
const STOCK_URL_LICENSE_STAGE = 'https://www.stage.adobe.com/go/stocklicense_';
// const STOCK_URL = 'https://stock.adobe.com';
const STOCK_URL_SEARCH = 'https://stock.adobe.com/Search';
// const STOCK_URL_STAGE = 'https://primary.stock.stage.adobe.com';
const STOCK_URL_SEARCH_STAGE = 'https://primary.stock.stage.adobe.com/Search';
/**
 * @type {enum} License state. NOT_POSSIBLE value when licensing is not possible. POSSIBLE value when licensing is possible
 */
var LicensingPossible;
(function (LicensingPossible) {
    LicensingPossible["NOT_POSSIBLE"] = "not_possible";
    LicensingPossible["POSSIBLE"] = "possible";
})(LicensingPossible || (LicensingPossible = {}));
class StockUtil_StockUtil {
    constructor() {
        this._vulcan = Object(VulcanAPI["a" /* vulcanAPI */])();
        this.loadingLibrary = false; // flag indicates cc library is in loading or not
        this.libraryCallbacks = [];
        this.ccxProcessLaunchPending = false;
    }
    /**
     * Get Stock data from representation.
     *
     * @param representation Representation of cc library element.
     * @returns Stock data.
     */
    getStockData(representation) {
        return representation && representation.getValue(STOCK_NAMESPACE, STOCK_DATA_KEY);
    }
    /**
     * Get Stock data from cc library element.
     *
     * @param element Cc library element.
     * @param index Index of representation in cc library element.
     * @returns Stock data.
     */
    getStockDataForElement(element, index) {
        // First try the primary representation
        const representation = index === undefined ? element.getPrimaryRepresentation() : element.representations[index];
        const stockData = this.getStockData(representation);
        if (stockData && representation.isExternalLink && representation.getCachedExternalLinkError()) {
            // It's an external link, but the external link isn't valid: Try the next representation
            return this.getStockDataForElement(element, index === undefined ? 0 : index + 1);
        }
        return stockData;
    }
    /**
     * Get Stock Id from cc library element.
     *
     * @param element Cc library element.
     * @returns Stock Id.
     */
    getElementStockId(element) {
        const stockData = this.getStockDataForElement(element);
        if (stockData) {
            return Number(stockData.content_id);
        }
        return undefined;
    }
    /**
     * Get Stock license status from cc library element.
     *
     * @param element Cc library element.
     * @returns Stock license status.
     */
    getElementStockLicense(element) {
        const stockData = this.getStockDataForElement(element);
        if (stockData) {
            if (stockData.state === STOCK_STATE_PURCHASED) {
                return String(stockData.license);
            }
        }
        return undefined;
    }
    /**
     * Create the URL to open/use for the selected Adobe Stock template: https://wiki.corp.adobe.com/display/adobestock/Jump+to+Adobe+Stock+Search+Pages.
     *
     * @param hostID Phxs, ilst, etc.
     * @param type The current view category.
     * @param term The search term.
     * @param analytics The analytics controller.
     * @returns Containing the URL that was opened.
     */
    async composeStockLink(hostID, type, term, analytics) {
        const isStage = imsBridge["c" /* default */].isStaging;
        const baseURL = isStage ? STOCK_URL_SEARCH_STAGE : STOCK_URL_SEARCH;
        let category = -1;
        let application = 0;
        term = typeof term === 'undefined' ? '' : term;
        switch (type) {
            case 'recent':
            case 'saved':
                category = 0;
                break;
            case 'mobile':
                category = 1;
                break;
            case 'web':
                category = 2;
                break;
            case 'print':
                category = 3;
                break;
            case 'photo':
                category = 4;
                break;
            case 'film':
                category = 5;
                break;
            case 'art':
                category = 6;
                break;
            default:
                category = -1; // signify error
                break;
        }
        switch (hostID) {
            case HostIds["a" /* default */].PHXS:
                application = 1;
                break;
            case HostIds["a" /* default */].ILST:
                application = 2;
                break;
            case HostIds["a" /* default */].IDSN:
                application = 3;
                break;
            default:
                application = 0;
                break;
        }
        term = term ? `k=${Object(JsUtils["d" /* fixedEncodeURIComponent */])(term)}&` : '';
        term += `${await analytics.getAnalyticsQueryString()}&`; // includes language and other host data
        const query = `filters[content_type:template]=1&filters[template_type_id][]=${application}`;
        // in order to search all categories, remove the filter
        const cat = category === 0 ? '' : `&filters[template_category_id][]=${category}`;
        const analyticsQuery = `&as_channel=adobe_apps&as_source=app&as_campclass=brand&as_campaign=templates_${hostID}`;
        const featureFlag = 'ff_4815162342=true&';
        return `${baseURL}?${featureFlag}${term}${query}${cat}${analyticsQuery}`;
    }
    /**
     * Open Adobe Stock URL given the product and template type https://wiki.corp.adobe.com/display/adobestock/Jump+to+Adobe+Stock+Search+Pages.
     *
     * @param hostID Phxs, ilst, etc.
     * @param type
     * @param term
     * @param analytics The analytics controller.
     * @returns Containing the URL that was opened.
     */
    async openStockLink(hostID, type, term, analytics) {
        const uri = await this.composeStockLink(hostID, type, term, analytics);
        this.openDefaultBrowser(uri, imsBridge["a" /* JumpKey */].ADOBESTOCK);
        return uri;
    }
    /**
     * Open Adobe Stock License URL.
     *
     * @param analytics The analytics controller.
     * @param appSettings App setting data from store.
     * @returns Containing the URL that was opened.
     */
    openStockLicense(analytics, appSettings) {
        const baseURL = imsBridge["c" /* default */].isStaging ? STOCK_URL_LICENSE_STAGE : STOCK_URL_LICENSE;
        const uri = `${baseURL + i18n["a" /* default */].getLoadedLocale(true)}?${analytics.getTrackingParamsString(Analytics["b" /* CMDN_AS_CONTENT_STOCK_LINK */], appSettings)}`;
        this.openDefaultBrowser(uri, imsBridge["a" /* JumpKey */].ADOBESTOCK);
        return uri;
    }
    /**
     * Open Adobe Stock Contributor URL.
     * @param url Base URL to the contributor profile.
     * @param analytics The analytics controller.
     * @param appSettings App setting data from store.
     * @returns Updated URL containing the access token.
     */
    openStockContributorUrl(url, analytics, appSettings) {
        url += `&${analytics.getTrackingParamsString(Analytics["a" /* CMDN_AS_CONTENT_CONTRIBUTOR_LINK */], appSettings)}`;
        this.openDefaultBrowser(url, imsBridge["a" /* JumpKey */].ADOBESTOCK);
        return url;
    }
    /**
     * Launches the system browser. Pass null as the to send unauthenticated, undefined for automatic detection.
     *
     * @param url Containing the URL to open.
     * @param key Element key that matches entry in iaw.cepUtil.authenticationInfo.
     */
    async openDefaultBrowser(url, key = undefined) {
        if (Object(PlatformUtils["f" /* isUXP */])()) {
            if (key === undefined) {
                Object.keys(imsBridge["b" /* JumpTargets */]).forEach((x) => {
                    if (imsBridge["b" /* JumpTargets */][x].urls.includes(new URL(url).hostname)) {
                        key = x;
                    }
                });
            }
            if (key) {
                url = await imsBridge["c" /* default */].getJumpUrl(key, url);
            }
            Object(UXPAPI["a" /* uxpAPI */])().shell.openExternal(url);
        }
        else {
            window.open(url, '_blank');
        }
    }
    getLicenseObject(license, templateId) {
        const contentDetails = license.contents[templateId];
        const stockId = license.member.stock_id;
        const purchaseDetails = license.contents[templateId].purchase_details;
        return {
            contentDetails,
            stockId,
            purchaseDetails,
        };
    }
    async licenseTemplate(template) {
        const appLocale = i18n["a" /* default */].getLoadedLocale();
        // const license = { "member": { "stock_id": "FvD3lyAyrzKqq1l4m0JswH5yHRfKEIUJ,33820701" }, "available_entitlement": { "quota": 0, "license_type_id": 44, "has_credit_model": false, "has_agency_model": true, "is_cce": true, "full_entitlement_quota": { "premium_credits_quota": 0, "standard_credits_quota": 13733 }, "quota_ids": { "standard_credits_quota": "images", "premium_credits_quota": "credits" } }, "contents": { "122366101": { "content_id": "122366101", "size": "Comp", "purchase_details": { "state": "purchased", "license": "Extended", "date": "2017-07-17 18:14:40", "url": "https:\/\/stock.adobe.com\/Rest\/Libraries\/Download\/122366101\/1", "content_type": "image\/vnd.adobe.photoshop.template", "width": 2048, "height": 1424 }, "thumbnail": { "url": "https:\/\/t4.ftcdn.net\/jpg\/01\/22\/36\/61\/240_F_122366101_FvD3lyAyrzKqq1l4m0JswH5yHRfKEIUJ.jpg", "content_type": "image\/jpeg", "width": 345.323741007194257690571248531341552734375, "height": 240 } } } };
        const license = await stock_StockWebAPI.licenseAsset({
            authToken: imsBridge["c" /* default */].userProfile.accessToken,
            contentId: Object(JsUtils["d" /* fixedEncodeURIComponent */])(String(template.id)),
            license: 'STANDARD',
            locale: Object(JsUtils["d" /* fixedEncodeURIComponent */])(appLocale),
            isStaging: false,
            xProduct: HostIds["a" /* default */].PHXS,
        });
        return this.getLicenseObject(license, template.id);
    }
    /**
     * Launch CCX process if not running.
     * Callback is a funcion with parameter status code:
     * 0: means the process has been running
     * 1: indicates the process is just launched and ready
     * 2: timeout or failed to launch process, like Thor is upgrading, or it's slow to get CCX Process startup (longer than 2 seconds)
     * 3: Thor or ccx process is not installed at all.
     *
     * @param [callback]
     */
    async launchCCXProcess(callback) {
        if (this.ccxProcessLaunchPending || !Object(PlatformUtils["f" /* isUXP */])() || !this._vulcan) {
            return;
        }
        const vulcan = this._vulcan;
        let initializedTimeout;
        const initializedMessage = 'ccxprocess.Initialized';
        callback = callback || (() => { });
        this.ccxProcessLaunchPending = true;
        const onFinished = status => {
            typeof callback === 'function' && callback(status);
            this.ccxProcessLaunchPending = false;
        };
        const started = () => {
            clearTimeout(initializedTimeout);
            this.ccxProcessLaunchPending = false;
            vulcan.off(initializedMessage, started);
            onFinished(1);
        };
        const startLaunchCCXProcess = () => {
            vulcan.on(initializedMessage, started);
            initializedTimeout = setTimeout(() => {
                vulcan.off(initializedMessage, started);
                onFinished(2);
            }, 1000);
            vulcan.launchApp('ccxprocess');
        };
        try {
            const appInstalled = await this._vulcan.isAppInstalled('ccxprocess');
            if (appInstalled) {
                this.isCCXProcessRunning(isRunning => {
                    if (!isRunning) {
                        startLaunchCCXProcess();
                    }
                    else {
                        onFinished(0);
                    }
                });
            }
            else {
                onFinished(3);
            }
        }
        catch (e) {
            onFinished(3);
        }
    }
    /**
     * Check if CCX process is running.
     *
     * @param callback
     */
    isCCXProcessRunning(callback) {
        if (!this._vulcan) {
            return;
        }
        const vulcan = this._vulcan;
        if (!Object(PlatformUtils["g" /* isWindowsOS */])() && vulcan.isAppRunning('ccxprocess')) {
            // Ignore VulcanInterface.isAppRunning on Windows due to https://jira.corp.adobe.com/browse/CEP-510
            return callback(true);
        }
        // VulcanInterface.isAppRunning is not reliable to know the running status. Sometimes it returns false for the running CCX Process on Mac.
        // Workaround is to check if CCX Process is able to respond to a ping/pong message in 200ms.
        const pingMessage = 'ccxprocess.in.request.app.ping';
        const pongMessage = 'ccxprocess.out.response.app.ping';
        let pingMessageTimeout;
        /**
         *
         */
        function pongHanlder() {
            clearTimeout(pingMessageTimeout);
            vulcan.off(pongMessage, pongHanlder);
            callback(true);
        }
        vulcan.on(pongMessage, pongHanlder);
        pingMessageTimeout = setTimeout(() => {
            vulcan.off(pongMessage, pongHanlder);
            callback(false);
        }, 200);
        const payload = { type: pingMessage, target: 'CCXP', data: {} };
        vulcan.dispatch(payload);
    }
    getCCXPCachePath() {
        const homeDir = Object(PlatformUtils["c" /* getHomeDir */])();
        if (homeDir) {
            const cacheSubpath = Object(PlatformUtils["g" /* isWindowsOS */])() ? StockConstants["a" /* CCXP_CACHE_PATH */].WINDOWS : StockConstants["a" /* CCXP_CACHE_PATH */].MAC;
            return homeDir + cacheSubpath;
        }
        return undefined;
    }
    addPathDelimiter() {
        return Object(PlatformUtils["g" /* isWindowsOS */])() ? StockConstants["f" /* PATH_SEPARATOR */].WINDOWS : StockConstants["f" /* PATH_SEPARATOR */].MAC;
    }
    // TODO - organize these functions better. They multiplied too much :)
    getCCXPStockFolder(isStage) {
        const isWindows = Object(PlatformUtils["g" /* isWindowsOS */])();
        const os = isWindows ? 'WINDOWS' : 'MAC';
        const environment = isStage ? 'stage' : 'prod';
        return StockConstants["c" /* CCXP_STOCK_FOLDER */][environment][os];
    }
    getCCXPStockFolderPath(isStage) {
        const cachePath = this.getCCXPCachePath();
        const stockFolder = this.getCCXPStockFolder(isStage);
        if (!cachePath) {
            return undefined; // this is important - we need to know if we didn't receive a valid home folder for the user
        }
        return cachePath + stockFolder;
    }
    getCCXPPathForFile(fileName, isStage, stockFolderPath) {
        const path = stockFolderPath || this.getCCXPStockFolderPath(isStage);
        if (path && fileName) {
            return path + fileName;
        }
        return undefined;
    }
    getOutputFileName(uuid, hostId, hostVersion, locale) {
        const tokens = [hostId || '', (hostVersion || '').replaceAll('.', '-'), locale || '', uuid];
        return `${tokens.join('-')}.json`;
    }
    getOutputFilePath(stockCachePath, uuid, isStage, hostId, hostVersion, locale) {
        let basePath = stockCachePath || this.getCCXPStockFolderPath(isStage);
        if (!basePath) {
            return undefined;
        }
        return (basePath +
            StockConstants["e" /* CCXP_WRITE_API_FOLDER_NAME */] +
            this.getPathSeparator() +
            this.getOutputFileName(uuid, hostId, hostVersion, locale));
    }
    getPathSeparator() {
        return Object(PlatformUtils["g" /* isWindowsOS */])() ? StockConstants["f" /* PATH_SEPARATOR */].WINDOWS : StockConstants["f" /* PATH_SEPARATOR */].MAC;
    }
}
/* harmony default export */ var stock_StockUtil = __webpack_exports__["b"] = (new StockUtil_StockUtil());


/***/ }),

/***/ "io8T":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DownloadStatus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return LibrariesEvents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return TEMPLATE_ELEMENT_TYPE; });
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var _hosts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Zghy");
/* harmony import */ var _hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("V9pm");
/* harmony import */ var _mocks_empty_mock_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("SWQv");
var _mocks_empty_mock_json__WEBPACK_IMPORTED_MODULE_4___namespace = /*#__PURE__*/__webpack_require__.t("SWQv", 1);
/* harmony import */ var _utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("5MlJ");
/* harmony import */ var _utils_Performance__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("pUl/");
/* harmony import */ var _models_TemplateModel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("3iLV");
/* harmony import */ var _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("cIFk");
/* harmony import */ var _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("0B1G");
/* harmony import */ var _intl_i18n__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("BPvV");
/* harmony import */ var _FileSystem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("D4pm");
/* harmony import */ var _StockUtil__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("iNS0");
/* harmony import */ var _StockObservable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("u/No");
/* harmony import */ var _VulcanAPI__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("2Sv4");
/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("ls82");
/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_15__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
















/**
 * Download status of the Templates.
 *
 * @enum {string}
 */
var DownloadStatus;
(function (DownloadStatus) {
    DownloadStatus["DOWNLOADED"] = "downloaded";
    DownloadStatus["DOWNLOADING"] = "downloading";
    DownloadStatus["DOWNLOAD_ERR"] = "error";
})(DownloadStatus || (DownloadStatus = {}));
var LibrariesEvents;
(function (LibrariesEvents) {
    LibrariesEvents["DOWNLOAD_STATUS"] = "download-status";
    LibrariesEvents["CHANGE"] = "library-changed";
})(LibrariesEvents || (LibrariesEvents = {}));
// template type and mime type
const TEMPLATE_ELEMENT_TYPE = 'application/vnd.adobe.element.template+dcx';
const MIME_TYPE = {
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].PHXS]: 'image/vnd.adobe.photoshop.template',
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].ILST]: 'application/illustrator.template',
    [_hosts_HostIds__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].IDSN]: 'application/vnd.adobe.indesign.template',
};
const VULCAN_PREFIX = 'vulcan.SuiteMessage.';
class LibraryManager extends _StockObservable__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"] {
    constructor() {
        super();
        this._logger = js_logger__WEBPACK_IMPORTED_MODULE_0___default.a.get('LibraryManager');
        this._vulcan = Object(_VulcanAPI__WEBPACK_IMPORTED_MODULE_14__[/* vulcanAPI */ "a"])();
        // global template lookup map
        this.statusLookupMap = {};
        // others
        this.initialized = false;
        this.debounce = 300; // 0.3 second debounce
        this.lastSyncTime = new Date().valueOf();
        this.pendingSyncTimeout = null;
        this.checkRunningTimeout = null;
        this.cclibraryProcessLaunchPending = false; // CCLibrary process launch pending
        // cache licensed templates
        this.cachedLicensedTemplates = {};
        this.licensedTemplateDataAvailable = false;
        // observables to check on the status of CCLibraries
        this.ccLibrariesIsLoaded = false;
        this.ccLibrariesIsFunctional = true;
        this.onLibraryCollectionsLoaded = this.onLibraryCollectionsLoaded.bind(this);
        this.findCCLibraryProcessPort = this.findCCLibraryProcessPort.bind(this);
        this.onSync = this.onSync.bind(this);
        // TODO - move mock data usage out of the manager
        this.fnftFakeLicensedTemplates = _mocks_empty_mock_json__WEBPACK_IMPORTED_MODULE_4__['templates'];
    }
    async initializeCCLibraries() {
        if (!this.initialized) {
            await this.init(TEMPLATE_ELEMENT_TYPE);
            this.initialized = true;
        }
    }
    /**
     * Clears the licensed template cache. This should be called when a user profice change is detected,
     * so that we don't display cached data corresponding to a different user.
     */
    clearLicensedTemplateCache() {
        this.cachedLicensedTemplates = {};
        this.statusLookupMap = {};
        this.licensedTemplateDataAvailable = false;
    }
    // __________________________________________________________________________
    /**
     * Listener for library collections loaded.
     */
    onLibraryCollectionsLoaded() {
        this.checkRunningTimeout && clearTimeout(this.checkRunningTimeout);
        this.libraryCollections = this.ccLibraries && this.ccLibraries.getLoadedCollections();
        this.ccLibrariesIsLoaded = true;
        // this was also in the previous condition: iaw.cepUtil.getExtensionID() !== 'com.adobe.ccx.fnft'
        if (!this.libraryCollections) {
            return;
        }
        // Update status lookup map for cmdn dialog
        this.getLicensedTemplates(_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id)
            .then(templates => {
            if (!Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* isUXP */ "f"])()) {
                this.fnftFakeLicensedTemplates.forEach(template => {
                    this.addTemplateToStatusLookupMap(template);
                });
                return;
            }
            if (!this.fnftFakeLicensedTemplates) {
                this.cachedLicensedTemplates = {};
            }
            templates === null || templates === void 0 ? void 0 : templates.forEach(template => {
                this.addTemplateToStatusLookupMap(template);
                if (!this._libsRootDir) {
                    this._libsRootDir = this.extractLibsRootDirPath(template.url);
                }
            });
            // triggering LibrariesEvents.CHANGE tells the AppStore that it can load licensed template data
            if (templates && !this.licensedTemplateDataAvailable) {
                this.trigger(LibrariesEvents.CHANGE, {});
                this.licensedTemplateDataAvailable = true;
            }
        })
            .catch(e => {
            this._logger.error('Failed to get licensed templates', e);
        });
        // Listen to sync changes
        this.libraryCollections.forEach(libraryCollection => {
            (libraryCollection => {
                libraryCollection.addSyncListener(() => {
                    this.onSync(libraryCollection);
                });
            })(libraryCollection);
        });
    }
    /**
     * Add template to status lookup map.
     *
     * @param template Template to add to the status lookup map.
     */
    addTemplateToStatusLookupMap(template) {
        if (template && template.id) {
            this.statusLookupMap[template.id] = {
                templateId: template.id,
                downloadStatus: DownloadStatus.DOWNLOADED,
                path: template.url,
                elementRef: template.elementRef,
                kind: _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].TEMPLATE,
                title: template.title,
            };
        }
    }
    /**
     * Load & init CC library.
     *
     * @param filters An array of element filters, like ['application/vnd.adobe.element.template+dcx'].
     */
    async init(filters) {
        const processInstalled = await this.isProcessInstalled();
        if (!processInstalled) {
            this._logger.error('CC Library Process is not installed');
            this.ccLibrariesIsFunctional = false;
            return;
        }
        try {
            _utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* Performance */ "b"].track(_utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* MeasurementIDS */ "a"].LoadLibraryFile);
            const module = await __webpack_require__.e(/* import() */ 6).then(__webpack_require__.t.bind(null, "twrL", 7));
            const CCLibraries = module.default;
            _utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* Performance */ "b"].measure(_utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* MeasurementIDS */ "a"].LoadLibraryFile);
            if (!CCLibraries) {
                this._logger.error('Failed to load CC Library javascript file');
                this.ccLibrariesIsFunctional = false;
                return;
            }
            // Initialize ccLibraries
            const DEPENDENCIES = {
                // uncomment the following lines if you want to see CCLibrary events in your console
                // log: (message: string) => {
                //     this._logger.log(message);
                // },
                vulcanCall: this.findCCLibraryProcessPort,
            };
            const OPTIONS = {
                SHARED_LOCAL_STORAGE: true,
                ELEMENT_TYPE_FILTERS: filters || '*',
                APP_DESCRIPTION: `${_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id}-${_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].version}`,
                CLIENT_DESCRIPTION: 'CMDN dialog',
            };
            _utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* Performance */ "b"].track(_utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* MeasurementIDS */ "a"].InitLibrary);
            this.ccLibraries = new CCLibraries(DEPENDENCIES, OPTIONS);
            _utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* Performance */ "b"].measure(_utils_Performance__WEBPACK_IMPORTED_MODULE_6__[/* MeasurementIDS */ "a"].InitLibrary);
        }
        catch (error) {
            this._logger.error(`Failed to configure CC Library: ${error}`);
            this.ccLibrariesIsFunctional = false;
        }
        // VulcanInterface.isAppRunning is not reliable to know the running status. Sometimes it returns false for the
        // running CC Lib Process on Mac. We check if ccLibraries.isConnected in 1 second to determine the running
        // status of CC Lib process. this workaround is suggested by CC Library team.
        this.checkRunningTimeout = setTimeout(() => {
            this.isProcessRunning().then(processRunning => {
                if (!processRunning && !this.ccLibraries.isConnected()) {
                    this.launchCCLibraryProcess();
                }
            });
        }, 5000);
        this.ccLibraries.addLoadedCollectionsListener(this.onLibraryCollectionsLoaded);
    }
    /**
     * Sends a Vulcan message to Thor to get the port that the CC Library Process is listening on.
     *
     * @param requestType Vulcan event name to request the CC Library Process info.
     * @param requestPayload Additional info for the request payload data.
     * @param responseType Vulcan event name to listen for response.
     * @param callback Callback cc-libraries-api-js to setup CCLibraryProcess conn.
     */
    findCCLibraryProcessPort(requestType, requestPayload, responseType, callback) {
        if (!this._vulcan) {
            return;
        }
        const vulcan = this._vulcan;
        // The Libraries API includes the "vulcan.SuiteMessage." prefix, so need to strip it
        requestType = requestType.replace(VULCAN_PREFIX, '');
        responseType = responseType.replace(VULCAN_PREFIX, '');
        const responseHandler = responseData => {
            vulcan.off(responseType, responseHandler);
            if (!responseData) {
                callback('NO_VULCAN_MESSAGE');
                return;
            }
            // The callback expects a string and does the parsing itself. The Vulcan wrapper returns an already
            // parsed object, so we use JSON.stringify to allow the ccLibrary to initialize
            callback(JSON.stringify(responseData));
        };
        // attach listener
        vulcan.on(responseType, responseHandler);
        // Send the request
        const payload = { type: requestType, target: 'LIBS', data: requestPayload };
        vulcan.dispatch(payload);
    }
    /**
     * Get template library, i.e. The library where we save downloaded templates.
     *
     * @returns Promise that will get "Stock Templates" library.
     */
    getTemplateLibrary() {
        return new Promise((resolve, reject) => {
            if (!this.areLibraryCollectionsLoaded()) {
                this._logger.warn('Get template library: Failed to load library collections');
                reject();
                return;
            }
            const libraryCollection = this.libraryCollections[0];
            let templateLib;
            // The name of the library is localized. We save to a different location depending on the language.
            // Note that this should not be the only place where we LOOK for templates.
            // When populating "Recent" and "Saved", we should scan ALL template directories.
            const libraryName = _intl_i18n__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].formatMessage('stock_template_library_name');
            libraryCollection.libraries.forEach(library => {
                if (!templateLib && library.name === libraryName && !library.isDeletedFromServer) {
                    templateLib = library;
                }
            });
            if (!templateLib) {
                templateLib = libraryCollection.createLibrary(libraryName);
            }
            resolve(templateLib);
        });
    }
    /**
     * Util to check if representation is in downloading.
     *
     * @param representation CC library element's representation.
     * @returns True or false.
     */
    isRepresentationDownloadPending(representation) {
        if (!representation.isExternalLink) {
            return false;
        }
        return !representation.getCachedContentPath() && !representation.getCachedExternalLinkError();
    }
    /**
     * Util to check if element is in downloading.
     *
     * @param element CC library element.
     * @returns True or false.
     */
    isElementDownloadPending(element) {
        return element.representations.some(representation => this.isRepresentationDownloadPending(representation));
    }
    /**
     * Util to get download progress.
     *
     * @param element CC library element.
     * @returns Download progress like 60.
     */
    getElementDownloadProgress(element) {
        let downloadProgress;
        element.representations.forEach(representation => {
            if (downloadProgress === undefined) {
                downloadProgress = representation.getExternalLinkDownloadProgress();
            }
        });
        return downloadProgress;
    }
    getLibraryElementsOfType(library, type) {
        if (library && type && !library.isDeletedFromServer) {
            return library.getFilteredElements
                ? library.getFilteredElements(TEMPLATE_ELEMENT_TYPE)
                : (library.elements && library.elements.filter(e => e.type === TEMPLATE_ELEMENT_TYPE)) || [];
        }
        return [];
    }
    /**
     * Hook CC library sync listener.
     *
     * @param libraryCollection Collection for which to attach the sync listener.
     */
    onSync(libraryCollection) {
        if (this.pendingSyncTimeout) {
            return;
        }
        const currentTime = new Date().valueOf();
        if (currentTime - this.lastSyncTime < this.debounce) {
            (libraryCollection => {
                this.pendingSyncTimeout = setTimeout(() => {
                    this.pendingSyncTimeout = undefined;
                    this.onSync(libraryCollection);
                }, this.debounce);
            })(libraryCollection);
            return;
        }
        this.lastSyncTime = currentTime;
        const statusLookupMap = this.statusLookupMap;
        let elementRemovedFromLibrary = false;
        let cachedTemplatesForHost;
        if (this.nrOfLibCollections !== libraryCollection.libraries.length) {
            cachedTemplatesForHost = Object.values(this.cachedLicensedTemplates).filter(template => template.mime_type === MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id]);
            this.nrOfLibCollections = libraryCollection.libraries.length;
        }
        libraryCollection.libraries.forEach(library => {
            const cachedTemplatesInLibrary = cachedTemplatesForHost ||
                Object.values(this.cachedLicensedTemplates).filter(template => template.libraryId === library.id && template.mime_type === MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id]);
            const templateElements = this.getLibraryElementsOfType(library, TEMPLATE_ELEMENT_TYPE);
            templateElements.forEach(element => {
                // TODO - stock license validation
                if (_StockUtil__WEBPACK_IMPORTED_MODULE_12__[/* default */ "b"].getElementStockLicense(element) === undefined) {
                    return;
                }
                const elementId = _StockUtil__WEBPACK_IMPORTED_MODULE_12__[/* default */ "b"].getElementStockId(element);
                const id = elementId !== undefined ? elementId : -1;
                if (id >= 0) {
                    // the element just finished downloading, so we can it to the cache
                    if (!this.cachedLicensedTemplates[id]) {
                        // Add the template mime type check, otherwise we end up showing templates from other applications (like AI)
                        if (element && element.getPrimaryRepresentation().isCompatibleType(MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id])) {
                            this.buildUpTemplate(element, true, MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id]).then(template => {
                                this.addTemplateToCache(template);
                            });
                        }
                    }
                    else {
                        const elementIndex = cachedTemplatesInLibrary.findIndex(template => template.id === id);
                        // Remove it from the list.
                        // If, when we finish going through all the elements,
                        // we still have templates in cachedTemplatesInLibrary, those were actually removed from the library,
                        // or the library was removed and need to be cleaned up from the cache
                        elementIndex >= 0 && cachedTemplatesInLibrary.splice(elementIndex, 1);
                    }
                    const status = statusLookupMap[id] || { templateId: id };
                    const oldProgress = status.progress;
                    status.progress = this.getElementDownloadProgress(element);
                    const oldPending = status.downloadPending;
                    status.downloadPending = this.isElementDownloadPending(element);
                    const logTemplate = `Stock template [${status.templateId}] `;
                    // TODO: Split to onDownloaded, onDownloading, onDownloadError function
                    if (status.downloadPending !== oldPending || status.progress !== oldProgress) {
                        if (status.progress === undefined || (oldPending && !status.downloadPending)) {
                            // downloaded
                            // Filter out any odd progress event(s) from Library. Usually, it happens at parallel downloadings.
                            if (oldProgress && status.progress && status.progress < oldProgress) {
                                return;
                            }
                            element.getPrimaryRepresentation().getContentPath((err, path) => {
                                if (err ||
                                    (status.downloadStatus === DownloadStatus.DOWNLOADED && status.path === path)) {
                                    return;
                                }
                                status.downloadStatus = DownloadStatus.DOWNLOADED;
                                status.licensedTime = element.modified;
                                status.lastUsedTime = element.modified;
                                status.path = path;
                                status.elementRef = element.getReference();
                                this.trigger(LibrariesEvents.DOWNLOAD_STATUS, status);
                                statusLookupMap[id] = status;
                            });
                            return;
                        }
                        else if (status.progress === -1) {
                            // download error
                            if (status.downloadStatus === DownloadStatus.DOWNLOAD_ERR) {
                                return;
                            }
                            status.downloadStatus = DownloadStatus.DOWNLOAD_ERR;
                            this._logger.debug(`${logTemplate}failed to be downloaded`);
                            this.trigger(LibrariesEvents.DOWNLOAD_STATUS, status);
                        }
                        else if (status.progress >= oldProgress && status.downloadPending) {
                            // downloading
                            status.downloadStatus = DownloadStatus.DOWNLOADING;
                            status.licensedTime = element.modified;
                            status.lastUsedTime = element.modified;
                            this._logger.debug(`${logTemplate}is being downloaded, progress=${status.progress}`);
                            this.trigger(LibrariesEvents.DOWNLOAD_STATUS, status);
                        }
                        statusLookupMap[id] = status;
                    }
                    else if (status.downloadPending &&
                        statusLookupMap[id].downloadStatus !== DownloadStatus.DOWNLOADING) {
                        status.downloadStatus = DownloadStatus.DOWNLOADING;
                        status.progress = 0;
                        status.licensedTime = element.modified;
                        status.lastUsedTime = element.modified;
                        statusLookupMap[id] = status;
                        this.trigger(LibrariesEvents.DOWNLOAD_STATUS, status);
                    }
                }
            });
            // if we still have elements left in the list, it means these templates were deleted from the library or library no longer exists
            cachedTemplatesInLibrary.forEach(deletedTemplate => {
                delete this.cachedLicensedTemplates[deletedTemplate.id];
                delete this.statusLookupMap[deletedTemplate.id];
                elementRemovedFromLibrary = true;
            });
        });
        // trigger LibrariesEvents.CHANGE to let the AppStore know it needs to update the template list
        elementRemovedFromLibrary && this.trigger(LibrariesEvents.CHANGE, {});
    }
    /**
     * Build up template object based on CC library element.
     *
     * @param element CC library element.
     * @param checkPurchased Flag indicating to check purchase/license status or not.
     * @param mimeType Mime type of template.
     * @returns Promise that will build up template in desired format.
     */
    buildUpTemplate(element, checkPurchased, mimeType) {
        return new Promise((resolve, reject) => {
            if (!element ||
                (checkPurchased && _StockUtil__WEBPACK_IMPORTED_MODULE_12__[/* default */ "b"].getElementStockLicense(element) === undefined) ||
                this.isElementDownloadPending(element)) {
                reject();
                return;
            }
            const representation = element.getPrimaryRepresentation();
            if (!representation) {
                reject();
                return;
            }
            representation.getContentPath((err, templatePath) => {
                if (err) {
                    reject(err);
                    return;
                }
                element.getThumbnailPath(202, (err, thumbnailPath) => {
                    if (err) {
                        thumbnailPath = null;
                    }
                    const id = _StockUtil__WEBPACK_IMPORTED_MODULE_12__[/* default */ "b"].getElementStockId(element);
                    if (id) {
                        const template = {
                            id: id,
                            identifier: id,
                            mime_type: mimeType,
                            template_category: [
                                _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].SAVED,
                                _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].RECENT,
                            ],
                            title: element.name,
                            created: element.created,
                            licensedTime: element.modified,
                            modified: element.modified,
                            lastUsedTime: _hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].appStorageController.getTemplateLastUsedTimestamp(id) || element.modified,
                            description: _intl_i18n__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].formatMessage('newdoc_details_template_default'),
                            thumbnail_url: thumbnailPath,
                            width: representation.width,
                            height: representation.height,
                            url: templatePath,
                            size: representation.contentLength,
                            elementRef: element.getReference(),
                            previews: [],
                            libraryId: element.library && element.library.id,
                        };
                        if (template.mime_type && template.url) {
                            this.addTemplateToCache(template);
                        }
                        resolve(template);
                    }
                    else {
                        reject(`Could not find element stock ID: ${JSON.stringify(element)}`);
                    }
                });
            });
        });
    }
    /**
     * Util to check if CC library is connected.
     *
     * @returns True or false.
     */
    isConnected() {
        return this.ccLibraries && this.ccLibraries.isConnected();
    }
    /**
     * Util to get CC library service info.
     *
     * @returns Service info.
     */
    getServiceInfo() {
        return this.ccLibraries && this.ccLibraries.getServiceInfo();
    }
    /**
     * Util to check if CC library Process is installed.
     *
     * @returns True or false.
     */
    async isProcessInstalled() {
        return Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* isUXP */ "f"])() && this._vulcan ? await this._vulcan.isAppInstalled('cclibraries') : false;
    }
    // __________________________________________________________________________
    /**
     * Public API.
     */
    /**
     * Check if CC Library process is running or not.
     *
     * @returns True or false.
     */
    async isProcessRunning() {
        return this._vulcan ? await this._vulcan.isAppRunning('cclibraries') : false;
    }
    /**
     * Launch the CC library process.
     */
    launchCCLibraryProcess() {
        if (this.cclibraryProcessLaunchPending || !this._vulcan) {
            return;
        }
        let interval;
        const vulcan = this._vulcan;
        const serviceInitializedMessage = 'cclibraries.service.Initialized';
        const startHandler = () => {
            if (interval) {
                clearInterval(interval);
            }
            this.cclibraryProcessLaunchPending = false;
            this.ccLibraries.reconnect();
            vulcan.off(serviceInitializedMessage, startHandler);
            // Wait 1s, then check if we're still connected - if not, we need to retry
            setTimeout(() => {
                if (!this.isConnected()) {
                    this.launchCCLibraryProcess();
                }
            }, 1000);
        };
        const callLaunch = () => {
            // If we happen to already be connected, then abort the interval
            if (this.isConnected()) {
                startHandler();
                return;
            }
            // NOTE: We never try to launch the CC Library process if an update is required (either to the panel or process).
            // Unfortunately, Vulcan.isAppRunning always returns false on the Mac, which can mean we keep on trying to start the
            // process even though it's already running, and this causes 2 second hangs on the main thread in the desktop products.
            const serviceInfo = this.getServiceInfo() || {};
            this.isProcessInstalled().then(processInstalled => {
                this.isProcessRunning().then(processRunning => {
                    if (!serviceInfo.updateRequired && processInstalled && !processRunning) {
                        vulcan.launchApp('cclibraries');
                    }
                });
            });
        };
        vulcan.on(serviceInitializedMessage, startHandler);
        this.ccLibraries.reconnect();
        this.cclibraryProcessLaunchPending = true;
        interval = setInterval(callLaunch.bind(this), 5000);
        callLaunch();
    }
    /**
     * Get licensed templates per hostID.
     *
     * @param hostID Host id, like 'PHXS'.
     * @returns Promise that will resolve licensed templates.
     */
    getLicensedTemplates(hostID) {
        return new Promise((resolve, reject) => {
            if (!Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* isUXP */ "f"])()) {
                resolve(this.fnftFakeLicensedTemplates);
                return;
            }
            /**
             * @param templates
             */
            const onFinish = templates => {
                templates = templates.filter((item, pos) => templates.indexOf(item) === pos);
                resolve(templates.map(template => _models_TemplateModel__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].create({ ...template, tip: template.title })));
            };
            if (!this.areLibraryCollectionsLoaded()) {
                this._logger.warn('Get licensed templates: Failed to load library collections');
                reject();
                return;
            }
            let elements = [];
            let libraries = [];
            this.libraryCollections.forEach(libraryCollection => {
                libraries = libraries.concat(libraryCollection.libraries);
            });
            libraries.forEach(library => {
                elements = elements.concat(this.getLibraryElementsOfType(library, TEMPLATE_ELEMENT_TYPE));
            });
            // Filter out licensed templates via mime_type.
            // For Photoshop: it's application/photoshop.template
            // For Illustrator: it's application/illustrator.template'
            const mimeType = MIME_TYPE[hostID];
            if (mimeType) {
                elements = elements.filter(element => element && element.getPrimaryRepresentation().isCompatibleType(mimeType));
            }
            const templates = [];
            if (!elements || elements.length === 0) {
                onFinish([]);
                return;
            }
            let callCount = 0;
            // Build the desired licensed template array.
            elements.forEach(element => {
                // build the template object
                this.buildUpTemplate(element, true, mimeType)
                    .then(template => {
                    templates.push(template);
                    if (++callCount === elements.length) {
                        onFinish(templates);
                    }
                })
                    .catch(() => {
                    if (++callCount === elements.length) {
                        onFinish(templates);
                    }
                });
            });
        });
    }
    /**
     * Check if CC library collections are loaded.
     *
     * @returns True or false.
     */
    areLibraryCollectionsLoaded() {
        return this.libraryCollections && this.libraryCollections.length > 0;
    }
    /**
     * Get the cached licensed templates using the lookup file.
     *
     * @param appStorageController The App Storage refernce.
     * @returns Promise that will resolve licensed templates.
     */
    async getCachedTemplatesMap(appStorageController) {
        if (!Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* isUXP */ "f"])()) {
            if (this.fnftFakeLicensedTemplates) {
                this.fnftFakeLicensedTemplates.forEach(template => {
                    if (template.mime_type === MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id]) {
                        this.cachedLicensedTemplates[template.id] = template;
                    }
                });
                return this.cachedLicensedTemplates;
            }
        }
        // If we've already got data in the cache, return that directly.
        // Otherwise, check the lookup file. If my assumption is correct, most of the time we won't need to use it.
        if (this.cachedLicensedTemplates && Object.keys(this.cachedLicensedTemplates).length > 0) {
            return this.cachedLicensedTemplates;
        }
        // TODO - find a better solution, since we're accessing internal properties of the librarycollections
        let rootDir = this._libsRootDir;
        // We should have gotten a path already from the getLicensedTemplates call,
        // but in case we didn't, look directly in the libraryCollections for a path
        if (!rootDir) {
            if (this.libraryCollections && this.libraryCollections.length) {
                rootDir = this.libraryCollections[0]._rootDir;
                if (!rootDir) {
                    rootDir = this.extractLibsRootDirPath(this.libraryCollections[0]._externalLinkCache &&
                        this.libraryCollections[0]._externalLinkCache._rootDir);
                }
            }
        }
        this._logger.log(`Looking into ${rootDir} for cached templates`);
        if (rootDir) {
            const lookupFilePath = `${rootDir}/librarylookupfile`;
            // old code: var lookupFilePath = csInterface.getSystemPath(SystemPath.USER_DATA) + '/Adobe/Creative Cloud Libraries/LIBS/librarylookupfile';
            try {
                const lookupMapJSON = await _FileSystem__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].readJson(lookupFilePath);
                if (lookupMapJSON &&
                    lookupMapJSON.libraries &&
                    this.libraryCollections &&
                    this.libraryCollections.length) {
                    this.libraryCollections[0].libraries.forEach(collectionLibrary => {
                        const libId = collectionLibrary.id;
                        const lib = lookupMapJSON.libraries[libId];
                        if (!lib || !lib.elements || collectionLibrary.isDeletedFromServer) {
                            return;
                        }
                        Object.keys(lib.elements).forEach(elementId => {
                            const element = lib.elements[elementId];
                            if (!element || !element.reps) {
                                return;
                            }
                            const template = {
                                id: element.stockId,
                                identifier: element.stockId,
                                template_category: [
                                    _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].SAVED,
                                    _interfaces_DocumentTemplateCategoryTypes__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].RECENT,
                                ],
                                title: element.name,
                                created: element.mod,
                                licensedTime: element.mod,
                                modified: element.mod,
                                lastUsedTime: appStorageController.getTemplateLastUsedTimestamp(element.stockId) || element.mod,
                                description: _intl_i18n__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].formatMessage('newdoc_details_template_default'),
                                elementRef: `cloud-asset://${lib.domain}${lib.path}/${libId};node=${elementId}`,
                                previews: [],
                                url: undefined,
                                libraryId: libId,
                            };
                            element.reps.forEach(rep => {
                                // The librarylookup contains other types of assets, not just templates.
                                // We look at the items that have the same mime_type as the host, indicating a template compatible with the host.
                                if (rep && rep.type === MIME_TYPE[_hosts__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id]) {
                                    if (rep.path) {
                                        template.mime_type = rep.type;
                                        template.url = Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* getFilePath */ "a"])(rep.path);
                                    }
                                }
                                else if (rep && rep.type === 'image/jpeg') {
                                    // the thumbnail url is in in a different rep entry
                                    if (rep.path) {
                                        template.thumbnail_url = Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_5__[/* getFilePath */ "a"])(rep.path);
                                    }
                                }
                            });
                            // if the template doesn't have the mime_type set, then it's not a template, but an image or something else
                            if (template.mime_type && template.url) {
                                this.addTemplateToCache(template);
                            }
                        });
                    });
                }
                return this.cachedLicensedTemplates;
            }
            catch (err) {
                this._logger.error(err);
            }
        }
        return {};
    }
    /**
     * Updated the internal cache with the given template. If the template already existed, it will update the timing
     * information so it is displayed in the correct order.
     *
     * @param template The template to store.
     */
    addTemplateToCache(template) {
        // if it is the first time we store the template, we just add it
        if (typeof this.cachedLicensedTemplates[template.id] === 'undefined') {
            this.cachedLicensedTemplates[template.id] = template;
        }
        else {
            // otherwise we update the timing information
            const cachedTemplate = this.cachedLicensedTemplates[template.id];
            cachedTemplate.created = cachedTemplate.created
                ? Math.max(cachedTemplate.created, template.created || 0)
                : template.created || 0;
            cachedTemplate.lastUsedTime = cachedTemplate.lastUsedTime
                ? Math.max(cachedTemplate.lastUsedTime, template.lastUsedTime !== undefined ? template.lastUsedTime : -1)
                : template.lastUsedTime;
            cachedTemplate.licensedTime = cachedTemplate.licensedTime
                ? Math.max(cachedTemplate.licensedTime, template.licensedTime !== undefined ? template.licensedTime : -1)
                : template.licensedTime;
            cachedTemplate.modified = cachedTemplate.modified
                ? Math.max(cachedTemplate.modified, template.modified || 0)
                : template.modified || 0;
        }
    }
    /**
     * Starting from a library rootDir or a downloaded asset path, we find the location of the CC Libraries /LIBS/ folder on disk.
     *
     * @param path Path to use as a starting point for lookup.
     * @returns Location of the CC Libraries /LIBS/ folder on disk.
     */
    extractLibsRootDirPath(path) {
        let rootDir = path;
        const indexOfLibs = rootDir ? rootDir.indexOf('/LIBS/') : -1;
        if (indexOfLibs >= 0) {
            rootDir = rootDir && `${rootDir.substring(0, indexOfLibs)}/LIBS`;
        }
        else {
            rootDir = undefined;
        }
        return rootDir;
    }
    /**
     * Returns the Download Status for the template with the given `templateId`.
     * If no template with the given templateId exists, `undefined` is returned.
     *
     * @param templateId The id of the template.
     * @returns The `DownloadStatus` if the template exists. Otherwise `undefined`.
     */
    getTemplateDownloadStatus(templateId) {
        var _a;
        return (_a = this.statusLookupMap[templateId]) === null || _a === void 0 ? void 0 : _a.downloadStatus;
    }
    /**
     * Checks if the template matching the given id is downloaded.
     *
     * @param templateId The id of the template.
     * @returns `true` if the template is downloaded. Otherwise `false`.
     */
    isTemplateDownloaded(templateId) {
        if (templateId === undefined)
            return false;
        const templateDownloadStatus = this.getTemplateDownloadStatus(templateId);
        return templateDownloadStatus === DownloadStatus.DOWNLOADED;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], LibraryManager.prototype, "ccLibrariesIsLoaded", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], LibraryManager.prototype, "ccLibrariesIsFunctional", void 0);
/* harmony default export */ __webpack_exports__["d"] = (new LibraryManager());


/***/ }),

/***/ "jEX6":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UnitInfoModel; });
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/* harmony import */ var _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Fr31");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const UnitRepresentationModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('UnitRepresentationModel', {
    representation: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string,
    unitStrings: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].array(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
});
const UnprocessedUnitInfoModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('UnitInfoModel', {
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].CENTIMETERS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].INCHES]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].MILLIMETERS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PICAS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PIXELS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].POINTS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].HA]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].FEET]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].FEET_INCHES]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].METERS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].YARDS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].CICEROS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].AGATES]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
    [_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].CUBITS]: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(UnitRepresentationModel),
});
const UnitInfoModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].snapshotProcessor(UnprocessedUnitInfoModel, {
    preProcessor(snapshot) {
        const modifiedSnapshot = snapshot ? JSON.parse(JSON.stringify(snapshot)) : snapshot;
        for (const unit in modifiedSnapshot) {
            if (modifiedSnapshot[unit] && modifiedSnapshot[unit].unitStrings) {
                modifiedSnapshot[unit].unitStrings = modifiedSnapshot[unit].unitStrings.map(unitString => unitString.toLowerCase().trim());
            }
        }
        return modifiedSnapshot;
    },
});


/***/ }),

/***/ "jIg/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function multiInject(serviceIdentifier) {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);

    if (typeof index === "number") {
      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    } else {
      decorator_utils_1.tagProperty(target, targetKey, metadata);
    }
  };
}

exports.multiInject = multiInject;

/***/ }),

/***/ "jYx5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function optional() {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);

    if (typeof index === "number") {
      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
    } else {
      decorator_utils_1.tagProperty(target, targetKey, metadata);
    }
  };
}

exports.optional = optional;

/***/ }),

/***/ "kgO+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-ChevronUpSmall"
  }, _react2.default.createElement("path", {
    d: "M4 .5a.749.749 0 0 0-.531.22C2.863 1.3 1.5 2.758.23 3.959A.75.75 0 1 0 1.291 5.02L4 2.311 6.709 5.02A.75.75 0 1 0 7.77 3.959L4.531.72A.749.749 0 0 0 4 .5z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M5 1a.749.749 0 0 0-.531.22L.23 5.459A.75.75 0 1 0 1.291 6.52L5 2.811 8.709 6.52A.75.75 0 1 0 9.77 5.459L5.531 1.22A.749.749 0 0 0 5 1z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'ChevronUpSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "l7cp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M28 4a16 16 0 0 0-13.233 24.991l-9.888 9.888a3 3 0 0 0 4.242 4.242l9.888-9.888A16 16 0 1 0 28 4zm0 28.1A12.1 12.1 0 1 1 40.1 20 12.114 12.114 0 0 1 28 32.1z"
}));

/***/ }),

/***/ "mNvP":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process, global) {/*! *****************************************************************************
Copyright (C) Microsoft. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var Reflect;

(function (Reflect) {
  // Metadata Proposal
  // https://rbuckton.github.io/reflect-metadata/
  (function (factory) {
    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : Function("return this;")();
    var exporter = makeExporter(Reflect);

    if (typeof root.Reflect === "undefined") {
      root.Reflect = Reflect;
    } else {
      exporter = makeExporter(root.Reflect, exporter);
    }

    factory(exporter);

    function makeExporter(target, previous) {
      return function (key, value) {
        if (typeof target[key] !== "function") {
          Object.defineProperty(target, key, {
            configurable: true,
            writable: true,
            value: value
          });
        }

        if (previous) previous(key, value);
      };
    }
  })(function (exporter) {
    var hasOwn = Object.prototype.hasOwnProperty; // feature test for Symbol support

    var supportsSymbol = typeof Symbol === "function";
    var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
    var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
    var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support

    var supportsProto = {
      __proto__: []
    } instanceof Array; // feature test for __proto__ support

    var downLevel = !supportsCreate && !supportsProto;
    var HashMap = {
      // create an object in dictionary mode (a.k.a. "slow" mode in v8)
      create: supportsCreate ? function () {
        return MakeDictionary(Object.create(null));
      } : supportsProto ? function () {
        return MakeDictionary({
          __proto__: null
        });
      } : function () {
        return MakeDictionary({});
      },
      has: downLevel ? function (map, key) {
        return hasOwn.call(map, key);
      } : function (map, key) {
        return key in map;
      },
      get: downLevel ? function (map, key) {
        return hasOwn.call(map, key) ? map[key] : undefined;
      } : function (map, key) {
        return map[key];
      }
    }; // Load global or shim versions of Map, Set, and WeakMap

    var functionPrototype = Object.getPrototypeOf(Function);
    var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true";

    var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();

    var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();

    var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); // [[Metadata]] internal slot
    // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots


    var Metadata = new _WeakMap();
    /**
     * Applies a set of decorators to a property of a target object.
     * @param decorators An array of decorators.
     * @param target The target object.
     * @param propertyKey (Optional) The property key to decorate.
     * @param attributes (Optional) The property descriptor for the target key.
     * @remarks Decorators are applied in reverse order.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     Example = Reflect.decorate(decoratorsArray, Example);
     *
     *     // property (on constructor)
     *     Reflect.decorate(decoratorsArray, Example, "staticProperty");
     *
     *     // property (on prototype)
     *     Reflect.decorate(decoratorsArray, Example.prototype, "property");
     *
     *     // method (on constructor)
     *     Object.defineProperty(Example, "staticMethod",
     *         Reflect.decorate(decoratorsArray, Example, "staticMethod",
     *             Object.getOwnPropertyDescriptor(Example, "staticMethod")));
     *
     *     // method (on prototype)
     *     Object.defineProperty(Example.prototype, "method",
     *         Reflect.decorate(decoratorsArray, Example.prototype, "method",
     *             Object.getOwnPropertyDescriptor(Example.prototype, "method")));
     *
     */

    function decorate(decorators, target, propertyKey, attributes) {
      if (!IsUndefined(propertyKey)) {
        if (!IsArray(decorators)) throw new TypeError();
        if (!IsObject(target)) throw new TypeError();
        if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) throw new TypeError();
        if (IsNull(attributes)) attributes = undefined;
        propertyKey = ToPropertyKey(propertyKey);
        return DecorateProperty(decorators, target, propertyKey, attributes);
      } else {
        if (!IsArray(decorators)) throw new TypeError();
        if (!IsConstructor(target)) throw new TypeError();
        return DecorateConstructor(decorators, target);
      }
    }

    exporter("decorate", decorate); // 4.1.2 Reflect.metadata(metadataKey, metadataValue)
    // https://rbuckton.github.io/reflect-metadata/#reflect.metadata

    /**
     * A default metadata decorator factory that can be used on a class, class member, or parameter.
     * @param metadataKey The key for the metadata entry.
     * @param metadataValue The value for the metadata entry.
     * @returns A decorator function.
     * @remarks
     * If `metadataKey` is already defined for the target and target key, the
     * metadataValue for that key will be overwritten.
     * @example
     *
     *     // constructor
     *     @Reflect.metadata(key, value)
     *     class Example {
     *     }
     *
     *     // property (on constructor, TypeScript only)
     *     class Example {
     *         @Reflect.metadata(key, value)
     *         static staticProperty;
     *     }
     *
     *     // property (on prototype, TypeScript only)
     *     class Example {
     *         @Reflect.metadata(key, value)
     *         property;
     *     }
     *
     *     // method (on constructor)
     *     class Example {
     *         @Reflect.metadata(key, value)
     *         static staticMethod() { }
     *     }
     *
     *     // method (on prototype)
     *     class Example {
     *         @Reflect.metadata(key, value)
     *         method() { }
     *     }
     *
     */

    function metadata(metadataKey, metadataValue) {
      function decorator(target, propertyKey) {
        if (!IsObject(target)) throw new TypeError();
        if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) throw new TypeError();
        OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
      }

      return decorator;
    }

    exporter("metadata", metadata);
    /**
     * Define a unique metadata entry on the target.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param metadataValue A value that contains attached metadata.
     * @param target The target object on which to define metadata.
     * @param propertyKey (Optional) The property key for the target.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     Reflect.defineMetadata("custom:annotation", options, Example);
     *
     *     // property (on constructor)
     *     Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty");
     *
     *     // property (on prototype)
     *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property");
     *
     *     // method (on constructor)
     *     Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod");
     *
     *     // method (on prototype)
     *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method");
     *
     *     // decorator factory as metadata-producing annotation.
     *     function MyAnnotation(options): Decorator {
     *         return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key);
     *     }
     *
     */

    function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
    }

    exporter("defineMetadata", defineMetadata);
    /**
     * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.hasMetadata("custom:annotation", Example);
     *
     *     // property (on constructor)
     *     result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method");
     *
     */

    function hasMetadata(metadataKey, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryHasMetadata(metadataKey, target, propertyKey);
    }

    exporter("hasMetadata", hasMetadata);
    /**
     * Gets a value indicating whether the target object has the provided metadata key defined.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.hasOwnMetadata("custom:annotation", Example);
     *
     *     // property (on constructor)
     *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method");
     *
     */

    function hasOwnMetadata(metadataKey, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
    }

    exporter("hasOwnMetadata", hasOwnMetadata);
    /**
     * Gets the metadata value for the provided metadata key on the target object or its prototype chain.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.getMetadata("custom:annotation", Example);
     *
     *     // property (on constructor)
     *     result = Reflect.getMetadata("custom:annotation", Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.getMetadata("custom:annotation", Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "method");
     *
     */

    function getMetadata(metadataKey, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryGetMetadata(metadataKey, target, propertyKey);
    }

    exporter("getMetadata", getMetadata);
    /**
     * Gets the metadata value for the provided metadata key on the target object.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.getOwnMetadata("custom:annotation", Example);
     *
     *     // property (on constructor)
     *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method");
     *
     */

    function getOwnMetadata(metadataKey, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
    }

    exporter("getOwnMetadata", getOwnMetadata);
    /**
     * Gets the metadata keys defined on the target object or its prototype chain.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns An array of unique metadata keys.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.getMetadataKeys(Example);
     *
     *     // property (on constructor)
     *     result = Reflect.getMetadataKeys(Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.getMetadataKeys(Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.getMetadataKeys(Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.getMetadataKeys(Example.prototype, "method");
     *
     */

    function getMetadataKeys(target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryMetadataKeys(target, propertyKey);
    }

    exporter("getMetadataKeys", getMetadataKeys);
    /**
     * Gets the unique metadata keys defined on the target object.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns An array of unique metadata keys.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.getOwnMetadataKeys(Example);
     *
     *     // property (on constructor)
     *     result = Reflect.getOwnMetadataKeys(Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.getOwnMetadataKeys(Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.getOwnMetadataKeys(Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.getOwnMetadataKeys(Example.prototype, "method");
     *
     */

    function getOwnMetadataKeys(target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      return OrdinaryOwnMetadataKeys(target, propertyKey);
    }

    exporter("getOwnMetadataKeys", getOwnMetadataKeys);
    /**
     * Deletes the metadata entry from the target object with the provided key.
     * @param metadataKey A key used to store and retrieve metadata.
     * @param target The target object on which the metadata is defined.
     * @param propertyKey (Optional) The property key for the target.
     * @returns `true` if the metadata entry was found and deleted; otherwise, false.
     * @example
     *
     *     class Example {
     *         // property declarations are not part of ES6, though they are valid in TypeScript:
     *         // static staticProperty;
     *         // property;
     *
     *         constructor(p) { }
     *         static staticMethod(p) { }
     *         method(p) { }
     *     }
     *
     *     // constructor
     *     result = Reflect.deleteMetadata("custom:annotation", Example);
     *
     *     // property (on constructor)
     *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty");
     *
     *     // property (on prototype)
     *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property");
     *
     *     // method (on constructor)
     *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod");
     *
     *     // method (on prototype)
     *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method");
     *
     */

    function deleteMetadata(metadataKey, target, propertyKey) {
      if (!IsObject(target)) throw new TypeError();
      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
      var metadataMap = GetOrCreateMetadataMap(target, propertyKey,
      /*Create*/
      false);
      if (IsUndefined(metadataMap)) return false;
      if (!metadataMap.delete(metadataKey)) return false;
      if (metadataMap.size > 0) return true;
      var targetMetadata = Metadata.get(target);
      targetMetadata.delete(propertyKey);
      if (targetMetadata.size > 0) return true;
      Metadata.delete(target);
      return true;
    }

    exporter("deleteMetadata", deleteMetadata);

    function DecorateConstructor(decorators, target) {
      for (var i = decorators.length - 1; i >= 0; --i) {
        var decorator = decorators[i];
        var decorated = decorator(target);

        if (!IsUndefined(decorated) && !IsNull(decorated)) {
          if (!IsConstructor(decorated)) throw new TypeError();
          target = decorated;
        }
      }

      return target;
    }

    function DecorateProperty(decorators, target, propertyKey, descriptor) {
      for (var i = decorators.length - 1; i >= 0; --i) {
        var decorator = decorators[i];
        var decorated = decorator(target, propertyKey, descriptor);

        if (!IsUndefined(decorated) && !IsNull(decorated)) {
          if (!IsObject(decorated)) throw new TypeError();
          descriptor = decorated;
        }
      }

      return descriptor;
    }

    function GetOrCreateMetadataMap(O, P, Create) {
      var targetMetadata = Metadata.get(O);

      if (IsUndefined(targetMetadata)) {
        if (!Create) return undefined;
        targetMetadata = new _Map();
        Metadata.set(O, targetMetadata);
      }

      var metadataMap = targetMetadata.get(P);

      if (IsUndefined(metadataMap)) {
        if (!Create) return undefined;
        metadataMap = new _Map();
        targetMetadata.set(P, metadataMap);
      }

      return metadataMap;
    } // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata


    function OrdinaryHasMetadata(MetadataKey, O, P) {
      var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
      if (hasOwn) return true;
      var parent = OrdinaryGetPrototypeOf(O);
      if (!IsNull(parent)) return OrdinaryHasMetadata(MetadataKey, parent, P);
      return false;
    } // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata


    function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
      var metadataMap = GetOrCreateMetadataMap(O, P,
      /*Create*/
      false);
      if (IsUndefined(metadataMap)) return false;
      return ToBoolean(metadataMap.has(MetadataKey));
    } // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata


    function OrdinaryGetMetadata(MetadataKey, O, P) {
      var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
      if (hasOwn) return OrdinaryGetOwnMetadata(MetadataKey, O, P);
      var parent = OrdinaryGetPrototypeOf(O);
      if (!IsNull(parent)) return OrdinaryGetMetadata(MetadataKey, parent, P);
      return undefined;
    } // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata


    function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
      var metadataMap = GetOrCreateMetadataMap(O, P,
      /*Create*/
      false);
      if (IsUndefined(metadataMap)) return undefined;
      return metadataMap.get(MetadataKey);
    } // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata


    function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
      var metadataMap = GetOrCreateMetadataMap(O, P,
      /*Create*/
      true);
      metadataMap.set(MetadataKey, MetadataValue);
    } // 3.1.6.1 OrdinaryMetadataKeys(O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys


    function OrdinaryMetadataKeys(O, P) {
      var ownKeys = OrdinaryOwnMetadataKeys(O, P);
      var parent = OrdinaryGetPrototypeOf(O);
      if (parent === null) return ownKeys;
      var parentKeys = OrdinaryMetadataKeys(parent, P);
      if (parentKeys.length <= 0) return ownKeys;
      if (ownKeys.length <= 0) return parentKeys;
      var set = new _Set();
      var keys = [];

      for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
        var key = ownKeys_1[_i];
        var hasKey = set.has(key);

        if (!hasKey) {
          set.add(key);
          keys.push(key);
        }
      }

      for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
        var key = parentKeys_1[_a];
        var hasKey = set.has(key);

        if (!hasKey) {
          set.add(key);
          keys.push(key);
        }
      }

      return keys;
    } // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)
    // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys


    function OrdinaryOwnMetadataKeys(O, P) {
      var keys = [];
      var metadataMap = GetOrCreateMetadataMap(O, P,
      /*Create*/
      false);
      if (IsUndefined(metadataMap)) return keys;
      var keysObj = metadataMap.keys();
      var iterator = GetIterator(keysObj);
      var k = 0;

      while (true) {
        var next = IteratorStep(iterator);

        if (!next) {
          keys.length = k;
          return keys;
        }

        var nextValue = IteratorValue(next);

        try {
          keys[k] = nextValue;
        } catch (e) {
          try {
            IteratorClose(iterator);
          } finally {
            throw e;
          }
        }

        k++;
      }
    } // 6 ECMAScript Data Typ0es and Values
    // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values


    function Type(x) {
      if (x === null) return 1
      /* Null */
      ;

      switch (typeof x) {
        case "undefined":
          return 0
          /* Undefined */
          ;

        case "boolean":
          return 2
          /* Boolean */
          ;

        case "string":
          return 3
          /* String */
          ;

        case "symbol":
          return 4
          /* Symbol */
          ;

        case "number":
          return 5
          /* Number */
          ;

        case "object":
          return x === null ? 1
          /* Null */
          : 6
          /* Object */
          ;

        default:
          return 6
          /* Object */
          ;
      }
    } // 6.1.1 The Undefined Type
    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type


    function IsUndefined(x) {
      return x === undefined;
    } // 6.1.2 The Null Type
    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type


    function IsNull(x) {
      return x === null;
    } // 6.1.5 The Symbol Type
    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type


    function IsSymbol(x) {
      return typeof x === "symbol";
    } // 6.1.7 The Object Type
    // https://tc39.github.io/ecma262/#sec-object-type


    function IsObject(x) {
      return typeof x === "object" ? x !== null : typeof x === "function";
    } // 7.1 Type Conversion
    // https://tc39.github.io/ecma262/#sec-type-conversion
    // 7.1.1 ToPrimitive(input [, PreferredType])
    // https://tc39.github.io/ecma262/#sec-toprimitive


    function ToPrimitive(input, PreferredType) {
      switch (Type(input)) {
        case 0
        /* Undefined */
        :
          return input;

        case 1
        /* Null */
        :
          return input;

        case 2
        /* Boolean */
        :
          return input;

        case 3
        /* String */
        :
          return input;

        case 4
        /* Symbol */
        :
          return input;

        case 5
        /* Number */
        :
          return input;
      }

      var hint = PreferredType === 3
      /* String */
      ? "string" : PreferredType === 5
      /* Number */
      ? "number" : "default";
      var exoticToPrim = GetMethod(input, toPrimitiveSymbol);

      if (exoticToPrim !== undefined) {
        var result = exoticToPrim.call(input, hint);
        if (IsObject(result)) throw new TypeError();
        return result;
      }

      return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
    } // 7.1.1.1 OrdinaryToPrimitive(O, hint)
    // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive


    function OrdinaryToPrimitive(O, hint) {
      if (hint === "string") {
        var toString_1 = O.toString;

        if (IsCallable(toString_1)) {
          var result = toString_1.call(O);
          if (!IsObject(result)) return result;
        }

        var valueOf = O.valueOf;

        if (IsCallable(valueOf)) {
          var result = valueOf.call(O);
          if (!IsObject(result)) return result;
        }
      } else {
        var valueOf = O.valueOf;

        if (IsCallable(valueOf)) {
          var result = valueOf.call(O);
          if (!IsObject(result)) return result;
        }

        var toString_2 = O.toString;

        if (IsCallable(toString_2)) {
          var result = toString_2.call(O);
          if (!IsObject(result)) return result;
        }
      }

      throw new TypeError();
    } // 7.1.2 ToBoolean(argument)
    // https://tc39.github.io/ecma262/2016/#sec-toboolean


    function ToBoolean(argument) {
      return !!argument;
    } // 7.1.12 ToString(argument)
    // https://tc39.github.io/ecma262/#sec-tostring


    function ToString(argument) {
      return "" + argument;
    } // 7.1.14 ToPropertyKey(argument)
    // https://tc39.github.io/ecma262/#sec-topropertykey


    function ToPropertyKey(argument) {
      var key = ToPrimitive(argument, 3
      /* String */
      );
      if (IsSymbol(key)) return key;
      return ToString(key);
    } // 7.2 Testing and Comparison Operations
    // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations
    // 7.2.2 IsArray(argument)
    // https://tc39.github.io/ecma262/#sec-isarray


    function IsArray(argument) {
      return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]";
    } // 7.2.3 IsCallable(argument)
    // https://tc39.github.io/ecma262/#sec-iscallable


    function IsCallable(argument) {
      // NOTE: This is an approximation as we cannot check for [[Call]] internal method.
      return typeof argument === "function";
    } // 7.2.4 IsConstructor(argument)
    // https://tc39.github.io/ecma262/#sec-isconstructor


    function IsConstructor(argument) {
      // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.
      return typeof argument === "function";
    } // 7.2.7 IsPropertyKey(argument)
    // https://tc39.github.io/ecma262/#sec-ispropertykey


    function IsPropertyKey(argument) {
      switch (Type(argument)) {
        case 3
        /* String */
        :
          return true;

        case 4
        /* Symbol */
        :
          return true;

        default:
          return false;
      }
    } // 7.3 Operations on Objects
    // https://tc39.github.io/ecma262/#sec-operations-on-objects
    // 7.3.9 GetMethod(V, P)
    // https://tc39.github.io/ecma262/#sec-getmethod


    function GetMethod(V, P) {
      var func = V[P];
      if (func === undefined || func === null) return undefined;
      if (!IsCallable(func)) throw new TypeError();
      return func;
    } // 7.4 Operations on Iterator Objects
    // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects


    function GetIterator(obj) {
      var method = GetMethod(obj, iteratorSymbol);
      if (!IsCallable(method)) throw new TypeError(); // from Call

      var iterator = method.call(obj);
      if (!IsObject(iterator)) throw new TypeError();
      return iterator;
    } // 7.4.4 IteratorValue(iterResult)
    // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue


    function IteratorValue(iterResult) {
      return iterResult.value;
    } // 7.4.5 IteratorStep(iterator)
    // https://tc39.github.io/ecma262/#sec-iteratorstep


    function IteratorStep(iterator) {
      var result = iterator.next();
      return result.done ? false : result;
    } // 7.4.6 IteratorClose(iterator, completion)
    // https://tc39.github.io/ecma262/#sec-iteratorclose


    function IteratorClose(iterator) {
      var f = iterator["return"];
      if (f) f.call(iterator);
    } // 9.1 Ordinary Object Internal Methods and Internal Slots
    // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
    // 9.1.1.1 OrdinaryGetPrototypeOf(O)
    // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof


    function OrdinaryGetPrototypeOf(O) {
      var proto = Object.getPrototypeOf(O);
      if (typeof O !== "function" || O === functionPrototype) return proto; // TypeScript doesn't set __proto__ in ES5, as it's non-standard.
      // Try to determine the superclass constructor. Compatible implementations
      // must either set __proto__ on a subclass constructor to the superclass constructor,
      // or ensure each class has a valid `constructor` property on its prototype that
      // points back to the constructor.
      // If this is not the same as Function.[[Prototype]], then this is definately inherited.
      // This is the case when in ES6 or when using __proto__ in a compatible browser.

      if (proto !== functionPrototype) return proto; // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.

      var prototype = O.prototype;
      var prototypeProto = prototype && Object.getPrototypeOf(prototype);
      if (prototypeProto == null || prototypeProto === Object.prototype) return proto; // If the constructor was not a function, then we cannot determine the heritage.

      var constructor = prototypeProto.constructor;
      if (typeof constructor !== "function") return proto; // If we have some kind of self-reference, then we cannot determine the heritage.

      if (constructor === O) return proto; // we have a pretty good guess at the heritage.

      return constructor;
    } // naive Map shim


    function CreateMapPolyfill() {
      var cacheSentinel = {};
      var arraySentinel = [];

      var MapIterator =
      /** @class */
      function () {
        function MapIterator(keys, values, selector) {
          this._index = 0;
          this._keys = keys;
          this._values = values;
          this._selector = selector;
        }

        MapIterator.prototype["@@iterator"] = function () {
          return this;
        };

        MapIterator.prototype[iteratorSymbol] = function () {
          return this;
        };

        MapIterator.prototype.next = function () {
          var index = this._index;

          if (index >= 0 && index < this._keys.length) {
            var result = this._selector(this._keys[index], this._values[index]);

            if (index + 1 >= this._keys.length) {
              this._index = -1;
              this._keys = arraySentinel;
              this._values = arraySentinel;
            } else {
              this._index++;
            }

            return {
              value: result,
              done: false
            };
          }

          return {
            value: undefined,
            done: true
          };
        };

        MapIterator.prototype.throw = function (error) {
          if (this._index >= 0) {
            this._index = -1;
            this._keys = arraySentinel;
            this._values = arraySentinel;
          }

          throw error;
        };

        MapIterator.prototype.return = function (value) {
          if (this._index >= 0) {
            this._index = -1;
            this._keys = arraySentinel;
            this._values = arraySentinel;
          }

          return {
            value: value,
            done: true
          };
        };

        return MapIterator;
      }();

      return (
        /** @class */
        function () {
          function Map() {
            this._keys = [];
            this._values = [];
            this._cacheKey = cacheSentinel;
            this._cacheIndex = -2;
          }

          Object.defineProperty(Map.prototype, "size", {
            get: function () {
              return this._keys.length;
            },
            enumerable: true,
            configurable: true
          });

          Map.prototype.has = function (key) {
            return this._find(key,
            /*insert*/
            false) >= 0;
          };

          Map.prototype.get = function (key) {
            var index = this._find(key,
            /*insert*/
            false);

            return index >= 0 ? this._values[index] : undefined;
          };

          Map.prototype.set = function (key, value) {
            var index = this._find(key,
            /*insert*/
            true);

            this._values[index] = value;
            return this;
          };

          Map.prototype.delete = function (key) {
            var index = this._find(key,
            /*insert*/
            false);

            if (index >= 0) {
              var size = this._keys.length;

              for (var i = index + 1; i < size; i++) {
                this._keys[i - 1] = this._keys[i];
                this._values[i - 1] = this._values[i];
              }

              this._keys.length--;
              this._values.length--;

              if (key === this._cacheKey) {
                this._cacheKey = cacheSentinel;
                this._cacheIndex = -2;
              }

              return true;
            }

            return false;
          };

          Map.prototype.clear = function () {
            this._keys.length = 0;
            this._values.length = 0;
            this._cacheKey = cacheSentinel;
            this._cacheIndex = -2;
          };

          Map.prototype.keys = function () {
            return new MapIterator(this._keys, this._values, getKey);
          };

          Map.prototype.values = function () {
            return new MapIterator(this._keys, this._values, getValue);
          };

          Map.prototype.entries = function () {
            return new MapIterator(this._keys, this._values, getEntry);
          };

          Map.prototype["@@iterator"] = function () {
            return this.entries();
          };

          Map.prototype[iteratorSymbol] = function () {
            return this.entries();
          };

          Map.prototype._find = function (key, insert) {
            if (this._cacheKey !== key) {
              this._cacheIndex = this._keys.indexOf(this._cacheKey = key);
            }

            if (this._cacheIndex < 0 && insert) {
              this._cacheIndex = this._keys.length;

              this._keys.push(key);

              this._values.push(undefined);
            }

            return this._cacheIndex;
          };

          return Map;
        }()
      );

      function getKey(key, _) {
        return key;
      }

      function getValue(_, value) {
        return value;
      }

      function getEntry(key, value) {
        return [key, value];
      }
    } // naive Set shim


    function CreateSetPolyfill() {
      return (
        /** @class */
        function () {
          function Set() {
            this._map = new _Map();
          }

          Object.defineProperty(Set.prototype, "size", {
            get: function () {
              return this._map.size;
            },
            enumerable: true,
            configurable: true
          });

          Set.prototype.has = function (value) {
            return this._map.has(value);
          };

          Set.prototype.add = function (value) {
            return this._map.set(value, value), this;
          };

          Set.prototype.delete = function (value) {
            return this._map.delete(value);
          };

          Set.prototype.clear = function () {
            this._map.clear();
          };

          Set.prototype.keys = function () {
            return this._map.keys();
          };

          Set.prototype.values = function () {
            return this._map.values();
          };

          Set.prototype.entries = function () {
            return this._map.entries();
          };

          Set.prototype["@@iterator"] = function () {
            return this.keys();
          };

          Set.prototype[iteratorSymbol] = function () {
            return this.keys();
          };

          return Set;
        }()
      );
    } // naive WeakMap shim


    function CreateWeakMapPolyfill() {
      var UUID_SIZE = 16;
      var keys = HashMap.create();
      var rootKey = CreateUniqueKey();
      return (
        /** @class */
        function () {
          function WeakMap() {
            this._key = CreateUniqueKey();
          }

          WeakMap.prototype.has = function (target) {
            var table = GetOrCreateWeakMapTable(target,
            /*create*/
            false);
            return table !== undefined ? HashMap.has(table, this._key) : false;
          };

          WeakMap.prototype.get = function (target) {
            var table = GetOrCreateWeakMapTable(target,
            /*create*/
            false);
            return table !== undefined ? HashMap.get(table, this._key) : undefined;
          };

          WeakMap.prototype.set = function (target, value) {
            var table = GetOrCreateWeakMapTable(target,
            /*create*/
            true);
            table[this._key] = value;
            return this;
          };

          WeakMap.prototype.delete = function (target) {
            var table = GetOrCreateWeakMapTable(target,
            /*create*/
            false);
            return table !== undefined ? delete table[this._key] : false;
          };

          WeakMap.prototype.clear = function () {
            // NOTE: not a real clear, just makes the previous data unreachable
            this._key = CreateUniqueKey();
          };

          return WeakMap;
        }()
      );

      function CreateUniqueKey() {
        var key;

        do key = "@@WeakMap@@" + CreateUUID(); while (HashMap.has(keys, key));

        keys[key] = true;
        return key;
      }

      function GetOrCreateWeakMapTable(target, create) {
        if (!hasOwn.call(target, rootKey)) {
          if (!create) return undefined;
          Object.defineProperty(target, rootKey, {
            value: HashMap.create()
          });
        }

        return target[rootKey];
      }

      function FillRandomBytes(buffer, size) {
        for (var i = 0; i < size; ++i) buffer[i] = Math.random() * 0xff | 0;

        return buffer;
      }

      function GenRandomBytes(size) {
        if (typeof Uint8Array === "function") {
          if (typeof crypto !== "undefined") return crypto.getRandomValues(new Uint8Array(size));
          if (typeof msCrypto !== "undefined") return msCrypto.getRandomValues(new Uint8Array(size));
          return FillRandomBytes(new Uint8Array(size), size);
        }

        return FillRandomBytes(new Array(size), size);
      }

      function CreateUUID() {
        var data = GenRandomBytes(UUID_SIZE); // mark as random - RFC 4122 § 4.4

        data[6] = data[6] & 0x4f | 0x40;
        data[8] = data[8] & 0xbf | 0x80;
        var result = "";

        for (var offset = 0; offset < UUID_SIZE; ++offset) {
          var byte = data[offset];
          if (offset === 4 || offset === 6 || offset === 8) result += "-";
          if (byte < 16) result += "0";
          result += byte.toString(16).toLowerCase();
        }

        return result;
      }
    } // uses a heuristic used by v8 and chakra to force an object into dictionary mode.


    function MakeDictionary(obj) {
      obj.__ = undefined;
      delete obj.__;
      return obj;
    }
  });
})(Reflect || (Reflect = {}));
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB"), __webpack_require__("yLpj")))

/***/ }),

/***/ "n2J3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function unmanaged() {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);
    decorator_utils_1.tagParameter(target, targetKey, index, metadata);
  };
}

exports.unmanaged = unmanaged;

/***/ }),

/***/ "nc0P":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_RESULT__;/*
 *  big.js v5.2.2
 *  A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.
 *  Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>
 *  https://github.com/MikeMcl/big.js/LICENCE
 */
;

(function (GLOBAL) {
  'use strict';

  var Big,

  /************************************** EDITABLE DEFAULTS *****************************************/
  // The default values below must be integers within the stated ranges.

  /*
   * The maximum number of decimal places (DP) of the results of operations involving division:
   * div and sqrt, and pow with negative exponents.
   */
  DP = 20,
      // 0 to MAX_DP

  /*
   * The rounding mode (RM) used when rounding to the above decimal places.
   *
   *  0  Towards zero (i.e. truncate, no rounding).       (ROUND_DOWN)
   *  1  To nearest neighbour. If equidistant, round up.  (ROUND_HALF_UP)
   *  2  To nearest neighbour. If equidistant, to even.   (ROUND_HALF_EVEN)
   *  3  Away from zero.                                  (ROUND_UP)
   */
  RM = 1,
      // 0, 1, 2 or 3
  // The maximum value of DP and Big.DP.
  MAX_DP = 1E6,
      // 0 to 1000000
  // The maximum magnitude of the exponent argument to the pow method.
  MAX_POWER = 1E6,
      // 1 to 1000000

  /*
   * The negative exponent (NE) at and beneath which toString returns exponential notation.
   * (JavaScript numbers: -7)
   * -1000000 is the minimum recommended exponent value of a Big.
   */
  NE = -7,
      // 0 to -1000000

  /*
   * The positive exponent (PE) at and above which toString returns exponential notation.
   * (JavaScript numbers: 21)
   * 1000000 is the maximum recommended exponent value of a Big.
   * (This limit is not enforced or checked.)
   */
  PE = 21,
      // 0 to 1000000

  /**************************************************************************************************/
  // Error messages.
  NAME = '[big.js] ',
      INVALID = NAME + 'Invalid ',
      INVALID_DP = INVALID + 'decimal places',
      INVALID_RM = INVALID + 'rounding mode',
      DIV_BY_ZERO = NAME + 'Division by zero',
      // The shared prototype object.
  P = {},
      UNDEFINED = void 0,
      NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
  /*
   * Create and return a Big constructor.
   *
   */

  function _Big_() {
    /*
     * The Big constructor and exported function.
     * Create and return a new instance of a Big number object.
     *
     * n {number|string|Big} A numeric value.
     */
    function Big(n) {
      var x = this; // Enable constructor usage without new.

      if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); // Duplicate.

      if (n instanceof Big) {
        x.s = n.s;
        x.e = n.e;
        x.c = n.c.slice();
      } else {
        parse(x, n);
      }
      /*
       * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which
       * points to Object.
       */


      x.constructor = Big;
    }

    Big.prototype = P;
    Big.DP = DP;
    Big.RM = RM;
    Big.NE = NE;
    Big.PE = PE;
    Big.version = '5.2.2';
    return Big;
  }
  /*
   * Parse the number or string value passed to a Big constructor.
   *
   * x {Big} A Big number instance.
   * n {number|string} A numeric value.
   */


  function parse(x, n) {
    var e, i, nl; // Minus zero?

    if (n === 0 && 1 / n < 0) n = '-0';else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number'); // Determine sign.

    x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1; // Decimal point?

    if ((e = n.indexOf('.')) > -1) n = n.replace('.', ''); // Exponential form?

    if ((i = n.search(/e/i)) > 0) {
      // Determine exponent.
      if (e < 0) e = i;
      e += +n.slice(i + 1);
      n = n.substring(0, i);
    } else if (e < 0) {
      // Integer.
      e = n.length;
    }

    nl = n.length; // Determine leading zeros.

    for (i = 0; i < nl && n.charAt(i) == '0';) ++i;

    if (i == nl) {
      // Zero.
      x.c = [x.e = 0];
    } else {
      // Determine trailing zeros.
      for (; nl > 0 && n.charAt(--nl) == '0';);

      x.e = e - i - 1;
      x.c = []; // Convert string to array of digits without leading/trailing zeros.

      for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);
    }

    return x;
  }
  /*
   * Round Big x to a maximum of dp decimal places using rounding mode rm.
   * Called by stringify, P.div, P.round and P.sqrt.
   *
   * x {Big} The Big to round.
   * dp {number} Integer, 0 to MAX_DP inclusive.
   * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)
   * [more] {boolean} Whether the result of division was truncated.
   */


  function round(x, dp, rm, more) {
    var xc = x.c,
        i = x.e + dp + 1;

    if (i < xc.length) {
      if (rm === 1) {
        // xc[i] is the digit after the digit that may be rounded up.
        more = xc[i] >= 5;
      } else if (rm === 2) {
        more = xc[i] > 5 || xc[i] == 5 && (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);
      } else if (rm === 3) {
        more = more || !!xc[0];
      } else {
        more = false;
        if (rm !== 0) throw Error(INVALID_RM);
      }

      if (i < 1) {
        xc.length = 1;

        if (more) {
          // 1, 0.1, 0.01, 0.001, 0.0001 etc.
          x.e = -dp;
          xc[0] = 1;
        } else {
          // Zero.
          xc[0] = x.e = 0;
        }
      } else {
        // Remove any digits after the required decimal places.
        xc.length = i--; // Round up?

        if (more) {
          // Rounding up may mean the previous digit has to be rounded up.
          for (; ++xc[i] > 9;) {
            xc[i] = 0;

            if (!i--) {
              ++x.e;
              xc.unshift(1);
            }
          }
        } // Remove trailing zeros.


        for (i = xc.length; !xc[--i];) xc.pop();
      }
    } else if (rm < 0 || rm > 3 || rm !== ~~rm) {
      throw Error(INVALID_RM);
    }

    return x;
  }
  /*
   * Return a string representing the value of Big x in normal or exponential notation.
   * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.
   *
   * x {Big}
   * id? {number} Caller id.
   *         1 toExponential
   *         2 toFixed
   *         3 toPrecision
   *         4 valueOf
   * n? {number|undefined} Caller's argument.
   * k? {number|undefined}
   */


  function stringify(x, id, n, k) {
    var e,
        s,
        Big = x.constructor,
        z = !x.c[0];

    if (n !== UNDEFINED) {
      if (n !== ~~n || n < (id == 3) || n > MAX_DP) {
        throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);
      }

      x = new Big(x); // The index of the digit that may be rounded up.

      n = k - x.e; // Round?

      if (x.c.length > ++k) round(x, n, Big.RM); // toFixed: recalculate k as x.e may have changed if value rounded up.

      if (id == 2) k = x.e + n + 1; // Append zeros?

      for (; x.c.length < k;) x.c.push(0);
    }

    e = x.e;
    s = x.c.join('');
    n = s.length; // Exponential notation?

    if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {
      s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e; // Normal notation.
    } else if (e < 0) {
      for (; ++e;) s = '0' + s;

      s = '0.' + s;
    } else if (e > 0) {
      if (++e > n) for (e -= n; e--;) s += '0';else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);
    } else if (n > 1) {
      s = s.charAt(0) + '.' + s.slice(1);
    }

    return x.s < 0 && (!z || id == 4) ? '-' + s : s;
  } // Prototype/instance methods

  /*
   * Return a new Big whose value is the absolute value of this Big.
   */


  P.abs = function () {
    var x = new this.constructor(this);
    x.s = 1;
    return x;
  };
  /*
   * Return 1 if the value of this Big is greater than the value of Big y,
   *       -1 if the value of this Big is less than the value of Big y, or
   *        0 if they have the same value.
  */


  P.cmp = function (y) {
    var isneg,
        x = this,
        xc = x.c,
        yc = (y = new x.constructor(y)).c,
        i = x.s,
        j = y.s,
        k = x.e,
        l = y.e; // Either zero?

    if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i; // Signs differ?

    if (i != j) return i;
    isneg = i < 0; // Compare exponents.

    if (k != l) return k > l ^ isneg ? 1 : -1;
    j = (k = xc.length) < (l = yc.length) ? k : l; // Compare digit by digit.

    for (i = -1; ++i < j;) {
      if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;
    } // Compare lengths.


    return k == l ? 0 : k > l ^ isneg ? 1 : -1;
  };
  /*
   * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,
   * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
   */


  P.div = function (y) {
    var x = this,
        Big = x.constructor,
        a = x.c,
        // dividend
    b = (y = new Big(y)).c,
        // divisor
    k = x.s == y.s ? 1 : -1,
        dp = Big.DP;
    if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); // Divisor is zero?

    if (!b[0]) throw Error(DIV_BY_ZERO); // Dividend is 0? Return +-0.

    if (!a[0]) return new Big(k * 0);
    var bl,
        bt,
        n,
        cmp,
        ri,
        bz = b.slice(),
        ai = bl = b.length,
        al = a.length,
        r = a.slice(0, bl),
        // remainder
    rl = r.length,
        q = y,
        // quotient
    qc = q.c = [],
        qi = 0,
        d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result

    q.s = k;
    k = d < 0 ? 0 : d; // Create version of divisor with leading zero.

    bz.unshift(0); // Add zeros to make remainder as long as divisor.

    for (; rl++ < bl;) r.push(0);

    do {
      // n is how many times the divisor goes into current remainder.
      for (n = 0; n < 10; n++) {
        // Compare divisor and remainder.
        if (bl != (rl = r.length)) {
          cmp = bl > rl ? 1 : -1;
        } else {
          for (ri = -1, cmp = 0; ++ri < bl;) {
            if (b[ri] != r[ri]) {
              cmp = b[ri] > r[ri] ? 1 : -1;
              break;
            }
          }
        } // If divisor < remainder, subtract divisor from remainder.


        if (cmp < 0) {
          // Remainder can't be more than 1 digit longer than divisor.
          // Equalise lengths using divisor with extra leading zero?
          for (bt = rl == bl ? b : bz; rl;) {
            if (r[--rl] < bt[rl]) {
              ri = rl;

              for (; ri && !r[--ri];) r[ri] = 9;

              --r[ri];
              r[rl] += 10;
            }

            r[rl] -= bt[rl];
          }

          for (; !r[0];) r.shift();
        } else {
          break;
        }
      } // Add the digit n to the result array.


      qc[qi++] = cmp ? n : ++n; // Update the remainder.

      if (r[0] && cmp) r[rl] = a[ai] || 0;else r = [a[ai]];
    } while ((ai++ < al || r[0] !== UNDEFINED) && k--); // Leading zero? Do not remove if result is simply zero (qi == 1).


    if (!qc[0] && qi != 1) {
      // There can't be more than one zero.
      qc.shift();
      q.e--;
    } // Round?


    if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);
    return q;
  };
  /*
   * Return true if the value of this Big is equal to the value of Big y, otherwise return false.
   */


  P.eq = function (y) {
    return !this.cmp(y);
  };
  /*
   * Return true if the value of this Big is greater than the value of Big y, otherwise return
   * false.
   */


  P.gt = function (y) {
    return this.cmp(y) > 0;
  };
  /*
   * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise
   * return false.
   */


  P.gte = function (y) {
    return this.cmp(y) > -1;
  };
  /*
   * Return true if the value of this Big is less than the value of Big y, otherwise return false.
   */


  P.lt = function (y) {
    return this.cmp(y) < 0;
  };
  /*
   * Return true if the value of this Big is less than or equal to the value of Big y, otherwise
   * return false.
   */


  P.lte = function (y) {
    return this.cmp(y) < 1;
  };
  /*
   * Return a new Big whose value is the value of this Big minus the value of Big y.
   */


  P.minus = P.sub = function (y) {
    var i,
        j,
        t,
        xlty,
        x = this,
        Big = x.constructor,
        a = x.s,
        b = (y = new Big(y)).s; // Signs differ?

    if (a != b) {
      y.s = -b;
      return x.plus(y);
    }

    var xc = x.c.slice(),
        xe = x.e,
        yc = y.c,
        ye = y.e; // Either zero?

    if (!xc[0] || !yc[0]) {
      // y is non-zero? x is non-zero? Or both are zero.
      return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);
    } // Determine which is the bigger number. Prepend zeros to equalise exponents.


    if (a = xe - ye) {
      if (xlty = a < 0) {
        a = -a;
        t = xc;
      } else {
        ye = xe;
        t = yc;
      }

      t.reverse();

      for (b = a; b--;) t.push(0);

      t.reverse();
    } else {
      // Exponents equal. Check digit by digit.
      j = ((xlty = xc.length < yc.length) ? xc : yc).length;

      for (a = b = 0; b < j; b++) {
        if (xc[b] != yc[b]) {
          xlty = xc[b] < yc[b];
          break;
        }
      }
    } // x < y? Point xc to the array of the bigger number.


    if (xlty) {
      t = xc;
      xc = yc;
      yc = t;
      y.s = -y.s;
    }
    /*
     * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only
     * needs to start at yc.length.
     */


    if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0; // Subtract yc from xc.

    for (b = i; j > a;) {
      if (xc[--j] < yc[j]) {
        for (i = j; i && !xc[--i];) xc[i] = 9;

        --xc[i];
        xc[j] += 10;
      }

      xc[j] -= yc[j];
    } // Remove trailing zeros.


    for (; xc[--b] === 0;) xc.pop(); // Remove leading zeros and adjust exponent accordingly.


    for (; xc[0] === 0;) {
      xc.shift();
      --ye;
    }

    if (!xc[0]) {
      // n - n = +0
      y.s = 1; // Result must be zero.

      xc = [ye = 0];
    }

    y.c = xc;
    y.e = ye;
    return y;
  };
  /*
   * Return a new Big whose value is the value of this Big modulo the value of Big y.
   */


  P.mod = function (y) {
    var ygtx,
        x = this,
        Big = x.constructor,
        a = x.s,
        b = (y = new Big(y)).s;
    if (!y.c[0]) throw Error(DIV_BY_ZERO);
    x.s = y.s = 1;
    ygtx = y.cmp(x) == 1;
    x.s = a;
    y.s = b;
    if (ygtx) return new Big(x);
    a = Big.DP;
    b = Big.RM;
    Big.DP = Big.RM = 0;
    x = x.div(y);
    Big.DP = a;
    Big.RM = b;
    return this.minus(x.times(y));
  };
  /*
   * Return a new Big whose value is the value of this Big plus the value of Big y.
   */


  P.plus = P.add = function (y) {
    var t,
        x = this,
        Big = x.constructor,
        a = x.s,
        b = (y = new Big(y)).s; // Signs differ?

    if (a != b) {
      y.s = -b;
      return x.minus(y);
    }

    var xe = x.e,
        xc = x.c,
        ye = y.e,
        yc = y.c; // Either zero? y is non-zero? x is non-zero? Or both are zero.

    if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);
    xc = xc.slice(); // Prepend zeros to equalise exponents.
    // Note: reverse faster than unshifts.

    if (a = xe - ye) {
      if (a > 0) {
        ye = xe;
        t = yc;
      } else {
        a = -a;
        t = xc;
      }

      t.reverse();

      for (; a--;) t.push(0);

      t.reverse();
    } // Point xc to the longer array.


    if (xc.length - yc.length < 0) {
      t = yc;
      yc = xc;
      xc = t;
    }

    a = yc.length; // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.

    for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0; // No need to check for zero, as +x + +y != 0 && -x + -y != 0


    if (b) {
      xc.unshift(b);
      ++ye;
    } // Remove trailing zeros.


    for (a = xc.length; xc[--a] === 0;) xc.pop();

    y.c = xc;
    y.e = ye;
    return y;
  };
  /*
   * Return a Big whose value is the value of this Big raised to the power n.
   * If n is negative, round to a maximum of Big.DP decimal places using rounding
   * mode Big.RM.
   *
   * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.
   */


  P.pow = function (n) {
    var x = this,
        one = new x.constructor(1),
        y = one,
        isneg = n < 0;
    if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');
    if (isneg) n = -n;

    for (;;) {
      if (n & 1) y = y.times(x);
      n >>= 1;
      if (!n) break;
      x = x.times(x);
    }

    return isneg ? one.div(y) : y;
  };
  /*
   * Return a new Big whose value is the value of this Big rounded using rounding mode rm
   * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a
   * multiple of 10**-dp.
   * If dp is not specified, round to 0 decimal places.
   * If rm is not specified, use Big.RM.
   *
   * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.
   * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)
   */


  P.round = function (dp, rm) {
    var Big = this.constructor;
    if (dp === UNDEFINED) dp = 0;else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);
    return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);
  };
  /*
   * Return a new Big whose value is the square root of the value of this Big, rounded, if
   * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
   */


  P.sqrt = function () {
    var r,
        c,
        t,
        x = this,
        Big = x.constructor,
        s = x.s,
        e = x.e,
        half = new Big(0.5); // Zero?

    if (!x.c[0]) return new Big(x); // Negative?

    if (s < 0) throw Error(NAME + 'No square root'); // Estimate.

    s = Math.sqrt(x + ''); // Math.sqrt underflow/overflow?
    // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.

    if (s === 0 || s === 1 / 0) {
      c = x.c.join('');
      if (!(c.length + e & 1)) c += '0';
      s = Math.sqrt(c);
      e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);
      r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);
    } else {
      r = new Big(s);
    }

    e = r.e + (Big.DP += 4); // Newton-Raphson iteration.

    do {
      t = r;
      r = half.times(t.plus(x.div(t)));
    } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));

    return round(r, Big.DP -= 4, Big.RM);
  };
  /*
   * Return a new Big whose value is the value of this Big times the value of Big y.
   */


  P.times = P.mul = function (y) {
    var c,
        x = this,
        Big = x.constructor,
        xc = x.c,
        yc = (y = new Big(y)).c,
        a = xc.length,
        b = yc.length,
        i = x.e,
        j = y.e; // Determine sign of result.

    y.s = x.s == y.s ? 1 : -1; // Return signed 0 if either 0.

    if (!xc[0] || !yc[0]) return new Big(y.s * 0); // Initialise exponent of result as x.e + y.e.

    y.e = i + j; // If array xc has fewer digits than yc, swap xc and yc, and lengths.

    if (a < b) {
      c = xc;
      xc = yc;
      yc = c;
      j = a;
      a = b;
      b = j;
    } // Initialise coefficient array of result with zeros.


    for (c = new Array(j = a + b); j--;) c[j] = 0; // Multiply.
    // i is initially xc.length.


    for (i = b; i--;) {
      b = 0; // a is yc.length.

      for (j = a + i; j > i;) {
        // Current sum of products at this digit position, plus carry.
        b = c[j] + yc[i] * xc[j - i - 1] + b;
        c[j--] = b % 10; // carry

        b = b / 10 | 0;
      }

      c[j] = (c[j] + b) % 10;
    } // Increment result exponent if there is a final carry, otherwise remove leading zero.


    if (b) ++y.e;else c.shift(); // Remove trailing zeros.

    for (i = c.length; !c[--i];) c.pop();

    y.c = c;
    return y;
  };
  /*
   * Return a string representing the value of this Big in exponential notation to dp fixed decimal
   * places and rounded using Big.RM.
   *
   * dp? {number} Integer, 0 to MAX_DP inclusive.
   */


  P.toExponential = function (dp) {
    return stringify(this, 1, dp, dp);
  };
  /*
   * Return a string representing the value of this Big in normal notation to dp fixed decimal
   * places and rounded using Big.RM.
   *
   * dp? {number} Integer, 0 to MAX_DP inclusive.
   *
   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
   */


  P.toFixed = function (dp) {
    return stringify(this, 2, dp, this.e + dp);
  };
  /*
   * Return a string representing the value of this Big rounded to sd significant digits using
   * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent
   * the integer part of the value in normal notation.
   *
   * sd {number} Integer, 1 to MAX_DP inclusive.
   */


  P.toPrecision = function (sd) {
    return stringify(this, 3, sd, sd - 1);
  };
  /*
   * Return a string representing the value of this Big.
   * Return exponential notation if this Big has a positive exponent equal to or greater than
   * Big.PE, or a negative exponent equal to or less than Big.NE.
   * Omit the sign for negative zero.
   */


  P.toString = function () {
    return stringify(this);
  };
  /*
   * Return a string representing the value of this Big.
   * Return exponential notation if this Big has a positive exponent equal to or greater than
   * Big.PE, or a negative exponent equal to or less than Big.NE.
   * Include the sign for negative zero.
   */


  P.valueOf = P.toJSON = function () {
    return stringify(this, 4);
  }; // Export


  Big = _Big_();
  Big['default'] = Big.Big = Big; //AMD.

  if (true) {
    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
      return Big;
    }).call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // Node and other CommonJS-like environments that support module.exports.
  } else {}
})(this);

/***/ }),

/***/ "nrFN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export CHANGEABLE_ATTRIBUTES_PS */
/* unused harmony export CHANGEABLE_ATTRIBUTES_AI */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CHANGEABLE_ATTRIBUTES_ID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return WORKFLOW; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return EVENT_TYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return INGEST_ACTION_TYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return IngestUtil; });
/* harmony import */ var _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0B1G");
/* harmony import */ var _utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5MlJ");
/* harmony import */ var _hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("U05r");
/* harmony import */ var _utils_JsUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("b6PM");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const CHANGEABLE_ATTRIBUTES_PS = {
    width: true,
    height: true,
    mode: true,
    depth: true,
    units: true,
    profile: true,
    scale: true,
    fill: true,
    resolution: true,
    resolutionUnits: true,
    artboards: true,
};
const CHANGEABLE_ATTRIBUTES_AI = {
    width: true,
    height: true,
    mode: true,
    depth: true,
    units: true,
    profile: true,
    appSpecificKey: {
        rasterEffectSettings: true,
        previewMode: true,
        bleedOffset: true,
    },
    numArtboards: true,
};
const CHANGEABLE_ATTRIBUTES_ID = {
    width: true,
    height: true,
    bTall: true,
    units: true,
    num_pages: true,
    start_page_num: true,
    facing_pages: true,
    pages_per_spread: true,
    auto_text_frame: true,
    columns: true,
    gutter: true,
    uniform_bleed: true,
    uniform_margins: true,
    uniform_slug: true,
    slug_offset: {
        top: true,
        bottom: true,
        left: true,
        right: true,
    },
    bleed_offset: {
        top: true,
        bottom: true,
        left: true,
        right: true,
    },
    margins: {
        top: true,
        bottom: true,
        left: true,
        right: true,
    },
};
const WORKFLOW = {
    STOCK: 'stock',
};
const EVENT_TYPE = {
    ERROR: 'error',
};
const INGEST_ACTION_TYPE = {
    STOCK_LOAD: 'stock-load',
    STOCK_COLLECTIONS_LOAD: 'stock-collections-load',
};
/**
 * Collected utility methods for setting FNFT structure data.
 */
class IngestUtil {
    /**
     * Utility method to set the common parameters related to both Preset and Stock template data.
     *
     * @param payload Target Ingest payload object to update.
     * @param data Ource data object.
     */
    setCommonPayloadParameters(payload, data) {
        if (data && Object.keys(data).length > 0) {
            if (data.kind === _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRESET || data.kind === _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].TEMPLATE) {
                payload.cardID = data.id || data.identifier || data.name || data.title || _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRESET;
                payload.cardName = (data.settings && data.settings.name) || data.name || data.title;
                payload.template_category =
                    data.group ||
                        (data.template_category &&
                            (typeof data.template_category === 'string'
                                ? data.template_category
                                : data.template_category[0]));
            }
            payload.cardTypeName = data.activeFilter || data.category;
            if (data.displayPosition) {
                payload.displayMode = data.displayPosition;
            }
        }
    }
    /**
     * Utility method to set the common parameters related to Stock template data.
     *
     * @param payload Target Ingest payload object to update.
     * @param data Source Stock template data object.
     */
    setCommonStockPayloadParameters(payload, data) {
        this.setCommonPayloadParameters(payload, data);
        payload.displayTemplate = 'stock-template';
        if (data && data.price_prompt) {
            payload.attributes = {
                price: data.price_prompt,
            };
        }
    }
    /**
     * Utility method to set the common parameters related to Preset data.
     *
     * @param payload Target Ingest payload object to update.
     * @param data Source preset data object.
     */
    setCommonPresetPayloadParameters(payload, data) {
        this.setCommonPayloadParameters(payload, data);
        payload.displayTemplate = _interfaces_DocumentTemplateKind__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].PRESET;
        payload.attributes = this.pickAttributesFromPreset(data);
        if (data && data.advancedSettingsCollapsed !== undefined) {
            payload.advancedSettingsCollapsed = data.advancedSettingsCollapsed;
        }
        if (data && data.marginsCollapsed !== undefined) {
            payload.marginsCollapsed = data.marginsCollapsed;
        }
        if (data && data.bleedAndSlugCollapsed !== undefined) {
            payload.bleedAndSlugCollapsed = data.bleedAndSlugCollapsed;
        }
        // check for the 'settings' data added which indicates a preset MAY have changed
        if (data && data.settings && Object.keys(data.settings).length !== 0 && data.settings.constructor === Object) {
            const newAttributes = this.pickAttributesFromPreset(data.settings);
            payload.attributesChanged =
                data.settings.isModified !== undefined
                    ? data.settings.isModified
                    : !Object(_utils_JsUtils__WEBPACK_IMPORTED_MODULE_3__[/* objectIsContained */ "i"])(newAttributes, payload.attributes);
            // only add changed attributes if there were actual changes
            if (payload.attributesChanged) {
                payload.newAttributes = newAttributes;
            }
        }
    }
    /**
     * Utility method to set only the parameters on the 'attributes' object that we care about.
     *
     * @param preset Source preset data object.
     * @returns Object containing the preset attributes.
     */
    pickAttributesFromPreset(preset = {}) {
        const hostAttributes = {
            [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].PHOTOSHOP]: CHANGEABLE_ATTRIBUTES_PS,
            [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].ILLUSTRATOR]: CHANGEABLE_ATTRIBUTES_AI,
            [_hosts_HostNames__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].INDESIGN]: CHANGEABLE_ATTRIBUTES_ID,
        };
        const hostName = Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_1__[/* getHostName */ "d"])();
        const acceptedAttributes = hostAttributes[hostName] || CHANGEABLE_ATTRIBUTES_PS;
        return Object(_utils_JsUtils__WEBPACK_IMPORTED_MODULE_3__[/* pickPropertiesFromObject */ "j"])(preset, acceptedAttributes);
    }
    /**
     * Assign error information to correct field
     * @param payload  {Object} Ingest payload to append to
     * @param err {CmdnError | string} Error object
     */
    parseError(payload, err) {
        if (payload && err) {
            const errObj = typeof err === 'string' ? { desc: err } : err;
            let errorDesc = '';
            if (typeof errObj === 'object') {
                if (errObj.errorResponse && errObj.errorResponse instanceof Error) {
                    errorDesc = `${this._scrubStack(errObj.desc)} : ${errObj.errorResponse.message}`;
                }
                else
                    errorDesc = this._scrubStack(errObj.desc);
            }
            else
                errorDesc = this._scrubStack(errObj);
            Object.assign(payload, {
                'event.error_code': errObj.code,
                'event.error_type': errObj.type,
                'event.error_desc': errorDesc,
                'event.value': this._scrubStack(errObj.extra),
            });
        }
    }
    /**
     * Scrub the analytics error stack trace of user file paths
     * @param err {CmdnError | String} Error to be scrubbed
     * @return {String} Scrubbed error
     */
    _scrubStack(err) {
        if (err) {
            if (typeof err === 'object') {
                if (err instanceof Error) {
                    err = err.message;
                }
                else
                    err = JSON.stringify(err);
            }
            else
                err = err.toString();
            return err.replace(/[A-Z]?\:?(\\{1,2}|\/).*\1/g, '<redacted>/').trim();
        }
        return err;
    }
}


/***/ }),

/***/ "nvTU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("KYvK"),
      24: __webpack_require__("giCC")
    }
  }));
};

WrappedIcon.displayName = 'LinkOff';
exports.default = WrappedIcon;

/***/ }),

/***/ "oaX6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var metadata_1 = __webpack_require__("GXnB");

var decorator_utils_1 = __webpack_require__("Ztfv");

function targetName(name) {
  return function (target, targetKey, index) {
    var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);
    decorator_utils_1.tagParameter(target, targetKey, index, metadata);
  };
}

exports.targetName = targetName;

/***/ }),

/***/ "ovpn":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return IOC_TYPES; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const IOC_TYPES = {
    PresetsControllerInterface: Symbol.for('PresetsControllerInterface'),
    PresetCardProviderInterface: Symbol.for('PresetCardProviderInterface'),
};



/***/ }),

/***/ "oy+k":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var id_1 = __webpack_require__("d9O0");

var Context = function () {
  function Context(container) {
    this.id = id_1.id();
    this.container = container;
  }

  Context.prototype.addPlan = function (plan) {
    this.plan = plan;
  };

  Context.prototype.setCurrentRequest = function (currentRequest) {
    this.currentRequest = currentRequest;
  };

  return Context;
}();

exports.Context = Context;

/***/ }),

/***/ "pUl/":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MeasurementIDS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Performance; });
/* unused harmony export Time */
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils_JsUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("b6PM");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const MeasurementIDS = {
    DataTime: 'all data loaded',
    HostData: 'host data',
    HostPresetData: 'host preset data',
    StockData: 'stock data',
    LicensedData: 'licensed templates',
    LoadLibraryFile: 'CC Libraries script load',
    InitLibrary: 'CC Libraries init',
    RetrieveLicensedTemplate: 'retreive licensed template',
    TemplateFixup: 'template fixup',
    TemplateCollectionFixup: 'template fixup for template from collection',
    InitHost: 'host init',
    InitStock: 'stock init',
    JSLibLateLoad: 'JS scripts late load',
    InitLicensed: 'licensed templates init',
    LoadTime: 'total load time',
    InteractiveTime: 'interactive ready',
    IngestConfig: 'Ingest config',
    i18nJSON: 'i18n json',
    RiotMountApp: 'riot.mount.app',
    StockDataRequest: 'stock data request',
    PostStockData: 'postprocess stock data',
    StockCollectionsData: 'stock collections data',
    LicensedCollectionsData: 'licensed collections data',
};
class Performance {
    /**
     * Returns start mark used to compute the global time.
     *
     * @returns Global start mark.
     */
    static get markStart() {
        return this._startMark;
    }
    /**
     * Sets the start mark from which we compute the global time.
     *
     * @param start The start mark.
     */
    static set markStart(start) {
        this._startMark = start || window.performance.now();
    }
    /**
     * Returns the global time changed from the start.
     *
     * @returns The global time.
     */
    static get _globalDelta() {
        const now = window.performance.now();
        let delta = 0;
        if (Performance.markStart) {
            delta = Math.round(now - Performance.markStart);
        }
        return delta;
    }
    /**
     * Tracks a measurement.
     *
     * @param measureId The id of the measurement.
     */
    static track(measureId, trackRequestId = false) {
        if (trackRequestId) {
            const requestId = Object(_utils_JsUtils__WEBPACK_IMPORTED_MODULE_1__[/* generateGUID */ "f"])();
            Performance._trackings[Performance.getUniqueId(measureId, requestId)] = {
                time: performance.now(),
                requestId,
            };
            Performance._measurements.push({
                mode: 'track',
                id: measureId,
                globalDelta: Performance._globalDelta,
                requestId,
            });
            return requestId;
        }
        else {
            // no request IDs here
            Performance._trackings[measureId] = {
                time: performance.now(),
            };
            Performance._measurements.push({
                mode: 'track',
                id: measureId,
                globalDelta: Performance._globalDelta,
            });
        }
        return undefined;
    }
    /**
     * Sets a measurement.
     *
     * @param measureId The id of the measurement.
     * @param value The value of the measurement.
     */
    static setMeasurement(measureId, value) {
        Performance._measurements.push({
            mode: 'track',
            id: measureId,
            globalDelta: Performance._globalDelta,
        });
        Performance._measurements.push({
            mode: 'measure',
            id: measureId,
            deltaT: Math.round(value),
            globalDelta: Performance._globalDelta,
        });
    }
    /**
     * Gets the last measurement of the given id.
     *
     * @param measureId The id of the measurement.
     */
    static getLatestMeasurement(measureId) {
        if (!Performance.isTracked(measureId)) {
            Performance._logger.warn(`Trying to read measurement for ${measureId} but there is not tracking set for this id`);
            return -1;
        }
        const measurementIndex = Performance._measurements.findIndex(measurement => measurement.id === measureId && measurement.mode === 'measure');
        if (measurementIndex >= 0) {
            return Performance._measurements[measurementIndex].deltaT || 0;
        }
        return -1;
    }
    /**
     * Measures the tracked measurement.
     *
     * @param measureId The id of the measurement.
     */
    static measure(measureId, requestId) {
        var _a;
        if (!Performance.isTracked(measureId, requestId)) {
            Performance._logger.warn(`Trying to measure ${measureId} with request ID ${requestId} but there is not tracking set for this id`);
            return;
        }
        const id = Performance.getUniqueId(measureId, requestId);
        const start = (_a = Performance._trackings[id]) === null || _a === void 0 ? void 0 : _a.time;
        const newMeasurement = {
            mode: 'measure',
            id: measureId,
            deltaT: Math.round(performance.now() - start),
            globalDelta: Performance._globalDelta,
            requestId,
        };
        const measurementIndex = Performance._measurements.findIndex(measurement => measurement.id === measureId && measurement.mode === 'measure' && measurement.requestId === requestId);
        if (measurementIndex >= 0) {
            // if we already have a measurement for this value, keep the largest of the two
            if ((Performance._measurements[measurementIndex].deltaT || 0) <= newMeasurement.deltaT) {
                // remove the previous measurement
                Performance._measurements.splice(measurementIndex, 1);
                // also remove the tracking, the new measurement already has a tracking entry
                const trackingIndex = Performance._measurements.findIndex(measurement => measurement.id === measureId && measurement.mode === 'track');
                Performance._measurements.splice(trackingIndex, 1);
                // add the new measurement
                Performance._measurements.push(newMeasurement);
            }
            else {
                // we're discarding this measurement, so remove the tracking for it
                let lastTrackingIndex = Performance._measurements.length - 1;
                while (lastTrackingIndex >= 0) {
                    const measurement = Performance._measurements[lastTrackingIndex];
                    if (measurement.id === measureId && measurement.mode === 'track') {
                        break;
                    }
                    lastTrackingIndex--;
                }
                if (lastTrackingIndex >= 0) {
                    Performance._measurements.splice(lastTrackingIndex, 1);
                }
            }
        }
        else {
            Performance._measurements.push(newMeasurement);
        }
    }
    /**
     * Wrapper to manually time an asynchronous function.
     *
     * @param name Key to time with.
     * @param method Asynchronous function to time.
     * @param [logArgs] Arguments to log.
     * @returns Promise with the result of the function.
     */
    static async measureAsync(name, method, logArgs) {
        const asyncFlow = console.AsyncTrace
            ? new console.AsyncTrace()
            : console;
        asyncFlow.time(name);
        const start = performance.now();
        Performance._logger.log(`${Math.round(start - Performance.markStart)} PERF - ${name} start`);
        Performance._measurements.push({
            mode: 'track',
            id: name,
            globalDelta: Performance._globalDelta,
        });
        try {
            const result = await method();
            const done = performance.now();
            const time = done - start;
            // logPerfEventToIngest(time, name, logArgs);
            Performance._logger.log(`${Math.round(done - Performance.markStart)} PERF - ${name} done: ${time} ${logArgs || ''}`);
            asyncFlow.timeEnd(name);
            Performance._measurements.push({
                mode: 'track',
                id: name,
                deltaT: Math.round(done - Performance.markStart),
                globalDelta: Performance._globalDelta,
            });
            return result;
        }
        catch (error) {
            throw new Error(error);
        }
    }
    static get measurements() {
        return this._measurements;
    }
    static get uniqueMeasurements() {
        var _a;
        let measurementMap;
        try {
            measurementMap = (_a = this._measurements) === null || _a === void 0 ? void 0 : _a.reduce((acc, m) => {
                const id = Performance.parseMeasureId(m.id);
                // filter measurements only
                // keep the largest value if we have multiple entries for the same measurement ID
                if (m.mode === 'measure' && (!acc[id] || (m.deltaT && acc[id].deltaT && acc[id].deltaT < m.deltaT))) {
                    acc[id] = m;
                }
                return acc;
            }, {});
        }
        catch (err) {
            // this is silly, but in case parsing fails or some other error occurs here,
            // we catch the error to make sure nothing breaks in the upstream
            return this._measurements;
        }
        return Object.values(measurementMap);
    }
    static clearMeasurements() {
        this._measurements = [];
        this._trackings = {};
    }
    static reportToConsole(records) {
        records.forEach(measurement => {
            switch (measurement.mode) {
                case 'track':
                    this._logger.log(`[${measurement.mode}] ${measurement.globalDelta} ${measurement.requestId || ''} PERF - ${measurement.id}`);
                    break;
                case 'measure':
                    this._logger.log(`[${measurement.mode}] ${measurement.globalDelta} ${measurement.requestId || ''} PERF - ${measurement.id}: ${measurement.deltaT}`);
                    break;
            }
        });
    }
    /**
     * Returns true if the measure is already tracked.
     *
     * @param measureId The id of the measurement.
     * @returns True if the measure is already tracked, false otherwise.
     */
    static isTracked(measureId, requestId) {
        const id = Performance.getUniqueId(measureId, requestId);
        const tracking = Performance._trackings[id];
        return !!(requestId ? (tracking === null || tracking === void 0 ? void 0 : tracking.requestId) === requestId : tracking);
    }
    /**
     * For Stock requests, we'll track multiple requests at a time. To be able to match requests with responses,
     * we also add request IDs to the measurements.
     * The final ID will be in this format: 'stock data_1a4d0b566616422e9067c5cf2fb85270'
     * @param measureId
     * @param requestId
     * @returns
     */
    static getUniqueId(measureId, requestId) {
        return requestId ? `${measureId}_${requestId}` : measureId;
    }
    /**
     * Parse the name of the measurement from a unique ID generated as above.
     * We'll either have an entry without a request ID: 'load time', or an entry containing the ID: 'stock data_1a4d0b566616422e9067c5cf2fb85270'
     * @param uniqueId
     * @returns
     */
    static parseMeasureId(uniqueId) {
        const tokens = (uniqueId === null || uniqueId === void 0 ? void 0 : uniqueId.split('_')) || [];
        return (tokens === null || tokens === void 0 ? void 0 : tokens.length) > 0 ? tokens[0] : '';
    }
}
Performance._logger = js_logger__WEBPACK_IMPORTED_MODULE_0___default.a.get('Performance');
Performance._trackings = {};
Performance._measurements = [];
/**
 * Decorator that times asynchronous functions.
 *
 * @param key Key to time with.
 * @param [injectArgs=false] Indicates whether or not the async function arguments are passed to Performance.measureAsync.
 * @returns Timed asynchronous function.
 */
function Time(key, injectArgs = false) {
    return function (target, functionName, descriptor) {
        const x = descriptor.value;
        descriptor.value = async function (...args) {
            const self = this;
            return Performance.measureAsync(key, async () => x.apply(self, args), injectArgs ? args : undefined);
        };
    };
}


/***/ }),

/***/ "qAfu":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CCXP_CACHE_PATH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CCXP_STOCK_FOLDER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CCXP_READ_API_FILE_NAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return CCXP_WRITE_API_FOLDER_NAME; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return VULCAN_STOCK_TEMPLATE_REQUEST; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return VULCAN_STOCK_TEMPLATE_RESPONSE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CCXP_VULCAN_SPECIFIER; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return STOCK_RESPONSE_TIMEOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return PATH_SEPARATOR; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Stock API search parameters.
 *
 * @type {object}
 */
const searchParam = {
    MEDIA_ID: 'search_parameters[media_id]',
    RESULTS_COLUMN: 'result_columns',
    THUMBNAIL_SIZE_BULK: 'thumbnail_size',
    IDS: 'ids',
    FILTER_PHOTO: 'search_parameters[filters][content_type:photo]',
    FILTER_ILLUSTRATION: 'search_parameters[filters][content_type:illustration]',
    FILTER_VECTOR: 'search_parameters[filters][content_type:zip_vector]',
    FILTER_VIDEO: 'search_parameters[filters][content_type:video]',
    FILTER_TEMPLATE: 'search_parameters[filters][content_type:template]',
    FILTER_3D: 'search_parameters[filters][content_type:3d]',
    THUMBNAIL_SIZE_USS: 'search_parameters[thumbnail_size]',
};
/**
 * Values for result_columns[] key.
 *
 * @type {object}
 */
const resultColumns = {
    TITLE: 'title',
    THUMBNAIL_URL: 'thumbnail_url',
    THUMBNAIL_WIDTH: 'thumbnail_width',
    THUMBNAIL_HEIGHT: 'thumbnail_height',
    MEDIA_TYPE_ID: 'media_type_id',
    COMPS: 'comps',
    LICENSES: 'licenses',
    IS_EDITORIAL: 'is_editorial',
    IS_ILLUSTRATIVE: 'is_illustrative',
    PREMIUM_LEVEL_ID: 'premium_level_id',
    TEMPLATE_TYPE_ID: 'template_type_id',
    CONTENT_TYPE: 'content_type',
};
const X_PRODUCT_LOCATION = 'StockPanel/1.0.0';
const THUMBNAIL_SIZE_FOR_BULK_API = 220;
const THUMBNAIL_SIZE_FOR_USS_API = 240;
const stockAPI = {
    searchParam,
    resultColumns,
    X_PRODUCT_LOCATION,
    THUMBNAIL_SIZE_FOR_USS_API,
    THUMBNAIL_SIZE_FOR_BULK_API,
};
const CCXP_CACHE_PATH = {
    WINDOWS: '\\AppData\\Roaming\\Adobe\\CCX Welcome\\',
    MAC: '/Library/Caches/Adobe/CCX Welcome/',
};
const CCXP_STOCK_FOLDER = {
    stage: {
        WINDOWS: 'stage\\stock\\',
        MAC: 'stage/stock/',
    },
    prod: {
        WINDOWS: 'stock\\',
        MAC: 'stock/',
    },
};
const CCXP_READ_API_FILE_NAME = 'api.json';
const CCXP_WRITE_API_FOLDER_NAME = 'clientLogs';
const VULCAN_STOCK_TEMPLATE_REQUEST = 'ccxprocess.StockRequest';
const VULCAN_STOCK_TEMPLATE_RESPONSE = 'ccxprocess.StockResponse';
const CCXP_VULCAN_SPECIFIER = 'CCXP';
const STOCK_RESPONSE_TIMEOUT = 1000; // 1 second
const PATH_SEPARATOR = {
    WINDOWS: '\\',
    MAC: '/',
};
/* unused harmony default export */ var _unused_webpack_default_export = (stockAPI);


/***/ }),

/***/ "qK8v":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

function isStackOverflowExeption(error) {
  return error instanceof RangeError || error.message === ERROR_MSGS.STACK_OVERFLOW;
}

exports.isStackOverflowExeption = isStackOverflowExeption;

/***/ }),

/***/ "r97P":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("circle", {
  cx: "18",
  cy: "12",
  r: "4"
}), React.createElement("path", {
  d: "M33 4H3a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1zm-1 24h-6v-6a4 4 0 0 0-4-4h-8a4 4 0 0 0-4 4v6H4V6h28z"
}));

/***/ }),

/***/ "sK9T":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export LicenseType */
/* unused harmony export UserState */
/* unused harmony export EntitlementStatus */
/* unused harmony export WorkflowInProgress */
/* unused harmony export ActivationType */
/* unused harmony export BillingStatus */
/* unused harmony export AccountType */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SubscriptionStatus; });
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/* harmony import */ var _utils_Constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Ai3n");
/* harmony import */ var _utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5MlJ");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Enum containing the license types.
 *
 * @enum {number}
 */
var LicenseType;
(function (LicenseType) {
    LicenseType[LicenseType["NONE"] = 0] = "NONE";
    LicenseType[LicenseType["TRIAL"] = 1] = "TRIAL";
    LicenseType[LicenseType["RETAIL_SERIALIZED"] = 2] = "RETAIL_SERIALIZED";
    LicenseType[LicenseType["SUBSCRIPTION"] = 3] = "SUBSCRIPTION";
    LicenseType[LicenseType["VOLUME_SERIALIZED"] = 4] = "VOLUME_SERIALIZED";
    LicenseType[LicenseType["FRL"] = 5] = "FRL";
    LicenseType[LicenseType["UNKNOWN"] = 6] = "UNKNOWN";
})(LicenseType || (LicenseType = {}));
/**
 * Enum containing the user logging states.
 *
 * @enum {string}
 */
var UserState;
(function (UserState) {
    UserState["NO_USER"] = "No User";
    UserState["SIGNED_IN"] = "Signed In";
    UserState["SIGNED_OUT"] = "Signed Out";
    UserState["USER_CHANGED"] = "User Changed";
})(UserState || (UserState = {}));
/**
 * Enum containing Entitlement Status types.
 *
 * @enum {string}
 */
var EntitlementStatus;
(function (EntitlementStatus) {
    EntitlementStatus["TRIAL"] = "TRIAL";
    EntitlementStatus["SUBSCRIPTION"] = "SUBSCRIPTION";
    EntitlementStatus["PERPETUAL"] = "PERPETUAL";
    EntitlementStatus["EXPIRED"] = "EXPIRED";
    EntitlementStatus["DENIED"] = "DENIED";
})(EntitlementStatus || (EntitlementStatus = {}));
/**
 * Enum containing the WorkflowInProgress types.
 *
 * @enum {string}
 */
var WorkflowInProgress;
(function (WorkflowInProgress) {
    WorkflowInProgress["NONE"] = "NONE";
    WorkflowInProgress["HYBRID"] = "HYBRID";
    WorkflowInProgress["INAPP"] = "INAPP";
})(WorkflowInProgress || (WorkflowInProgress = {}));
/**
 * Enum containing the ActivationTypes.
 *
 * @enum {string}
 */
var ActivationType;
(function (ActivationType) {
    ActivationType["NAMED_USER"] = "NAMED_USER";
    ActivationType["FRL_ONLINE"] = "FRL_ONLINE";
    ActivationType["FRL_ISOLATED"] = "FRL_ISOLATED";
    ActivationType["FRL_LAN"] = "FRL_LAN";
    ActivationType["LAB_NAMED_USER"] = "LAB_NAMED_USER";
    ActivationType["FRL_CONNECTED"] = "FRL_CONNECTED";
    ActivationType["FRL_OFFLINE"] = "FRL_OFFLINE";
})(ActivationType || (ActivationType = {}));
/**
 * Enum containing the Billing Status.
 *
 * @enum {string}
 */
var BillingStatus;
(function (BillingStatus) {
    BillingStatus["NORMAL"] = "NORMAL";
    BillingStatus["BILL_FAILURE"] = "BILL_FAILURE";
    BillingStatus["AUTH_FAILURE"] = "AUTH_FAILURE";
    BillingStatus["CC_EXPIRED"] = "CC_EXPIRED";
    BillingStatus["PAYMENT_INSTRUMENT_MISSING"] = "PAYMENT_INSTRUMENT_MISSING";
})(BillingStatus || (BillingStatus = {}));
/**
 * Enum containing the Account Types.
 *
 * @enum {string}
 */
var AccountType;
(function (AccountType) {
    AccountType["TYPE_1"] = "type1";
    AccountType["TYPE_2"] = "type2";
    AccountType["TYPE_3"] = "type3";
    AccountType["TYPE_2E"] = "type2e";
})(AccountType || (AccountType = {}));
/**
 * Enum containing the Subscription Status.
 *
 * @enum {string}
 */
var SubscriptionStatus;
(function (SubscriptionStatus) {
    SubscriptionStatus["PAID"] = "paid";
    SubscriptionStatus["TRIAL"] = "trial";
})(SubscriptionStatus || (SubscriptionStatus = {}));
let lastSignedInUser = '';
const UserModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"]
    .model('User', {
    // NGL Profile see https://wiki.corp.adobe.com/display/NGL/NGL+Components
    RelationshipProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].array(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('RelationshipProfile', {
        // Don't use MST enums for values that are external. We have no control over changes in the profile,
        // and the enums are strict and break the UI when they encounter a value that's not in the list
        appEntitlementStatus: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'DENIED'),
        workflowInProgress: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NONE'),
        activationType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NAMED_USER'),
        profileGenerationTimestamp: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, -1),
        licenseExpiryTimestamp: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, -1),
        billingStatus: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NORMAL'),
        usedForLegacyProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].boolean, false),
    })), []),
    UserProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('UserProfile', {
        firstName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        lastName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        accountType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        countryCode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        displayName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        userEmail: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        userId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
    }), {}),
    LegacyProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('LegacyProfile', {
        licenseType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, LicenseType.UNKNOWN),
    }), {}),
    accessToken: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
    isStaging: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].boolean, false),
    serviceCode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, _utils_Constants__WEBPACK_IMPORTED_MODULE_1__[/* CREATIVE_CLOUD */ "e"]),
})
    .volatile(self => ({
    state: UserState.NO_USER,
    initialized: false,
}))
    .views(self => ({
    get isUserAvailable() {
        return self.UserProfile.userId.length > 0;
    },
    get isEnterprise() {
        return self.UserProfile.accountType !== '' && self.UserProfile.accountType !== AccountType.TYPE_1;
    },
    get isFRL() {
        return Object(_utils_PlatformUtils__WEBPACK_IMPORTED_MODULE_2__[/* isFRLUser */ "e"])(self);
    },
    get subscriptionStatus() {
        return self.LegacyProfile.licenseType === LicenseType.TRIAL
            ? SubscriptionStatus.TRIAL
            : SubscriptionStatus.PAID;
    },
    get fetchOptions() {
        return {
            headers: {
                Authorization: `Bearer ${self.accessToken}`,
            },
        };
    },
}))
    .actions(self => ({
    afterCreate() {
        var _a, _b;
        self.initialized = true;
        self.UserProfile = {
            ...self === null || self === void 0 ? void 0 : self.UserProfile,
            accountType: (_b = (_a = self === null || self === void 0 ? void 0 : self.UserProfile) === null || _a === void 0 ? void 0 : _a.accountType) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
        };
    },
    setStaging(value) {
        self.isStaging = value;
    },
    setAccessToken(value) {
        self.accessToken = value;
    },
    setInitialized(initialized) {
        self.initialized = initialized;
    },
    setUserProfile(data) {
        var _a, _b;
        lastSignedInUser = lastSignedInUser || self.UserProfile.userId;
        self.RelationshipProfile = data.RelationshipProfile;
        self.LegacyProfile = data.LegacyProfile;
        self.UserProfile = {
            ...data === null || data === void 0 ? void 0 : data.UserProfile,
            accountType: (_b = (_a = data === null || data === void 0 ? void 0 : data.UserProfile) === null || _a === void 0 ? void 0 : _a.accountType) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
        };
        if (!lastSignedInUser && self.UserProfile.userId) {
            self.state = UserState.SIGNED_IN;
        }
        else if (lastSignedInUser && !self.UserProfile.userId) {
            self.state = UserState.SIGNED_OUT;
        }
        else if (!lastSignedInUser && !self.UserProfile.userId) {
            self.state = UserState.NO_USER;
        }
        else if (lastSignedInUser !== self.UserProfile.userId) {
            self.state = UserState.USER_CHANGED;
        }
        else {
            self.state = UserState.SIGNED_IN;
        }
    },
    setServiceCode(value) {
        if (value) {
            self.serviceCode = value;
        }
    },
}));
/* harmony default export */ __webpack_exports__["b"] = (UserModel);


/***/ }),

/***/ "t9Qr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ CMDN_AS_CONTENT_STOCK_LINK; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ CMDN_AS_CONTENT_CONTRIBUTOR_LINK; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ Analytics_Analytics; });

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/hosts/index.ts + 6 modules
var hosts = __webpack_require__("Zghy");

// EXTERNAL MODULE: ./node_modules/@ccx-public/ingest/src/Ingest.js
var Ingest = __webpack_require__("7eMN");
var Ingest_default = /*#__PURE__*/__webpack_require__.n(Ingest);

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/IngestUtil.ts
var IngestUtil = __webpack_require__("nrFN");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/PlatformUtils.ts + 1 modules
var PlatformUtils = __webpack_require__("5MlJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/models/UserModel.ts
var UserModel = __webpack_require__("sK9T");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/ims/imsBridge.ts + 3 modules
var imsBridge = __webpack_require__("EgDT");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/Constants.ts
var Constants = __webpack_require__("Ai3n");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/IngestWrapper.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









const CMDN = 'CMDN';
const DESKTOP = 'DESKTOP';
class IngestWrapper_IngestWrapper {
    constructor() {
        this._logger = logger_default.a.get('IngestWrapper');
        this._osType = Object(PlatformUtils["g" /* isWindowsOS */])() ? 'Windows' : 'MacOS';
        this._osVersion = Object(PlatformUtils["h" /* osVersion */])();
        /**
         * Ingest configuration objects.
         */
        this.ingestLibReady = false;
        this.basePayloadData = {
            'source.name': undefined,
            'source.version': undefined,
            'source.platform': this._osType,
            'source.os_version': this._osVersion,
            'consumer.platform': this._osType,
            'consumer.os_version': this._osVersion,
            'user.service_code': Constants["e" /* CREATIVE_CLOUD */],
            'env.com.name': CMDN,
            'env.com.version': window.cmdnAppVersionNumber,
            'event.workflow': CMDN,
            'event.category': DESKTOP,
            'event.subcategory': CMDN,
            'event.value': undefined,
            'event.guid': undefined,
            'event.type': undefined,
            'event.subtype': undefined,
            'event.user_guid': undefined,
            'content.id': undefined,
            'content.name': undefined,
            'content.type': undefined,
            'content.category': undefined,
            'content.status': undefined,
            'content.action': undefined,
            'content.author': undefined,
            'env.fw.name': undefined,
            displayCount: 0,
        };
        this.renderedCards = {}; // map of rendered card events
        // since many things load asynchronously, some event actions can happen before
        // the Ingest lib scripts have completed - therefore we pre-queue some events
        // that get processed once the lib is ready
        this.prequeuedEvents = [];
        /**
         * Collected utility methods for setting FNFT structure data.
         */
        this.ingestUtil = new IngestUtil["e" /* default */]();
    }
    /**
     * Configure Ingest for future analytics calls.
     *
     * @param client Client ID string.
     * @param hostData Data from the host.
     * @param user UserModel.
     * @param defaultAppSettings Default application settings.
     * @param cmdnVersion CMDN app version.
     * @param psdkData PSDK Data - TBD if it's used.
     * @returns Whether analytics is enabled or not. Undefined if the user isn't logged in or we have a FRL license.
     */
    async configure(client, hostData, user, defaultAppSettings, cmdnVersion, psdkData) {
        const mode = user.isStaging ? 'stage' : 'prod';
        this.psdkData = psdkData;
        // Ingest.js library configuration
        const options = {
            ENVIRONMENT: mode,
            ANALYTICS_API_KEY: client,
            ANALYTICS_X_PRODUCT: `${hostData.id}%2F${hostData.version}`,
            ANALYTICS_PROJECT: 'ccx-cmdn-service',
            ANALYTICS_USER_REGION: user.UserProfile.countryCode ? user.UserProfile.countryCode : 'UNKNOWN',
            ANALYTICS_INGEST_TYPE: 'dunamis',
            ANALYTICS_MAX_QUEUED_EVENTS: 150,
            ANALYTICS_DEBOUNCE: 0,
            TIMESTAMP_PROPERTY_NAME: 'timestamp',
            ALLOW_NO_TOKEN: true,
        };
        const dependencies = {
            log: (msg) => {
                this._logger.debug(msg);
            },
            getAccessToken: (callback) => {
                // There is a bug in the ingest module where it can crash if not
                // given a valid token https://jira.corp.adobe.com/browse/IAW-4042
                // So we need this try catch here.
                try {
                    callback(null, user && user.accessToken);
                }
                catch (e) {
                    this._logger.error(`Ingest crashed with error ${e}`);
                }
            },
        };
        // We don't have to wait for the user profile, because we've already received it in the Store before configuring Analytics.
        // If the user isn't logged in or we have a FRL license, don't continue.
        if (!user.isUserAvailable || user.isFRL) {
            return false;
        }
        const enabled = await hosts["a" /* default */].isAnalyticsEnabled();
        try {
            // Get Ingest instance (Ingest supports multiple instances since v1.0)
            this.instance = new Ingest_default.a(dependencies, options);
            this.instance.enable(enabled);
            // TODO
            //  this.basePayloadData.subscriptionStatus = hostData.accountStatus;
            // this.basePayloadData.productName = hostData.hostID;
            // this.basePayloadData.productVersion = hostData.appVersion;
            // this.basePayloadData.productLanguage = hostData.language;
            // this.basePayloadData.radarVersion = hostData.radarVersion;
            // this.basePayloadData.modeID = hostData.displayMode;
            // this.basePayloadData.radarSessionGUID = hostData.radarSessionGUID;
            // this.basePayloadData.appSessionGUID = hostData.sessionGUID;
            this.basePayloadData['env.com.version'] = cmdnVersion;
            this.basePayloadData['source.client_id'] = imsBridge["c" /* default */].clientId;
            this.basePayloadData['consumer.client_id'] = imsBridge["c" /* default */].clientId;
            this.basePayloadData['source.name'] = hostData.id;
            this.basePayloadData['consumer.name'] = hostData.id;
            this.basePayloadData['source.version'] = hostData.version;
            this.basePayloadData['consumer.version'] = hostData.version;
            this.basePayloadData['user.service_level'] = `CS_LVL${user.LegacyProfile.licenseType}`;
            this.basePayloadData['event.user_guid'] = user.UserProfile.userId;
            this.basePayloadData['event.user_agent'] = navigator.userAgent;
            this.basePayloadData['event.language'] = hostData.language;
            this.basePayloadData['event.context_guid'] = defaultAppSettings.sessionGUID;
            this.basePayloadData['event.session_guid'] = defaultAppSettings.radarSessionGUID;
            this.basePayloadData.displayCount = hosts["a" /* default */].appStorageController.getWelcomeDisplayCount();
            if (hostData.displayMode !== 'fnft') {
                this.basePayloadData.appLaunchCount = hostData.launchCount;
            }
            this.basePayloadData.AUMSegments = null;
            this.basePayloadData.hvaFlow = null;
            this.basePayloadData.displayMode = null;
            if (psdkData) {
                this.basePayloadData.AUMSegments = psdkData.segmentID || 'none';
                this.basePayloadData.hvaFlow = psdkData.hvaFlow || 'none';
                // find the control card section for this display mode
                for (let index = 0; index < psdkData.cardControl.length && !this.basePayloadData.displayMode; index++) {
                    if (psdkData.cardControl[index].modeID === hostData.displayMode) {
                        this.basePayloadData.displayMode = psdkData.cardControl[index].cardOrder.toString();
                    }
                }
            }
            // we only want to add the trialEndDts parameter if we are a trial account
            if (hostData.accountStatus !== UserModel["a" /* SubscriptionStatus */].PAID && hostData.secondsLeftInTrial !== undefined) {
                this.basePayloadData.trialEndDts = Object(JsUtils["g" /* getTrialEndDate */])(hostData.secondsLeftInTrial);
            }
            // use the serviceCode stored in the user model
            this.basePayloadData['user.service_code'] = user.serviceCode || Constants["e" /* CREATIVE_CLOUD */];
            this._logger.log(`cmdn.analytics.ingest: (${mode}) ${enabled ? 'active' : 'disabled'}`);
            this.ingestLibReady = true;
            if (enabled) {
                // now handle any prequeued events
                this.processPrequeuedEvents();
            }
        }
        catch (error) {
            this._logger.error(error);
        }
        return enabled;
    }
    /**
     * Create a clone of the Ingest base payload data.
     *
     * @param needsAEMData Boolean flag to indicated that AEM card data is needed in the payload.
     * @returns A new object based off the preset payload data.
     */
    createPayload(needsAEMData) {
        const payload = JSON.parse(JSON.stringify(this.basePayloadData));
        payload['event.guid'] = Object(JsUtils["f" /* generateGUID */])();
        payload['event.dts_start'] = Object(JsUtils["e" /* formatTimeStamp */])(new Date());
        payload['event.dts_end'] = Object(JsUtils["e" /* formatTimeStamp */])(new Date()); // these need to be both set, otherwise they have a different format
        if (!needsAEMData) {
            delete payload.AUMSegments;
            delete payload.hvaFlow;
            delete payload.displayMode;
        }
        return payload;
    }
    /**
     * If the Ingest library is not loaded/configured prior to calling a postEvent,
     * then the event gets pre-queued. So once the library is ready then we process
     * all the events.
     */
    processPrequeuedEvents() {
        const self = this;
        this.prequeuedEvents.map(payload => {
            // update base payload properties - dont use assign here
            // as it would overwrite properties we dont want
            for (const prop in self.basePayloadData) {
                if (!payload[prop] && self.basePayloadData[prop]) {
                    payload[prop] = self.basePayloadData[prop];
                }
            }
            self.postEvent(payload);
        });
    }
    /**
     * Post the analytics call to the Ingest data server.
     *
     * @param payload Payload data to send.
     */
    postEvent(payload) {
        if (this.ingestLibReady) {
            if (payload.debugIt) {
                this._logger.debug(JSON.stringify(payload));
            }
            else {
                this.instance.postEvent(payload);
            }
        }
        else {
            this.prequeuedEvents.push(payload);
        }
    }
    /**
     * Flush the queued events to the Ingest data server.
     *
     */
    flushEvent() {
        if (this.ingestLibReady) {
            this.instance.flush(true);
        }
    }
    logPresetDetailsInteraction(fieldName) {
        this.logFNFTActionClickedEvent('preset-details-interaction', { fieldName });
    }
    /**
     * Log a screen state event.
     *
     * @param mode Values: 'open', 'close-manual', 'close-auto', 'do-not-show'.
     */
    logScreenStateEvent(mode) {
        const ingestPayloadData = this.createPayload();
        ingestPayloadData['event.type'] = 'screen-state';
        ingestPayloadData.welcomeScreenState = mode;
        this.postEvent(ingestPayloadData);
    }
    /**
     * Log a file/lib/etc. Open event.
     *
     * @param itemData Item data to log.
     */
    logItemOpenedEvent(itemData) {
        const ingestPayloadData = this.createPayload();
        ingestPayloadData['event.type'] = 'uc-file-open';
        ingestPayloadData.fileType = itemData.fileType;
        ingestPayloadData.fileOpenType = itemData.openType;
        ingestPayloadData.sectionView = itemData.sectionView;
        if (typeof itemData.itemPosition !== 'undefined') {
            ingestPayloadData.itemPosition = itemData.itemPosition;
        }
        if (itemData.ucAction) {
            ingestPayloadData['event.subtype'] = itemData.ucAction;
        }
        if (itemData.cardID) {
            ingestPayloadData.cardID = itemData.cardID;
        }
        if (itemData.eventAction) {
            ingestPayloadData['event.type'] = itemData.eventAction;
        }
        if (itemData.activeFilter) {
            ingestPayloadData.cardTypeName = itemData.activeFilter;
        }
        this.postEvent(ingestPayloadData);
    }
    /**
     * Log a miscellaneous event.
     *
     * @param itemData Item data to log.
     */
    logMiscellaneousEvent(itemData) {
        const ingestPayloadData = this.createPayload();
        ingestPayloadData['event.type'] = itemData['event.type'] || 'uc-misc';
        for (const key in itemData) {
            ingestPayloadData[key] = itemData[key];
        }
        this.postEvent(ingestPayloadData);
    }
    /**
     * Log an event from the FNFT dialog.
     *
     * @param itemData Item data to log.
     */
    logFNFTItemEvent(itemData) {
        let ingestPayloadData = this.createPayload();
        ingestPayloadData['event.type'] = 'uc-file-open';
        ingestPayloadData.fileOpenType = 'new';
        ingestPayloadData = Object.assign(ingestPayloadData, itemData);
        this.postEvent(ingestPayloadData);
    }
    /**
     * Log an analytics call for the FNFT action event.
     *
     * @param action Action name.
     * @param actionData Grid item's data parameters.
     */
    logFNFTActionClickedEvent(action, actionData) {
        const actionPayloadData = {
            // debugIt: true,
            'event.type': 'click',
            'event.subtype': action,
        };
        actionData = actionData || {};
        switch (action) {
            case 'preset-selected':
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = 'preset-select'; // TODO double check
                break;
            case 'template-selected':
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = 'template-select'; // TODO double check
                break;
            case 'stock-search':
                actionPayloadData['event.subtype'] = 'stock-search';
                actionPayloadData.displayTemplate = 'stock-template';
                actionPayloadData.cardTypeName = actionData.activeFilter;
                actionPayloadData['event.url'] = `${actionData.actionURL}&as_content=ccxstart-search`;
                actionPayloadData['content.name'] = actionData.searchBoxText;
                break;
            case 'contributor-sidebar':
                actionPayloadData['event.subtype'] = 'contributor-sidebar';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.url'] = `${actionData.actionURL}&as_content=ccxstart-sidebar`;
                break;
            case 'stock-sidebar':
                actionPayloadData['event.subtype'] = 'stock-sidebar';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.url'] = `${actionData.actionURL}&as_content=ccxstart-sidebar`;
                break;
            case 'render-preview':
                actionPayloadData['event.type'] = 'render';
                actionPayloadData['event.subtype'] = 'preview';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                break;
            case 'open-template':
                actionPayloadData['event.subtype'] = 'create';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                break;
            case 'close-template':
                actionPayloadData['event.subtype'] = 'close';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                break;
            case 'preview':
            case 'preview-close':
            case 'preview-back':
            case 'license-template':
            case 'download-start':
            case 'download-end':
            case 'download':
                actionPayloadData['event.subtype'] = action;
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                break;
            case 'too-large-render':
                actionPayloadData['event.type'] = 'render';
                actionPayloadData['event.subtype'] = 'download-large';
                this.ingestUtil.setCommonStockPayloadParameters(actionPayloadData, actionData);
                break;
            case 'close':
                actionPayloadData['event.subtype'] = 'close';
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                break;
            case 'preset-viewmore':
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = 'viewmore';
                delete actionPayloadData.attributes;
                break;
            case 'preset-create':
                actionPayloadData.attributesChanged = false;
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = 'create';
                if (actionPayloadData.attributesChanged) {
                    actionPayloadData.displayTemplate = 'Custom';
                }
                break;
            case 'more-settings':
                actionPayloadData.attributesChanged = false;
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = action;
                break;
            case 'preset-details-interaction':
                actionPayloadData['event.subtype'] = action;
                actionPayloadData['event.value'] = actionData.fieldName;
                break;
            case 'preset-save':
                actionPayloadData.attributesChanged = false;
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                actionPayloadData['event.subtype'] = 'save';
                break;
            case 'more-options':
                actionPayloadData['event.subtype'] = 'advanced-settings';
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                break;
            case 'margins':
                actionPayloadData['event.subtype'] = 'toggle-margins';
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                break;
            case 'preview-mode-flag':
                actionPayloadData['event.subtype'] = 'host-preview-template-doc';
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                break;
            case 'bleed-and-slug':
                actionPayloadData['event.subtype'] = 'toggle-bleed-and-slug';
                this.ingestUtil.setCommonPresetPayloadParameters(actionPayloadData, actionData);
                break;
            case 'tab-selected':
                actionPayloadData.cardTypeName = actionData.activeFilter;
                if (actionData === null || actionData === void 0 ? void 0 : actionData.subcategory) {
                    actionPayloadData['event.subcategory'] = actionData.subcategory;
                }
                break;
            case 'tab-rendered':
                actionPayloadData['event.type'] = 'render';
                actionPayloadData['event.subtype'] = action;
                actionPayloadData.cardTypeName = actionData.activeFilter;
                break;
            case 'welcome-recents-rendered':
            case 'welcome-saved-rendered':
                actionPayloadData['event.type'] = 'render';
                actionPayloadData['event.subtype'] = action;
                actionPayloadData.displayTemplate = 'welcome';
                actionPayloadData.displayCount = actionData.displayCount;
                actionPayloadData.cardTypeName = actionData.activeFilter;
                break;
            case 'welcome-recents-closed':
            case 'welcome-saved-closed':
                actionPayloadData['event.subtype'] = action;
                actionPayloadData.displayTemplate = 'welcome';
                actionPayloadData.cardTypeName = actionData.activeFilter;
                break;
            case 'resize-dialog':
                actionPayloadData['event.type'] = 'resize';
                actionPayloadData['event.subtype'] = 'resize';
                actionPayloadData.displayTemplate = actionData.displayTemplate;
                actionPayloadData.cardName = actionData.cardName;
                actionPayloadData.cardTypeName = actionData.activeFilter;
                if (actionData.displayMode >= 0) {
                    actionPayloadData.displayMode = actionData.displayMode;
                }
                actionPayloadData.attributes = actionData.attributes;
                break;
            default:
                break;
        }
        this.logFNFTItemEvent(actionPayloadData);
    }
    logError(eventID, error) {
        const payload = {};
        if (!eventID) {
            return;
        }
        // handle the event
        switch (eventID) {
            case IngestUtil["c" /* INGEST_ACTION_TYPE */].STOCK_LOAD:
                // Stock errors
                payload['event.workflow'] = IngestUtil["d" /* WORKFLOW */].STOCK;
                payload['event.type'] = IngestUtil["b" /* EVENT_TYPE */].ERROR;
                payload['event.subtype'] = eventID;
                this.ingestUtil.parseError(payload, error);
                break;
        }
        this.logFNFTItemEvent(payload);
    }
} // end of ingest container

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/analytics/Analytics.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const CMDN_CLIENT = 'ccx-cmdn-service';
const CMDN_AS_CHANNEL = 'adobe_apps';
const CMDN_AS_CAMPCLASS = 'brand';
const CMDN_AS_SOURCE = 'app';
const CMDN_AS_CONTENT_STOCK_LINK = 'stock-link';
const CMDN_AS_CONTENT_CONTRIBUTOR_LINK = 'contributor-link';
class Analytics_Analytics {
    constructor() {
        this.enabled = false;
        this.ingest = new IngestWrapper_IngestWrapper();
        this.postEvent = this.ingest.postEvent.bind(this.ingest);
        this.logPresetDetailsInteraction = this.ingest.logPresetDetailsInteraction.bind(this.ingest);
        this.logFNFTActionClickedEvent = this.ingest.logFNFTActionClickedEvent.bind(this.ingest);
        this.logFNFTItemEvent = this.ingest.logFNFTItemEvent.bind(this.ingest);
        this.logMiscellaneousEvent = this.ingest.logMiscellaneousEvent.bind(this.ingest);
        this.logScreenStateEvent = this.ingest.logScreenStateEvent.bind(this.ingest);
        this.flushEvent = this.ingest.flushEvent.bind(this.ingest);
        this.logItemOpenedEvent = this.ingest.logItemOpenedEvent.bind(this.ingest);
        this.logError = this.ingest.logError.bind(this.ingest);
    }
    /**
     * Configure analytics for future analytics calls.
     *
     * @param hostData Data from the host.
     * @param user UserModel.
     * @param defaultAppSettings The default app settings object.
     * @param cmdnVersion CMDN app version.
     * @param psdkData PSDK Data - TBD if it's used.
     */
    async config(hostData, user, defaultAppSettings, cmdnVersion, psdkData) {
        try {
            this.enabled = await this.ingest.configure(CMDN_CLIENT, hostData, user, defaultAppSettings, cmdnVersion, psdkData);
        }
        catch (error) {
            this.enabled = false;
        }
    }
    /**
     * Compose the passed URL for proper analytics logging - this means
     * adding in analytic query params and moving any deep links to the end.
     * This is primarily for Adobe Learn.
     *
     * @param url Original URL to add analytic params into.
     * @returns String containing the URL properly ordered with analytics query arguments.
     */
    async composeURLWithAnalyticsQueryString(url) {
        let composedURL = url;
        if (composedURL) {
            const analyticsQuery = await this.getAnalyticsQueryString();
            // check for deep links
            const deepLinkIndex = composedURL.indexOf('#');
            let deepLink = '';
            if (deepLinkIndex >= 0) {
                deepLink = composedURL.substr(deepLinkIndex);
                composedURL = composedURL.substr(0, deepLinkIndex);
            }
            // check for existing query which it could have
            const querySep = composedURL.indexOf('?') < 0 ? '?' : '&';
            composedURL += querySep + analyticsQuery + deepLink;
        }
        return composedURL;
    }
    /**
     * Build the tracking string for.
     *
     * @param contentType The type of the content
     * @param hostData App setting data from store.
     * @returns String containing the query arguments.
     */
    getTrackingParamsString(contentType, hostData) {
        return (`x-product=${hostData.hostID}%2F${hostData.appVersion}` +
            `&x-product-location=CCXStart-${hostData.displayMode}%2F${hostData.radarVersion}` +
            `&as_channel=${CMDN_AS_CHANNEL}` +
            `&as_campclass=${CMDN_AS_CAMPCLASS}` +
            `&as_campaign=templates_${hostData.hostID}` +
            `&as_source=${CMDN_AS_SOURCE}` +
            `&as_camptype=${hostData.hostID}` +
            `&as_content=${contentType}`);
    }
    /**
     * Build the passthrough analytics string for.
     *
     * @returns String containing the query arguments.
     */
    async getAnalyticsQueryString() {
        const hostData = (await hosts["a" /* default */].getDefaultSettings()) || {};
        return (
        // eslint-disable-next-line prefer-template
        'locale=' +
            hostData.language +
            '&x-product=' +
            hostData.hostID +
            '%2F' +
            hostData.appVersion +
            '&x-product-location=CCXStart-' +
            hostData.displayMode +
            '%2F' +
            hostData.radarVersion +
            '&x-radarSession=' +
            hostData.radarSessionGUID +
            '&x-appSession=' +
            hostData.sessionGUID +
            '&ute=' +
            hostData.userTrackingEnabled);
    }
}


/***/ }),

/***/ "tIky":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const PreviewModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model({
    url: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string,
});
/* harmony default export */ __webpack_exports__["a"] = (PreviewModel);


/***/ }),

/***/ "tr1J":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ StorageKeys; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ AppStorageController_AppStorageController; });

// EXTERNAL MODULE: ./node_modules/js-logger/src/logger.js
var logger = __webpack_require__("GGSb");
var logger_default = /*#__PURE__*/__webpack_require__.n(logger);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-create-new/src/utils/JsUtils.ts
var JsUtils = __webpack_require__("b6PM");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/LocalStorageAPI.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const localStorageAPI = () => window.localStorage;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/LocalStorage.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Provides a mechanism to persist key/store pairs.
 */
class LocalStorage_LocalStorage {
    /**
     * Creates a new instance of the LocalStorage using the provided namespace.
     *
     * @param [namespace=""] Namespace used to recognize the keys that belong to the given application.
     */
    constructor(namespace = '') {
        this._logger = logger_default.a.get('LocalStorage');
        /** Underlying storage provider. */
        this._provider = localStorageAPI();
        this._namespace = typeof namespace !== 'string' || namespace.trim() === '' ? Object(JsUtils["f" /* generateGUID */])() : namespace;
    }
    /**
     * Namespace used to prefix the keys.
     *
     * @returns Namespace used to store the values.
     */
    get namespace() {
        return this._namespace;
    }
    /**
     * Generates the key used to store the value. It is based on the provided key and the namespace of the LocalStorage.
     *
     * @param key Key used to store the value.
     * @returns Underlying key used to store the value.
     */
    _generateStorageKey(key) {
        return `${this.namespace}_${key}`;
    }
    /**
     * Sets a value to the local storage. If the provided value is not a string, it would be converted to a JSON string
     * before storing it.
     *
     * @param key Key used to store the value.
     * @param value Value to store.
     */
    setItem(key, value) {
        if (!key) {
            this._logger.warn('LocalStorage: a valid key must be provided');
            return;
        }
        // structure used to store the value, so that we can recreate the appropiate type after extraction
        const storageObject = {
            type: value === null ? null : typeof value,
            value: value,
        };
        try {
            this._provider && this._provider.setItem(this._generateStorageKey(key), JSON.stringify(storageObject));
        }
        catch (error) {
            this._logger.error('Failed to write:', key, value, error);
        }
    }
    /**
     * Retrieves a stored value from the local storage. The type of the value will correspond the type it was initially
     * given. If the value is not found, it returns <code>null</code> instead.
     *
     * @param key Key used to store the value.
     * @param [defaultValue] Default value, in case the key was not found.
     * @returns The stored value or null if not found.
     */
    getItem(key, defaultValue) {
        if (key) {
            let storedObject;
            try {
                storedObject = (this._provider && this._provider.getItem(this._generateStorageKey(key))) || null;
            }
            catch (error) {
                storedObject = null;
                this._logger.error('Failed to retrieve:', key, error);
            }
            if (storedObject !== null) {
                // in case the value was not stored using the intermediate format
                try {
                    const { value, type } = JSON.parse(storedObject);
                    if (type === 'number') {
                        return value === null ? NaN : Number(value);
                    }
                    else if (type === 'boolean') {
                        return Boolean(value);
                    }
                    else {
                        return value;
                    }
                }
                catch (error) {
                    // in this case, only string values are supported
                    return storedObject;
                }
            }
        }
        return typeof defaultValue !== 'undefined' ? defaultValue : null;
    }
    /**
     * Removes the value stored under the provided key.
     *
     * @param key Key corresponding to the value to remove.
     */
    removeItem(key) {
        try {
            this._provider && this._provider.removeItem(this._generateStorageKey(key));
        }
        catch (error) {
            this._logger.error('Failed to remove:', key, error);
        }
    }
    /**
     * Removes all stored items.
     */
    clear() {
        if (this._provider) {
            try {
                Object.keys(this._provider).forEach((key) => {
                    if (key.startsWith(this.namespace)) {
                        // we use directly the provided since the key has the namespace included
                        this._provider && this._provider.removeItem(key);
                    }
                }, this);
            }
            catch (error) {
                this._logger.error('Failed to clear all items', this.namespace, error);
            }
        }
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-create-new/src/storage/AppStorageController.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Enum containing the storage keys used for every value.
 *
 * @enum {string}
 */
var StorageKeys;
(function (StorageKeys) {
    /** Key used to save whether Advanced Settings Collapsible is collapsed or not. */
    StorageKeys["ADVANCED_SETTINGS_COLLAPSED"] = "ADVANCED_SETTINGS";
    /** Key used to store the app version. */
    StorageKeys["APP_VERSION"] = "APP_VERSION";
    /** Key used to save whether InDesign margins Collapsible is collapsed or not. */
    StorageKeys["MARGINS_COLLAPSED"] = "MARGINS";
    /** Key used to save whether InDesign bleed and slug Collapsible is collapsed or not. */
    StorageKeys["BLEED_AND_SLUG_COLLAPSED"] = "BLEED_AND_SLUG";
    /** Key used to store the language strings. */
    StorageKeys["LANGUAGE_STRINGS"] = "LANGUAGE_STRINGS";
    /** Namespace used to identify application storage. */
    StorageKeys["NAMESPACE"] = "CCX_CMDN";
    /** Key used to store the ids of the users logged in this session. */
    StorageKeys["SESSION_LOGGED_IN_USERS"] = "SESSION_LOGGED_IN_USERS";
    /** Key used to save whether the File Size Warning is shown or not. */
    StorageKeys["SHOW_FILE_SIZE_WARNING"] = "SHOW_FILE_SIZE_WARNING";
    /** Key used to save whether the Recents Banner should be shown. */
    StorageKeys["SHOW_RECENTS_BANNER"] = "SHOW_RECENTS_BANNER";
    /** Key used to save whether the Saved Banner should be shown. */
    StorageKeys["SHOW_SAVED_BANNER"] = "SHOW_SAVED_BANNER";
    /** Key used to store the stock templates. */
    StorageKeys["STOCK_TEMPLATES"] = "STOCK_TEMPLATES";
    /** Key used to store the stock templates. */
    StorageKeys["STOCK_COLLECTION"] = "STOCK_COLLECTION";
    /** Key used to store the Last Used Timestamp of a given template. */
    StorageKeys["TEMPLATE_LUT"] = "TEMPLATE_LUT";
    /** Key used to track versioned keys. */
    StorageKeys["VERSIONED_KEYS"] = "VERSIONED_KEYS";
    /** Key used to store the display count for the welcome banner. */
    StorageKeys["WELCOME_DISPLAY_COUNT"] = "WELCOME_DISPLAY_COUNT";
})(StorageKeys || (StorageKeys = {}));
/**
 * Simple module that centralizes local storage access and retrieval across the appplication.
 */
class AppStorageController_AppStorageController {
    /**
     * Constructs a new AppStorageController.
     *
     * @param appVersion Application version used to invalidate data when version changes.
     * @param [userId] User identifier, used for user specific data.
     * @param [locale] Locale, used for locale specific data.
     */
    constructor(appVersion, userId, locale) {
        /** Class logger. */
        this._logger = logger_default.a.get('AppStorageController');
        this._storage = new LocalStorage_LocalStorage(StorageKeys.NAMESPACE);
        this._userId = userId;
        this._locale = locale;
        this._checkAppVersion(appVersion);
        this._setAppVersion(appVersion);
        this._onUpgrade();
    }
    /**
     * Returns the stored version of the app in local storage.
     *
     * @returns App version.
     */
    _getAppVersion() {
        return this._storage.getItem(StorageKeys.APP_VERSION);
    }
    /**
     * Stores the app version in local storage.
     *
     * @param value The app version to store.
     */
    _setAppVersion(value) {
        this._storage.setItem(StorageKeys.APP_VERSION, value);
    }
    /**
     * Checks the tracked versioned keys and removes them if the app version has changed.
     *
     * @param version The version to check.
     * @returns <code>true</code> if tracked versions are the same, otherwise <code>false</code>.
     */
    _checkAppVersion(version) {
        if (this._getAppVersion() !== version) {
            // we need to clear version dependent values
            const trackedKeys = this._storage.getItem(StorageKeys.VERSIONED_KEYS, {});
            Object.keys(trackedKeys).forEach((key) => this._storage.removeItem(key));
            return false;
        }
        return true;
    }
    /**
     * Tracks the given key as version dependent. Once the version changes, this value will be cleared as it is
     * considered outdated.
     *
     * @param key The key to update.
     */
    _trackVersionedKey(key) {
        const appDepedentKeys = this._storage.getItem(StorageKeys.VERSIONED_KEYS, {});
        if (!Object.prototype.hasOwnProperty.call(appDepedentKeys, key)) {
            appDepedentKeys[key] = true;
            this._storage.setItem(StorageKeys.VERSIONED_KEYS, appDepedentKeys);
        }
    }
    /**
     * Performs an upgrade of the Storage data to preserve backwards compatibiltiy. This is only called when the
     * version changes.
     */
    _onUpgrade() {
        // we cannot use LocalStorage since it expects a namespace
        const tempStorage = window.localStorage;
        // internal keys can be simply removed
        tempStorage.removeItem('_VERSION_ITEMS_');
        tempStorage.removeItem('CCX_CMDN_VERSION');
        // version dependent can be removed as well
        tempStorage.removeItem('CCX_LANGUAGE_STR');
        const advancedSettings = tempStorage.getItem('CCX_ADVANCED_SETTINGS');
        advancedSettings !== null &&
            this.setCollapsedValue(StorageKeys.ADVANCED_SETTINGS_COLLAPSED, advancedSettings === 'true');
        tempStorage.removeItem('CCX_ADVANCED_SETTINGS');
        const margins = tempStorage.getItem('CCX_MARGINS');
        margins !== null && this.setCollapsedValue(StorageKeys.MARGINS_COLLAPSED, margins === 'true');
        tempStorage.removeItem('CCX_MARGINS');
        // then locale specific values
        if (this._locale) {
            // stock data is simply discarded
            tempStorage.removeItem(`CACHED_TEMPLATES_${this._locale}`);
        }
        // then user specific values
        if (this._userId) {
            const displayCount = tempStorage.getItem(`${this._userId}_cmdn.displayCount`);
            displayCount !== null && this.setWelcomeDisplayCount(Number(displayCount));
            tempStorage.removeItem(`${this._userId}_cmdn.displayCount`);
            const showWelcomeRecent = tempStorage.getItem(`${this._userId}_cmdn.showWelcomeRecent`);
            showWelcomeRecent !== null && this.setShowRecentsBanner(showWelcomeRecent === 'true');
            tempStorage.removeItem(`${this._userId}_cmdn.showWelcomeRecent`);
            const showWelcomeSaved = tempStorage.getItem(`${this._userId}_cmdn.showWelcomeSaved`);
            showWelcomeSaved !== null && this.setShowSavedBanner(showWelcomeSaved === 'true');
            tempStorage.removeItem(`${this._userId}_cmdn.showWelcomeSaved`);
            const fileSizeWarning = tempStorage.getItem(`${this._userId}_fnft.showFileSizeWarning`);
            // previously, true was used to hide the warning, so we invert the value
            fileSizeWarning !== null && this.setShowFileSizeWarning(fileSizeWarning !== 'true');
            tempStorage.removeItem(`${this._userId}_fnft.showFileSizeWarning`);
        }
    }
    /**
     * Resets the array of user ids for the users that logged in this session.
     */
    resetSessionLoggedInUsers() {
        this._storage.setItem(StorageKeys.SESSION_LOGGED_IN_USERS, []);
    }
    /**
     * Adds the currently logged in user id to the list of users that logged in this session,
     * if not already there.
     *
     * @returns Whether or not the user was added to the list.
     */
    addSessionLoggedInUser() {
        if (!this._userId) {
            this._logger.warn('AppStorageController: userId has not been set');
            return false;
        }
        const loggedInUsers = this._storage.getItem(StorageKeys.SESSION_LOGGED_IN_USERS, []);
        if (loggedInUsers.indexOf(this._userId) !== -1) {
            return false;
        }
        loggedInUsers.push(this._userId);
        this._storage.setItem(StorageKeys.SESSION_LOGGED_IN_USERS, loggedInUsers);
        return true;
    }
    /**
     * Determines if the  collapsible value is collapsed. If the value has not been initialized, it will default to
     * <code>false</code>.
     *
     * @returns Whether the  collapsible value is collapsed or not.
     * @param key Key used to stored the value.
     */
    getCollapsedValue(key) {
        return this._getUserItem(key, false);
    }
    /**
     * Sets whether the  collapsible value is collapsed or not.
     *
     * @param key Key used to stored the value.
     * @param value Whether the  collapsible value is collapsed or not.
     */
    setCollapsedValue(key, value) {
        this._setUserItem(key, Boolean(value), false);
    }
    /**
     * Gets the stored language information, containing the locale and the translated strings.
     *
     * @returns The language information.
     */
    getLanguageStrings() {
        return this._getLocaleItem(StorageKeys.LANGUAGE_STRINGS);
    }
    /**
     * Sets the Language information. This is done to cache the language strings.
     *
     * @param value Language information to store.
     */
    setLanguageStrings(value) {
        this._setLocaleItem(StorageKeys.LANGUAGE_STRINGS, value, true);
    }
    /**
     * Determines if the File Size Warning overlay should be shown or not. If the value has not been initialized, it
     * will default to <code>true</code>.
     *
     * @returns Whether the File Size Warning is shown or not.
     */
    getShowFileSizeWarning() {
        return this._getUserItem(StorageKeys.SHOW_FILE_SIZE_WARNING, true);
    }
    /**
     * Sets whether the File Size Warning is shown or not.
     *
     * @param value Whether the File Size Warning is shown or not.
     */
    setShowFileSizeWarning(value) {
        this._setUserItem(StorageKeys.SHOW_FILE_SIZE_WARNING, Boolean(value), false);
    }
    /**
     * Determines if the Recents Banner should be shown. If the value has not been initialized, it will default to
     * <code>true</code>.
     *
     * @returns Whether the Recents Banner should be shown or not.
     */
    getShowRecentsBanner() {
        return this._getUserItem(StorageKeys.SHOW_RECENTS_BANNER, true);
    }
    /**
     * Sets whether the Recents Banner should be shown or not.
     *
     * @param value Whether the Recents Banner should be shown.
     */
    setShowRecentsBanner(value) {
        this._setUserItem(StorageKeys.SHOW_RECENTS_BANNER, Boolean(value), false);
    }
    /**
     * Determines if the Saved Banner should be shown. If the value has not been initialized, it will default to
     * <code>true</code>.
     *
     * @returns Whether the Saved Banner should be shown or not.
     */
    getShowSavedBanner() {
        return this._getUserItem(StorageKeys.SHOW_SAVED_BANNER, true);
    }
    /**
     * Sets whether the Saved Banner should be shown or not.
     *
     * @param value Whether the Saved Banner should be shown.
     */
    setShowSavedBanner(value) {
        this._setUserItem(StorageKeys.SHOW_SAVED_BANNER, Boolean(value), false);
    }
    /**
     * Gets the Last Used Timestamp for a given template. If the value is not found, it returns null instead.
     *
     * @param templateId The template Id to look for.
     * @returns The Last Used Timestamp for the given template id.
     */
    getTemplateLastUsedTimestamp(templateId) {
        return this._getUserItem(`${StorageKeys.TEMPLATE_LUT}_${templateId}`);
    }
    /**
     * Sets the Last Used Timestamp for the given templateId. This is used to show templates in the correct ordered.
     *
     * @param templateId The template id to set.
     * @param value The Last Used Timestamp for the given template id.
     */
    setTemplateLastUsedTimestamp(templateId, value) {
        if (templateId) {
            this._setUserItem(`${StorageKeys.TEMPLATE_LUT}_${templateId}`, Number(value), false);
        }
    }
    /**
     * Gets the stored Stock Template Data. This data is locale dependent.
     *
     * @returns Stored Stock Template data. If the data is not found, it returns <code>null</code>.
     */
    getStockTemplateData() {
        return this._getLocaleItem(StorageKeys.STOCK_TEMPLATES);
    }
    /**
     * Sets the Stock Template Data in the application cache. This data is locale dependent.
     *
     * @param value Stock Template data to cache.
     */
    setStockTemplateData(value) {
        this._setLocaleItem(StorageKeys.STOCK_TEMPLATES, value, false);
    }
    /**
     * Gets the stored Stock Collections Data. This data is user dependent.
     *
     * @returns Stored Stock Collections data. If the data is not found, it returns null.
     */
    getStockCollectionData() {
        return this._getUserItem(StorageKeys.STOCK_COLLECTION);
    }
    /**
     * Sets the Stock Collections Data in the application cache. This data is user dependent.
     *
     * @param value CollectionInterface[] Stock collections to cache.
     */
    setStockCollectionData(value) {
        this._setUserItem(StorageKeys.STOCK_COLLECTION, value, false);
    }
    /**
     * Gets the display count of the welcome banner.
     *
     * @returns Display count of the welcome banner. It defaults to 0 if not found in the storage.
     */
    getWelcomeDisplayCount() {
        return this._getUserItem(StorageKeys.WELCOME_DISPLAY_COUNT, 0);
    }
    /**
     * Sets the display count of the welcome banner.
     *
     * @param count The new display count.
     */
    setWelcomeDisplayCount(count) {
        this._setUserItem(StorageKeys.WELCOME_DISPLAY_COUNT, typeof count === 'number' ? count : 0, false);
    }
    /**
     * Generates the key used to store the value.
     *
     * @param key Key used to stored the value.
     * @param [userId] User id.
     * @param [locale] Application Locale.
     * @returns Underlying key used to store the value.
     */
    _generateStorageKey(key, userId, locale) {
        let storageKey = key;
        if (locale) {
            storageKey = `${storageKey}_${locale}`;
        }
        if (userId) {
            storageKey = `${storageKey}_${userId}`;
        }
        return storageKey;
    }
    /**
     * Gets the value stored under the given key that matches the current user. If not found, <code>null</code> is
     * returned.
     *
     * @param key Key used to store the data.
     * @param [defaultValue] Default value, in case the key was not found.
     * @returns The stored value under the given key, or <code>null</code> if not found.
     */
    _getUserItem(key, defaultValue) {
        if (this._userId && key) {
            return this._storage.getItem(this._generateStorageKey(key, this._userId), defaultValue);
        }
        return null;
    }
    /**
     * Stores a user specific value under the provided key. If it is marked as version dependent, it will be cleared,
     * when the version changes.
     *
     * @param key Key used to store the value.
     * @param value The value to store.
     * @param [versionDep=false] Whether the user item should be cleared when the version changes.
     */
    _setUserItem(key, value, versionDep = false) {
        if (!key || !this._userId) {
            this._logger.warn('AppStorageController: userId has not been set');
            return;
        }
        const storageKey = this._generateStorageKey(key, this._userId);
        if (versionDep) {
            this._trackVersionedKey(storageKey);
        }
        this._storage.setItem(storageKey, value);
    }
    /**
     * Gets the value stored under the given key that matches the current locale. If not found, <code>null</code> is
     * returned.
     *
     * @param key Key used to store the data.
     * @param [defaultValue] Default value, in case the key was not found.
     * @returns The stored value under the given key, or <code>null</code> if not found.
     */
    _getLocaleItem(key, defaultValue) {
        if (this._locale && key) {
            return this._storage.getItem(this._generateStorageKey(key, undefined, this._locale), defaultValue);
        }
        return null;
    }
    /**
     * Stores a locale specific value under the provided key. If it is marked as version dependent, it will be cleared,
     * when the version changes.
     *
     * @param key Key used to store the value.
     * @param value The value to store.
     * @param [versionDep=false] Whether the locale item should be cleared when the version changes.
     */
    _setLocaleItem(key, value, versionDep = false) {
        if (!key || !this._locale) {
            this._logger.warn('AppStorageController: locale has not been set');
            return;
        }
        const storageKey = this._generateStorageKey(key, undefined, this._locale);
        if (versionDep) {
            this._trackVersionedKey(storageKey);
        }
        this._storage.setItem(storageKey, value);
    }
}


/***/ }),

/***/ "u/No":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StockObservable; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
class StockObservable {
    constructor() {
        this._listeners = {};
    }
    /**
     * Triggers an event with some data.
     *
     * @param eventName The eventName.
     * @param data The data to send to the event.
     */
    trigger(eventName, data) {
        const listeners = this._listeners[eventName];
        if (listeners) {
            listeners.forEach(listener => listener && typeof listener === 'function' && listener(data));
        }
    }
    /**
     * Registers a callback to the event.
     *
     * @param eventName The event name.
     * @param callback The callback to call.
     */
    on(eventName, callback) {
        if (!Object.prototype.hasOwnProperty.call(this._listeners, eventName)) {
            this._listeners[eventName] = [];
        }
        this._listeners[eventName].push(callback);
    }
    /**
     * Unregisters a callback to the event.
     *
     * @param eventName The event name.
     * @param callback The callback to call.
     */
    off(eventName, callback) {
        const listeners = this._listeners[eventName];
        if (listeners) {
            const index = listeners.findIndex(callback);
            if (index > -1) {
                listeners.splice(index, 1);
            }
        }
    }
    /**
     * Unregisters all of the callbacks registered with this observable.
     */
    removeAllListeners() {
        this._listeners = {};
    }
}


/***/ }),

/***/ "u948":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const ColorModeModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model({
    mode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string,
    values: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].array(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number),
});
/* harmony default export */ __webpack_exports__["a"] = (ColorModeModel);


/***/ }),

/***/ "ujMp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var ERROR_MSGS = __webpack_require__("MON2");

function getServiceIdentifierAsString(serviceIdentifier) {
  if (typeof serviceIdentifier === "function") {
    var _serviceIdentifier = serviceIdentifier;
    return _serviceIdentifier.name;
  } else if (typeof serviceIdentifier === "symbol") {
    return serviceIdentifier.toString();
  } else {
    var _serviceIdentifier = serviceIdentifier;
    return _serviceIdentifier;
  }
}

exports.getServiceIdentifierAsString = getServiceIdentifierAsString;

function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
  var registeredBindingsList = "";
  var registeredBindings = getBindings(container, serviceIdentifier);

  if (registeredBindings.length !== 0) {
    registeredBindingsList = "\nRegistered bindings:";
    registeredBindings.forEach(function (binding) {
      var name = "Object";

      if (binding.implementationType !== null) {
        name = getFunctionName(binding.implementationType);
      }

      registeredBindingsList = registeredBindingsList + "\n " + name;

      if (binding.constraint.metaData) {
        registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
      }
    });
  }

  return registeredBindingsList;
}

exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;

function alreadyDependencyChain(request, serviceIdentifier) {
  if (request.parentRequest === null) {
    return false;
  } else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
    return true;
  } else {
    return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
  }
}

function dependencyChainToString(request) {
  function _createStringArr(req, result) {
    if (result === void 0) {
      result = [];
    }

    var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
    result.push(serviceIdentifier);

    if (req.parentRequest !== null) {
      return _createStringArr(req.parentRequest, result);
    }

    return result;
  }

  var stringArr = _createStringArr(request);

  return stringArr.reverse().join(" --> ");
}

function circularDependencyToException(request) {
  request.childRequests.forEach(function (childRequest) {
    if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
      var services = dependencyChainToString(childRequest);
      throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
    } else {
      circularDependencyToException(childRequest);
    }
  });
}

exports.circularDependencyToException = circularDependencyToException;

function listMetadataForTarget(serviceIdentifierString, target) {
  if (target.isTagged() || target.isNamed()) {
    var m_1 = "";
    var namedTag = target.getNamedTag();
    var otherTags = target.getCustomTags();

    if (namedTag !== null) {
      m_1 += namedTag.toString() + "\n";
    }

    if (otherTags !== null) {
      otherTags.forEach(function (tag) {
        m_1 += tag.toString() + "\n";
      });
    }

    return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
  } else {
    return " " + serviceIdentifierString;
  }
}

exports.listMetadataForTarget = listMetadataForTarget;

function getFunctionName(v) {
  if (v.name) {
    return v.name;
  } else {
    var name_1 = v.toString();
    var match = name_1.match(/^function\s*([^\s(]+)/);
    return match ? match[1] : "Anonymous function: " + name_1;
  }
}

exports.getFunctionName = getFunctionName;

/***/ }),

/***/ "vRGJ":
/***/ (function(module, exports) {

/**
 * Expose `pathtoRegexp`.
 */
module.exports = pathtoRegexp;
/**
 * Match matching groups in a regular expression.
 */

var MATCHING_GROUP_REGEXP = /\((?!\?)/g;
/**
 * Normalize the given path string,
 * returning a regular expression.
 *
 * An empty array should be passed,
 * which will contain the placeholder
 * key names. For example "/user/:id" will
 * then contain ["id"].
 *
 * @param  {String|RegExp|Array} path
 * @param  {Array} keys
 * @param  {Object} options
 * @return {RegExp}
 * @api private
 */

function pathtoRegexp(path, keys, options) {
  options = options || {};
  keys = keys || [];
  var strict = options.strict;
  var end = options.end !== false;
  var flags = options.sensitive ? '' : 'i';
  var extraOffset = 0;
  var keysOffset = keys.length;
  var i = 0;
  var name = 0;
  var m;

  if (path instanceof RegExp) {
    while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {
      keys.push({
        name: name++,
        optional: false,
        offset: m.index
      });
    }

    return path;
  }

  if (Array.isArray(path)) {
    // Map array parts into regexps and return their source. We also pass
    // the same keys and options instance into every generation to get
    // consistent matching groups before we join the sources together.
    path = path.map(function (value) {
      return pathtoRegexp(value, keys, options).source;
    });
    return new RegExp('(?:' + path.join('|') + ')', flags);
  }

  path = ('^' + path + (strict ? '' : path[path.length - 1] === '/' ? '?' : '/?')).replace(/\/\(/g, '/(?:').replace(/([\/\.])/g, '\\$1').replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, function (match, slash, format, key, capture, star, optional, offset) {
    slash = slash || '';
    format = format || '';
    capture = capture || '([^\\/' + format + ']+?)';
    optional = optional || '';
    keys.push({
      name: key,
      optional: !!optional,
      offset: offset + extraOffset
    });
    var result = '' + (optional ? '' : slash) + '(?:' + format + (optional ? slash : '') + capture + (star ? '((?:[\\/' + format + '].+?)?)' : '') + ')' + optional;
    extraOffset += result.length - match.length;
    return result;
  }).replace(/\*/g, function (star, index) {
    var len = keys.length;

    while (len-- > keysOffset && keys[len].offset > index) {
      keys[len].offset += 3; // Replacement length minus asterisk length.
    }

    return '(.*)';
  }); // This is a workaround for handling unnamed matching groups.

  while (m = MATCHING_GROUP_REGEXP.exec(path)) {
    var escapeCount = 0;
    var index = m.index;

    while (path.charAt(--index) === '\\') {
      escapeCount++;
    } // It's possible to escape the bracket.


    if (escapeCount % 2 === 1) {
      continue;
    }

    if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {
      keys.splice(keysOffset + i, 0, {
        name: name++,
        // Unnamed matching groups must be consistently linear.
        optional: false,
        offset: m.index
      });
    }

    i++;
  } // If the path is non-ending, match until the end or a slash.


  path += end ? '$' : path[path.length - 1] === '/' ? '' : '(?=\\/|$)';
  return new RegExp(path, flags);
}

;

/***/ }),

/***/ "vpAJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "photoshopAPI", function() { return photoshopAPI; });
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GGSb");
/* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

let photoshop;
let photoshopActionAPI;
let photoshopCoreAPI;
const _logger = js_logger__WEBPACK_IMPORTED_MODULE_0___default.a.get('PhotoshopAPI');
try {
    photoshop = window.require('photoshop');
}
catch (error) {
    _logger.error('Failed to require window photoshop API');
}
if (photoshop) {
    photoshopActionAPI = photoshop.action;
    photoshopCoreAPI = photoshop.core;
}
else {
    try {
        photoshopActionAPI = window.require('photoshopAction');
        photoshopCoreAPI = window.require('photoshopCore');
    }
    catch (error) {
        _logger.error('Failed to require fallback window photoshopAction and photoshopCore APIs');
    }
}
const photoshopAPI = () => ({ core: photoshopCoreAPI, action: photoshopActionAPI });


/***/ }),

/***/ "w6Pn":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _IconMapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("XLCt");
/* harmony import */ var _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Fr31");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


jest.mock('../../utils/PlatformUtils');
describe('IconMapper', () => {
    describe('#getPresetIconName', () => {
        afterAll(() => {
            jest.resetAllMocks();
        });
        beforeEach(() => { });
        it('should call the custom icon function for presets with the group set to null', () => {
            const preset = {};
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_SMALL);
        });
        it('should call the custom icon function for presets with the group set to the empty string', () => {
            const preset = {
                group: '',
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_SMALL);
        });
        it('should call the custom icon function for presets with the group set to "user"', () => {
            const preset = {
                group: 'user',
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_SMALL);
        });
        it('should return undefined for a preset with a weird group', () => {
            const preset = {
                group: 'potato',
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBeUndefined();
        });
        it('should return the icon for the 2000 pixel grid, based on the icon identifier', () => {
            const preset = {
                iconIdentifier: '2000 pixel grid',
                group: 'artillustration',
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBe('IlluArtAndIllu2000');
        });
        it('should return the icon for the 2000 pixel grid, based on the preset name', () => {
            const preset = {
                name: '2000 pixel grid',
                group: 'artillustration',
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset);
            expect(result).toBe('IlluArtAndIllu2000');
        });
        it('should return the icon, based on the preset name, if none found based on preset identifier', () => {
            const preset = {
                iconIdentifier: 'La biblioteca esta ahi',
                name: 'Donde esta la biblioteca',
                group: 'artillustration',
            };
            const others = [{ name: 'dragons', icon: 'dragonIcon' }, { name: 'Donde esta la biblioteca' }];
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset, others);
            expect(result).toBe('IlluArtAndIllu1080p');
        });
        it('should look at the other presets in the category and use the icon from one of them if the name matches', () => {
            const preset = {
                name: 'Donde esta la biblioteca',
                group: 'artillustration',
            };
            const others = [
                { name: 'dragons', icon: 'dragonIcon' },
                { name: 'Donde esta la biblioteca', icon: 'biblioteca' },
            ];
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset, others);
            expect(result).toBe('biblioteca');
        });
        it("should return the default icon for the section if it can't map", () => {
            const preset = {
                name: 'Donde esta la biblioteca',
                group: 'artillustration',
            };
            const others = [{ name: 'dragons', icon: 'dragonIcon' }];
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset, others);
            expect(result).toBe('IlluArtAndIllu1080p');
        });
        it("should return the default icon for the section if it finds a matching preset, but that doesn't have an icon", () => {
            const preset = {
                name: 'Donde esta la biblioteca',
                group: 'artillustration',
            };
            const others = [{ name: 'dragons', icon: 'dragonIcon' }, { name: 'Donde esta la biblioteca' }];
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset, others);
            expect(result).toBe('IlluArtAndIllu1080p');
        });
        it('should return the default icon for the section if the preset has neither name nor iconIde4ntifier', () => {
            const preset = {
                group: 'artillustration',
            };
            const others = [{ name: 'dragons', icon: 'dragonIcon' }];
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconName"](preset, others);
            expect(result).toBe('IlluArtAndIllu1080p');
        });
    });
    describe('#getPresetIconNameForCustom', () => {
        it('should return small square if width == height and width <= SMALL threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.SMALL - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.SMALL - 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_SMALL);
        });
        it('should return medium square if width == height and width > SMALL threshold pixels and width <= MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.MEDIUM - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.MEDIUM - 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_MEDIUM);
        });
        it('should return large square if width == height and width > MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.MEDIUM + 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].SQUARE.MEDIUM + 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].SQUARE_LARGE);
        });
        it('should return small landscape if width > height and width <= SMALL threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.SMALL - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.SMALL - 2,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].LANDSCAPE_SMALL);
        });
        it('should return medium landscape if width > height and width > SMALL threshold and width <= MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.MEDIUM - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.MEDIUM - 2,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].LANDSCAPE_MEDIUM);
        });
        it('should return large landscape if width > height and width > MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.MEDIUM + 2,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].LANDSCAPE.MEDIUM + 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].LANDSCAPE_LARGE);
        });
        it('should return medium portrait if height > width and height <= SMALL threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL - 2,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL - 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].PORTRAIT_SMALL);
        });
        it('should return medium portrait if height > width and height > SMALL threshold and height <= MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL + 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].PORTRAIT_MEDIUM);
        });
        it('should return large portrait if height > width and height > MEDIUM threshold', () => {
            const preset = {
                width: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.MEDIUM - 1,
                height: _IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.MEDIUM + 1,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].PORTRAIT_LARGE);
        });
        it('should covert dimensions from current unit to pixels before determining the icon', () => {
            const preset = {
                width: Object(_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* convert */ "r"])(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL - 1, _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PIXELS], _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].INCHES]),
                height: Object(_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* convert */ "r"])(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_TRESHOLDS"].PORTRAIT.SMALL + 1, _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].PIXELS], _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitIdToMeasurement */ "q"][_utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].INCHES]),
                units: _utils_UnitsUtils__WEBPACK_IMPORTED_MODULE_1__[/* UnitId */ "p"].INCHES,
            };
            const result = _IconMapper__WEBPACK_IMPORTED_MODULE_0__["getPresetIconNameForCustom"](preset);
            expect(result).toBe(_IconMapper__WEBPACK_IMPORTED_MODULE_0__["CUSTOM_ICON_NAMES"].PORTRAIT_MEDIUM);
        });
    });
});


/***/ }),

/***/ "wnjb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var METADATA_KEY = __webpack_require__("xfSm");

var MetadataReader = function () {
  function MetadataReader() {}

  MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {
    var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);
    var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);
    return {
      compilerGeneratedMetadata: compilerGeneratedMetadata,
      userGeneratedMetadata: userGeneratedMetadata || {}
    };
  };

  MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {
    var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];
    return userGeneratedMetadata;
  };

  return MetadataReader;
}();

exports.MetadataReader = MetadataReader;

/***/ }),

/***/ "xfSm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.NAMED_TAG = "named";
exports.NAME_TAG = "name";
exports.UNMANAGED_TAG = "unmanaged";
exports.OPTIONAL_TAG = "optional";
exports.INJECT_TAG = "inject";
exports.MULTI_INJECT_TAG = "multi_inject";
exports.TAGGED = "inversify:tagged";
exports.TAGGED_PROP = "inversify:tagged_props";
exports.PARAM_TYPES = "inversify:paramtypes";
exports.DESIGN_PARAM_TYPES = "design:paramtypes";
exports.POST_CONSTRUCT = "post_construct";

/***/ }),

/***/ "xiII":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var id_1 = __webpack_require__("d9O0");

var Request = function () {
  function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {
    this.id = id_1.id();
    this.serviceIdentifier = serviceIdentifier;
    this.parentContext = parentContext;
    this.parentRequest = parentRequest;
    this.target = target;
    this.childRequests = [];
    this.bindings = Array.isArray(bindings) ? bindings : [bindings];
    this.requestScope = parentRequest === null ? new Map() : null;
  }

  Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
    var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
    this.childRequests.push(child);
    return child;
  };

  return Request;
}();

exports.Request = Request;

/***/ }),

/***/ "yMAV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var Plan = function () {
  function Plan(parentContext, rootRequest) {
    this.parentContext = parentContext;
    this.rootRequest = rootRequest;
  }

  return Plan;
}();

exports.Plan = Plan;

/***/ }),

/***/ "z4Hk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var binding_on_syntax_1 = __webpack_require__("406g");

var constraint_helpers_1 = __webpack_require__("RR/i");

var BindingWhenSyntax = function () {
  function BindingWhenSyntax(binding) {
    this._binding = binding;
  }

  BindingWhenSyntax.prototype.when = function (constraint) {
    this._binding.constraint = constraint;
    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
    this._binding.constraint = constraint_helpers_1.namedConstraint(name);
    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
    this._binding.constraint = function (request) {
      var targetIsDefault = request.target !== null && !request.target.isNamed() && !request.target.isTagged();
      return targetIsDefault;
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
    this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);
    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenParentNamed = function (name) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.namedConstraint(name)(request.parentRequest);
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
    this._binding.constraint = function (request) {
      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
    this._binding.constraint = function (request) {
      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
    this._binding.constraint = function (request) {
      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
    this._binding.constraint = function (request) {
      return constraint_helpers_1.traverseAncerstors(request, constraint);
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
    this._binding.constraint = function (request) {
      return !constraint_helpers_1.traverseAncerstors(request, constraint);
    };

    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
  };

  return BindingWhenSyntax;
}();

exports.BindingWhenSyntax = BindingWhenSyntax;

/***/ }),

/***/ "zBY0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return RegionFeatureFlagMapping; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FeatureFlags; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FeatureFlagController; });
/* harmony import */ var _utils_JsUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("b6PM");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

var RegionFeatureFlagMapping;
(function (RegionFeatureFlagMapping) {
    RegionFeatureFlagMapping["ROMAN_FS"] = "0";
    RegionFeatureFlagMapping["JAPANESE_FS"] = "1";
    RegionFeatureFlagMapping["MENA_FS"] = "3";
})(RegionFeatureFlagMapping || (RegionFeatureFlagMapping = {}));
/**
 * Enum containing the available features to toggle.
 *
 * @enum {string}
 */
var FeatureFlags;
(function (FeatureFlags) {
    FeatureFlags["STOCK"] = "stock";
    FeatureFlags["ROMAN_FS"] = "roman_fs";
    FeatureFlags["JAPANESE_FS"] = "japanese_fs";
    FeatureFlags["MENA_FS"] = "mena_fs";
})(FeatureFlags || (FeatureFlags = {}));
/**
 * Default features used to be merge with the features object.
 */
const DEFAULT_FEATURE_FLAGS = {
    [FeatureFlags.STOCK]: true,
    [FeatureFlags.ROMAN_FS]: true,
    [FeatureFlags.JAPANESE_FS]: false,
    [FeatureFlags.MENA_FS]: false,
};
class FeatureFlagController {
    /**
     * Gets the matching flags based on the enabled features.
     *
     * @param flags Object containing the enabled flags by the provider.
     * @param featureFlags Conditional flags used by the renderer.
     * @returns Whether there are matching flags or not.
     */
    static hasFeatureFlags(flags, featureFlags) {
        if (flags) {
            return Object.keys(flags).some((key) => {
                const flag = flags[key];
                const isTruthy = typeof flag === 'function' ? flag() : flag;
                return !!isTruthy && featureFlags.includes(key);
            });
        }
        return false;
    }
    /**
     * Merges the given features with the default values.
     *
     * @param [featureFlags] Initial feature flag configuration.
     * @returns Merged feature flag model.
     */
    static mergeFeatureFlags(featureFlags) {
        return Object(_utils_JsUtils__WEBPACK_IMPORTED_MODULE_0__[/* merge */ "h"])(DEFAULT_FEATURE_FLAGS, featureFlags || {});
    }
}


/***/ }),

/***/ "zT9C":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, module) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
/** Used to stand-in for `undefined` hash values. */

var HASH_UNDEFINED = '__lodash_hash_undefined__';
/** Used as references for various `Number` constants. */

var MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    objectTag = '[object Object]',
    promiseTag = '[object Promise]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]',
    weakMapTag = '[object WeakMap]';
var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */

var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to match `RegExp` flags from their coerced string values. */

var reFlags = /\w*$/;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used to detect unsigned integer values. */

var reIsUint = /^(?:0|[1-9]\d*)$/;
/** Used to identify `toStringTag` values supported by `_.clone`. */

var cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */

var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/**
 * Adds the key-value `pair` to `map`.
 *
 * @private
 * @param {Object} map The map to modify.
 * @param {Array} pair The key-value pair to add.
 * @returns {Object} Returns `map`.
 */

function addMapEntry(map, pair) {
  // Don't return `map.set` because it's not chainable in IE 11.
  map.set(pair[0], pair[1]);
  return map;
}
/**
 * Adds `value` to `set`.
 *
 * @private
 * @param {Object} set The set to modify.
 * @param {*} value The value to add.
 * @returns {Object} Returns `set`.
 */


function addSetEntry(set, value) {
  // Don't return `set.add` because it's not chainable in IE 11.
  set.add(value);
  return set;
}
/**
 * A specialized version of `_.forEach` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns `array`.
 */


function arrayEach(array, iteratee) {
  var index = -1,
      length = array ? array.length : 0;

  while (++index < length) {
    if (iteratee(array[index], index, array) === false) {
      break;
    }
  }

  return array;
}
/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */


function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }

  return array;
}
/**
 * A specialized version of `_.reduce` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {*} [accumulator] The initial value.
 * @param {boolean} [initAccum] Specify using the first element of `array` as
 *  the initial value.
 * @returns {*} Returns the accumulated value.
 */


function arrayReduce(array, iteratee, accumulator, initAccum) {
  var index = -1,
      length = array ? array.length : 0;

  if (initAccum && length) {
    accumulator = array[++index];
  }

  while (++index < length) {
    accumulator = iteratee(accumulator, array[index], index, array);
  }

  return accumulator;
}
/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */


function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }

  return result;
}
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function getValue(object, key) {
  return object == null ? undefined : object[key];
}
/**
 * Checks if `value` is a host object in IE < 9.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
 */


function isHostObject(value) {
  // Many host objects are `Object` objects that can coerce to strings
  // despite having improperly defined `toString` methods.
  var result = false;

  if (value != null && typeof value.toString != 'function') {
    try {
      result = !!(value + '');
    } catch (e) {}
  }

  return result;
}
/**
 * Converts `map` to its key-value pairs.
 *
 * @private
 * @param {Object} map The map to convert.
 * @returns {Array} Returns the key-value pairs.
 */


function mapToArray(map) {
  var index = -1,
      result = Array(map.size);
  map.forEach(function (value, key) {
    result[++index] = [key, value];
  });
  return result;
}
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */


function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}
/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */


function setToArray(set) {
  var index = -1,
      result = Array(set.size);
  set.forEach(function (value) {
    result[++index] = value;
  });
  return result;
}
/** Used for built-in method references. */


var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to detect overreaching core-js shims. */

var coreJsData = root['__core-js_shared__'];
/** Used to detect methods masquerading as native. */

var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/** Used to resolve the decompiled source of functions. */


var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/** Built-in value references. */

var Buffer = moduleExports ? root.Buffer : undefined,
    Symbol = root.Symbol,
    Uint8Array = root.Uint8Array,
    getPrototype = overArg(Object.getPrototypeOf, Object),
    objectCreate = Object.create,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    splice = arrayProto.splice;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeGetSymbols = Object.getOwnPropertySymbols,
    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
    nativeKeys = overArg(Object.keys, Object);
/* Built-in method references that are verified to be native. */

var DataView = getNative(root, 'DataView'),
    Map = getNative(root, 'Map'),
    Promise = getNative(root, 'Promise'),
    Set = getNative(root, 'Set'),
    WeakMap = getNative(root, 'WeakMap'),
    nativeCreate = getNative(Object, 'create');
/** Used to detect maps, sets, and weakmaps. */

var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);
/** Used to convert symbols to primitives and strings. */

var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Hash(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */


function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
}
/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function hashDelete(key) {
  return this.has(key) && delete this.__data__[key];
}
/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function hashGet(key) {
  var data = this.__data__;

  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }

  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}
/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
}
/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */


function hashSet(key, value) {
  var data = this.__data__;
  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
  return this;
} // Add methods to `Hash`.


Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function ListCache(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */


function listCacheClear() {
  this.__data__ = [];
}
/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }

  var lastIndex = data.length - 1;

  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }

  return true;
}
/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);
  return index < 0 ? undefined : data[index][1];
}
/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}
/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */


function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }

  return this;
} // Add methods to `ListCache`.


ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function MapCache(entries) {
  var index = -1,
      length = entries ? entries.length : 0;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */


function mapCacheClear() {
  this.__data__ = {
    'hash': new Hash(),
    'map': new (Map || ListCache)(),
    'string': new Hash()
  };
}
/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function mapCacheDelete(key) {
  return getMapData(this, key)['delete'](key);
}
/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}
/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}
/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */


function mapCacheSet(key, value) {
  getMapData(this, key).set(key, value);
  return this;
} // Add methods to `MapCache`.


MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Stack(entries) {
  this.__data__ = new ListCache(entries);
}
/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */


function stackClear() {
  this.__data__ = new ListCache();
}
/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function stackDelete(key) {
  return this.__data__['delete'](key);
}
/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function stackGet(key) {
  return this.__data__.get(key);
}
/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function stackHas(key) {
  return this.__data__.has(key);
}
/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */


function stackSet(key, value) {
  var cache = this.__data__;

  if (cache instanceof ListCache) {
    var pairs = cache.__data__;

    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {
      pairs.push([key, value]);
      return this;
    }

    cache = this.__data__ = new MapCache(pairs);
  }

  cache.set(key, value);
  return this;
} // Add methods to `Stack`.


Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */

function arrayLikeKeys(value, inherited) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  // Safari 9 makes `arguments.length` enumerable in strict mode.
  var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : [];
  var length = result.length,
      skipIndexes = !!length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
      result.push(key);
    }
  }

  return result;
}
/**
 * Assigns `value` to `key` of `object` if the existing value is not equivalent
 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * for equality comparisons.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function assignValue(object, key, value) {
  var objValue = object[key];

  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {
    object[key] = value;
  }
}
/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function assocIndexOf(array, key) {
  var length = array.length;

  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }

  return -1;
}
/**
 * The base implementation of `_.assign` without support for multiple sources
 * or `customizer` functions.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @returns {Object} Returns `object`.
 */


function baseAssign(object, source) {
  return object && copyObject(source, keys(source), object);
}
/**
 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
 * traversed objects.
 *
 * @private
 * @param {*} value The value to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @param {boolean} [isFull] Specify a clone including symbols.
 * @param {Function} [customizer] The function to customize cloning.
 * @param {string} [key] The key of `value`.
 * @param {Object} [object] The parent object of `value`.
 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
 * @returns {*} Returns the cloned value.
 */


function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
  var result;

  if (customizer) {
    result = object ? customizer(value, key, object, stack) : customizer(value);
  }

  if (result !== undefined) {
    return result;
  }

  if (!isObject(value)) {
    return value;
  }

  var isArr = isArray(value);

  if (isArr) {
    result = initCloneArray(value);

    if (!isDeep) {
      return copyArray(value, result);
    }
  } else {
    var tag = getTag(value),
        isFunc = tag == funcTag || tag == genTag;

    if (isBuffer(value)) {
      return cloneBuffer(value, isDeep);
    }

    if (tag == objectTag || tag == argsTag || isFunc && !object) {
      if (isHostObject(value)) {
        return object ? value : {};
      }

      result = initCloneObject(isFunc ? {} : value);

      if (!isDeep) {
        return copySymbols(value, baseAssign(result, value));
      }
    } else {
      if (!cloneableTags[tag]) {
        return object ? value : {};
      }

      result = initCloneByTag(value, tag, baseClone, isDeep);
    }
  } // Check for circular references and return its corresponding clone.


  stack || (stack = new Stack());
  var stacked = stack.get(value);

  if (stacked) {
    return stacked;
  }

  stack.set(value, result);

  if (!isArr) {
    var props = isFull ? getAllKeys(value) : keys(value);
  }

  arrayEach(props || value, function (subValue, key) {
    if (props) {
      key = subValue;
      subValue = value[key];
    } // Recursively populate clone (susceptible to call stack limits).


    assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
  });
  return result;
}
/**
 * The base implementation of `_.create` without support for assigning
 * properties to the created object.
 *
 * @private
 * @param {Object} prototype The object to inherit from.
 * @returns {Object} Returns the new object.
 */


function baseCreate(proto) {
  return isObject(proto) ? objectCreate(proto) : {};
}
/**
 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @param {Function} symbolsFunc The function to get the symbols of `object`.
 * @returns {Array} Returns the array of property names and symbols.
 */


function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
}
/**
 * The base implementation of `getTag`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */


function baseGetTag(value) {
  return objectToString.call(value);
}
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */


function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }

  var result = [];

  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }

  return result;
}
/**
 * Creates a clone of  `buffer`.
 *
 * @private
 * @param {Buffer} buffer The buffer to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Buffer} Returns the cloned buffer.
 */


function cloneBuffer(buffer, isDeep) {
  if (isDeep) {
    return buffer.slice();
  }

  var result = new buffer.constructor(buffer.length);
  buffer.copy(result);
  return result;
}
/**
 * Creates a clone of `arrayBuffer`.
 *
 * @private
 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
 * @returns {ArrayBuffer} Returns the cloned array buffer.
 */


function cloneArrayBuffer(arrayBuffer) {
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
  return result;
}
/**
 * Creates a clone of `dataView`.
 *
 * @private
 * @param {Object} dataView The data view to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned data view.
 */


function cloneDataView(dataView, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
}
/**
 * Creates a clone of `map`.
 *
 * @private
 * @param {Object} map The map to clone.
 * @param {Function} cloneFunc The function to clone values.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned map.
 */


function cloneMap(map, isDeep, cloneFunc) {
  var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
  return arrayReduce(array, addMapEntry, new map.constructor());
}
/**
 * Creates a clone of `regexp`.
 *
 * @private
 * @param {Object} regexp The regexp to clone.
 * @returns {Object} Returns the cloned regexp.
 */


function cloneRegExp(regexp) {
  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
  result.lastIndex = regexp.lastIndex;
  return result;
}
/**
 * Creates a clone of `set`.
 *
 * @private
 * @param {Object} set The set to clone.
 * @param {Function} cloneFunc The function to clone values.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned set.
 */


function cloneSet(set, isDeep, cloneFunc) {
  var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
  return arrayReduce(array, addSetEntry, new set.constructor());
}
/**
 * Creates a clone of the `symbol` object.
 *
 * @private
 * @param {Object} symbol The symbol object to clone.
 * @returns {Object} Returns the cloned symbol object.
 */


function cloneSymbol(symbol) {
  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
}
/**
 * Creates a clone of `typedArray`.
 *
 * @private
 * @param {Object} typedArray The typed array to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned typed array.
 */


function cloneTypedArray(typedArray, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}
/**
 * Copies the values of `source` to `array`.
 *
 * @private
 * @param {Array} source The array to copy values from.
 * @param {Array} [array=[]] The array to copy values to.
 * @returns {Array} Returns `array`.
 */


function copyArray(source, array) {
  var index = -1,
      length = source.length;
  array || (array = Array(length));

  while (++index < length) {
    array[index] = source[index];
  }

  return array;
}
/**
 * Copies properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy properties from.
 * @param {Array} props The property identifiers to copy.
 * @param {Object} [object={}] The object to copy properties to.
 * @param {Function} [customizer] The function to customize copied values.
 * @returns {Object} Returns `object`.
 */


function copyObject(source, props, object, customizer) {
  object || (object = {});
  var index = -1,
      length = props.length;

  while (++index < length) {
    var key = props[index];
    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;
    assignValue(object, key, newValue === undefined ? source[key] : newValue);
  }

  return object;
}
/**
 * Copies own symbol properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy symbols from.
 * @param {Object} [object={}] The object to copy symbols to.
 * @returns {Object} Returns `object`.
 */


function copySymbols(source, object) {
  return copyObject(source, getSymbols(source), object);
}
/**
 * Creates an array of own enumerable property names and symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */


function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols);
}
/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */


function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}
/**
 * Creates an array of the own enumerable symbol properties of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */


var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */

var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11,
// for data views in Edge < 14, and promises in Node.js.

if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {
  getTag = function (value) {
    var result = objectToString.call(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : undefined;

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString:
          return dataViewTag;

        case mapCtorString:
          return mapTag;

        case promiseCtorString:
          return promiseTag;

        case setCtorString:
          return setTag;

        case weakMapCtorString:
          return weakMapTag;
      }
    }

    return result;
  };
}
/**
 * Initializes an array clone.
 *
 * @private
 * @param {Array} array The array to clone.
 * @returns {Array} Returns the initialized clone.
 */


function initCloneArray(array) {
  var length = array.length,
      result = array.constructor(length); // Add properties assigned by `RegExp#exec`.

  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
    result.index = array.index;
    result.input = array.input;
  }

  return result;
}
/**
 * Initializes an object clone.
 *
 * @private
 * @param {Object} object The object to clone.
 * @returns {Object} Returns the initialized clone.
 */


function initCloneObject(object) {
  return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
}
/**
 * Initializes an object clone based on its `toStringTag`.
 *
 * **Note:** This function only supports cloning values with tags of
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 *
 * @private
 * @param {Object} object The object to clone.
 * @param {string} tag The `toStringTag` of the object to clone.
 * @param {Function} cloneFunc The function to clone values.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the initialized clone.
 */


function initCloneByTag(object, tag, cloneFunc, isDeep) {
  var Ctor = object.constructor;

  switch (tag) {
    case arrayBufferTag:
      return cloneArrayBuffer(object);

    case boolTag:
    case dateTag:
      return new Ctor(+object);

    case dataViewTag:
      return cloneDataView(object, isDeep);

    case float32Tag:
    case float64Tag:
    case int8Tag:
    case int16Tag:
    case int32Tag:
    case uint8Tag:
    case uint8ClampedTag:
    case uint16Tag:
    case uint32Tag:
      return cloneTypedArray(object, isDeep);

    case mapTag:
      return cloneMap(object, isDeep, cloneFunc);

    case numberTag:
    case stringTag:
      return new Ctor(object);

    case regexpTag:
      return cloneRegExp(object);

    case setTag:
      return cloneSet(object, isDeep, cloneFunc);

    case symbolTag:
      return cloneSymbol(object);
  }
}
/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */


function isIndex(value, length) {
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}
/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */


function isKeyable(value) {
  var type = typeof value;
  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
}
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */


function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to process.
 * @returns {string} Returns the source code.
 */


function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}
/**
 * This method is like `_.clone` except that it recursively clones `value`.
 *
 * @static
 * @memberOf _
 * @since 1.0.0
 * @category Lang
 * @param {*} value The value to recursively clone.
 * @returns {*} Returns the deep cloned value.
 * @see _.clone
 * @example
 *
 * var objects = [{ 'a': 1 }, { 'b': 2 }];
 *
 * var deep = _.cloneDeep(objects);
 * console.log(deep[0] === objects[0]);
 * // => false
 */


function cloneDeep(value) {
  return baseClone(value, true, true);
}
/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */


function eq(value, other) {
  return value === other || value !== value && other !== other;
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


function isArguments(value) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
}
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */


var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}
/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */


var isBuffer = nativeIsBuffer || stubFalse;
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */

function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */


function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
/**
 * This method returns a new empty array.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {Array} Returns the new empty array.
 * @example
 *
 * var arrays = _.times(2, _.stubArray);
 *
 * console.log(arrays);
 * // => [[], []]
 *
 * console.log(arrays[0] === arrays[1]);
 * // => false
 */


function stubArray() {
  return [];
}
/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */


function stubFalse() {
  return false;
}

module.exports = cloneDeep;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "zcnm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "TabView", {
  enumerable: true,
  get: function () {
    return _TabView.default;
  }
});
Object.defineProperty(exports, "Tab", {
  enumerable: true,
  get: function () {
    return _Tab.default;
  }
});

var _TabView = _interopRequireDefault(__webpack_require__("FN6C"));

var _Tab = _interopRequireDefault(__webpack_require__("JnQh"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

/***/ }),

/***/ "ztOJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("70sn"),
      24: __webpack_require__("Ce8m")
    }
  }));
};

WrappedIcon.displayName = 'SaveTo';
exports.default = WrappedIcon;

/***/ }),

/***/ "zxMA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var QueryableString = function () {
  function QueryableString(str) {
    this.str = str;
  }

  QueryableString.prototype.startsWith = function (searchString) {
    return this.str.indexOf(searchString) === 0;
  };

  QueryableString.prototype.endsWith = function (searchString) {
    var reverseString = "";
    var reverseSearchString = searchString.split("").reverse().join("");
    reverseString = this.str.split("").reverse().join("");
    return this.startsWith.call({
      str: reverseString
    }, reverseSearchString);
  };

  QueryableString.prototype.contains = function (searchString) {
    return this.str.indexOf(searchString) !== -1;
  };

  QueryableString.prototype.equals = function (compareString) {
    return this.str === compareString;
  };

  QueryableString.prototype.value = function () {
    return this.str;
  };

  return QueryableString;
}();

exports.QueryableString = QueryableString;

/***/ })

}]);