UNPKG

@amaui/style

Version:
65 lines (64 loc) 2.58 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const AmauiStyleRuleProperty_1 = __importDefault(require("./AmauiStyleRuleProperty")); const utils_1 = require("./utils"); const optionsDefault = { priority: 'individual', }; function sort(amauiStyle, options_ = {}) { const options = Object.assign(Object.assign({}, optionsDefault), options_); const method = (values) => { const value = { arguments: { values, }, }; if ((0, utils_1.is)('array', values)) { const priority = options.priority; // Sort by grouping all rules values.sort((a, b) => { if (a.value instanceof AmauiStyleRuleProperty_1.default && !(b.value instanceof AmauiStyleRuleProperty_1.default)) return -1; if ((a.constructor === b.constructor) || ((0, utils_1.is)('simple', a.value) && (0, utils_1.is)('simple', b.value))) return 0; return 1; }); // Order by priority if (priority !== 'original') values.sort((a, b) => { if (!((a.value instanceof AmauiStyleRuleProperty_1.default && b.value instanceof AmauiStyleRuleProperty_1.default) || ((0, utils_1.is)('simple', a.value) && (0, utils_1.is)('simple', b.value)))) return 0; if ((a === null || a === void 0 ? void 0 : a.property) < (b === null || b === void 0 ? void 0 : b.property)) return priority === 'individual' ? -1 : 1; if ((a === null || a === void 0 ? void 0 : a.property) > (b === null || b === void 0 ? void 0 : b.property)) return priority === 'individual' ? 1 : -1; }); // Add sorted array to value value.value = values; } return value; }; // Add method to subscriptions if (amauiStyle) { amauiStyle.subscriptions.rules.sort.subscribe(method); } const remove = () => { // Remove method from subscriptions if (amauiStyle) { amauiStyle.subscriptions.rules.sort.unsubscribe(method); } }; const response = { methods: { method, }, remove, }; return response; } exports.default = sort;