123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
- <style type="text/css">
- .highlight { display: block; background-color: #ddd; }
- </style>
- <script type="text/javascript">
- function highlight() {
- document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
- }
- </script>
- </head>
- <body onload="prettyPrint(); highlight();">
- <pre class="prettyprint lang-js"><span id='Ext-layout-ClassList'>/**
- </span> * This class provides a DOM ClassList API to buffer access to an element's class.
- * Instances of this class are created by {@link Ext.layout.ContextItem#getClassList}.
- */
- Ext.define('Ext.layout.ClassList', (function () {
- var splitWords = Ext.String.splitWords,
- toMap = Ext.Array.toMap;
- return {
- dirty: false,
- constructor: function (owner) {
- this.owner = owner;
- this.map = toMap(this.classes = splitWords(owner.el.className));
- },
- <span id='Ext-layout-ClassList-method-add'> /**
- </span> * Adds a single class to the class list.
- */
- add: function (cls) {
- var me = this;
- if (!me.map[cls]) {
- me.map[cls] = true;
- me.classes.push(cls);
- if (!me.dirty) {
- me.dirty = true;
- me.owner.markDirty();
- }
- }
- },
- <span id='Ext-layout-ClassList-method-addMany'> /**
- </span> * Adds one or more classes in an array or space-delimited string to the class list.
- */
- addMany: function (classes) {
- Ext.each(splitWords(classes), this.add, this);
- },
- contains: function (cls) {
- return this.map[cls];
- },
- flush: function () {
- this.owner.el.className = this.classes.join(' ');
- this.dirty = false;
- },
- <span id='Ext-layout-ClassList-method-remove'> /**
- </span> * Removes a single class from the class list.
- */
- remove: function (cls) {
- var me = this;
- if (me.map[cls]) {
- delete me.map[cls];
- me.classes = Ext.Array.filter(me.classes, function (c) {
- return c != cls;
- });
- if (!me.dirty) {
- me.dirty = true;
- me.owner.markDirty();
- }
- }
- },
- <span id='Ext-layout-ClassList-method-removeMany'> /**
- </span> * Removes one or more classes in an array or space-delimited string from the class
- * list.
- */
- removeMany: function (classes) {
- var me = this,
- remove = toMap(splitWords(classes));
- me.classes = Ext.Array.filter(me.classes, function (c) {
- if (!remove[c]) {
- return true;
- }
- delete me.map[c];
- if (!me.dirty) {
- me.dirty = true;
- me.owner.markDirty();
- }
- return false;
- });
- }
- };
- }()));
- </pre>
- </body>
- </html>
|